From e55b9d044b2a330dfa3ba6775c4b37af1c18ca92 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 21 Feb 2017 15:17:14 +0000 Subject: [PATCH] Add super hacky fix for even more hacky horrible internal MS code --- renderdoc/driver/dxgi/dxgi_wrapped.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.h b/renderdoc/driver/dxgi/dxgi_wrapped.h index 32de72ea8..f9d9ce6e9 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.h +++ b/renderdoc/driver/dxgi/dxgi_wrapped.h @@ -1182,7 +1182,16 @@ public: /* [annotation][out] */ __out IDXGIAdapter1 **ppAdapter) { - HRESULT ret = m_pReal1->EnumAdapters1(Adapter, ppAdapter); + IDXGIFactory1 *factory = m_pReal1; + if(m_pReal1 == NULL) + { + // see comment in RefCountDXGIObject::HandleWrap for IDXGIFactory + RDCWARN("Calling EnumAdapters1 with no IDXGIFactory1 - assuming weird internal call"); + factory = (IDXGIFactory1 *)m_pReal; + } + + HRESULT ret = factory->EnumAdapters1(Adapter, ppAdapter); + if(SUCCEEDED(ret)) *ppAdapter = (IDXGIAdapter1 *)(new WrappedIDXGIAdapter3(*ppAdapter)); return ret;