Backend: DX12: Fixed incorrect assert (#2851)

This commit is contained in:
omar 2019-10-21 13:38:33 +02:00
parent 6faad0c34f
commit 7b77cb3bb8

View File

@ -788,20 +788,18 @@ static void ImGui_ImplDX12_CreateWindow(ImGuiViewport* viewport)
sd1.Scaling = DXGI_SCALING_STRETCH; sd1.Scaling = DXGI_SCALING_STRETCH;
sd1.Stereo = FALSE; sd1.Stereo = FALSE;
IM_ASSERT(data->SwapChain == NULL); IDXGIFactory4* dxgi_factory = NULL;
IM_ASSERT(data->FrameCtx[0].RenderTarget == NULL && data->FrameCtx[1].RenderTarget == NULL && data->FrameCtx[2].RenderTarget == NULL); res = ::CreateDXGIFactory1(IID_PPV_ARGS(&dxgi_factory));
IDXGIFactory4* dxgi_factory = nullptr;
res = CreateDXGIFactory1(IID_PPV_ARGS(&dxgi_factory));
IM_ASSERT(res == S_OK); IM_ASSERT(res == S_OK);
IDXGISwapChain1* swap_chain = nullptr; IDXGISwapChain1* swap_chain = NULL;
res = dxgi_factory->CreateSwapChainForHwnd(data->CommandQueue, hwnd, &sd1, NULL, NULL, &swap_chain); res = dxgi_factory->CreateSwapChainForHwnd(data->CommandQueue, hwnd, &sd1, NULL, NULL, &swap_chain);
IM_ASSERT(res == S_OK); IM_ASSERT(res == S_OK);
dxgi_factory->Release(); dxgi_factory->Release();
// Or swapChain.As(&mSwapChain) // Or swapChain.As(&mSwapChain)
IM_ASSERT(data->SwapChain == NULL);
swap_chain->QueryInterface(IID_PPV_ARGS(&data->SwapChain)); swap_chain->QueryInterface(IID_PPV_ARGS(&data->SwapChain));
swap_chain->Release(); swap_chain->Release();
@ -827,6 +825,7 @@ static void ImGui_ImplDX12_CreateWindow(ImGuiViewport* viewport)
ID3D12Resource* back_buffer; ID3D12Resource* back_buffer;
for (UINT i = 0; i < g_numFramesInFlight; i++) for (UINT i = 0; i < g_numFramesInFlight; i++)
{ {
IM_ASSERT(data->FrameCtx[i].RenderTarget == NULL);
data->SwapChain->GetBuffer(i, IID_PPV_ARGS(&back_buffer)); data->SwapChain->GetBuffer(i, IID_PPV_ARGS(&back_buffer));
g_pd3dDevice->CreateRenderTargetView(back_buffer, NULL, data->FrameCtx[i].RenderTargetCpuDescriptors); g_pd3dDevice->CreateRenderTargetView(back_buffer, NULL, data->FrameCtx[i].RenderTargetCpuDescriptors);
data->FrameCtx[i].RenderTarget = back_buffer; data->FrameCtx[i].RenderTarget = back_buffer;
@ -860,7 +859,6 @@ static void ImGui_ImplDX12_DestroyWindow(ImGuiViewport* viewport)
SafeRelease(data->Resources[i].IndexBuffer); SafeRelease(data->Resources[i].IndexBuffer);
SafeRelease(data->Resources[i].VertexBuffer); SafeRelease(data->Resources[i].VertexBuffer);
} }
IM_DELETE(data); IM_DELETE(data);
} }
viewport->RendererUserData = NULL; viewport->RendererUserData = NULL;