From 5b480f968ecd3db703a3a88642d0ffc99e62a98a Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 10 Jan 2019 15:52:41 +0000 Subject: [PATCH] Fix crash on D3D9 if present parameters can't be fetched --- renderdoc/driver/d3d9/d3d9_device.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/d3d9/d3d9_device.cpp b/renderdoc/driver/d3d9/d3d9_device.cpp index 46044c68d..14ce6fb95 100644 --- a/renderdoc/driver/d3d9/d3d9_device.cpp +++ b/renderdoc/driver/d3d9/d3d9_device.cpp @@ -206,10 +206,11 @@ HRESULT __stdcall WrappedD3DDevice9::Present(CONST RECT *pSourceRect, CONST RECT // if(m_State == WRITING_IDLE) RenderDoc::Inst().Tick(); - IDirect3DSwapChain9 *swapChain; + IDirect3DSwapChain9 *swapChain = NULL; m_device->GetSwapChain(0, &swapChain); - D3DPRESENT_PARAMETERS presentParams; - swapChain->GetPresentParameters(&presentParams); + D3DPRESENT_PARAMETERS presentParams = {}; + if(swapChain) + swapChain->GetPresentParameters(&presentParams); HWND wnd = presentParams.hDeviceWindow; if(hDestWindowOverride != NULL) @@ -220,12 +221,11 @@ HRESULT __stdcall WrappedD3DDevice9::Present(CONST RECT *pSourceRect, CONST RECT m_FrameCounter++; // if (m_State == WRITING_IDLE) + if(wnd != NULL) { uint32_t overlay = RenderDoc::Inst().GetOverlayBits(); - static bool debugRenderOverlay = true; - - if(overlay & eRENDERDOC_Overlay_Enabled && debugRenderOverlay) + if(overlay & eRENDERDOC_Overlay_Enabled) { HRESULT res = S_OK; res = m_device->BeginScene();