From 616615c41ec9ed8d4d60e8d71d98a83fc727527c Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 2 Sep 2014 21:06:15 +0100 Subject: [PATCH] Simplify 'Allow Fullscreen' off behaviour to simply error. Refs #80 * Rather than trying to fake fullscreen being successful (then getting things like GetFullscreenState wrong), we simply return the valid error code for fullscreen not being available. --- renderdoc/driver/dxgi/dxgi_wrapped.cpp | 15 ++------------- renderdoc/driver/dxgi/dxgi_wrapped.h | 2 -- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.cpp b/renderdoc/driver/dxgi/dxgi_wrapped.cpp index 3d2c4e810..b5f0ab9ec 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.cpp +++ b/renderdoc/driver/dxgi/dxgi_wrapped.cpp @@ -144,8 +144,6 @@ WrappedIDXGISwapChain::WrappedIDXGISwapChain(IDXGISwapChain* real, WrappedID3D11 } } - m_bFullscreen = desc.Windowed == FALSE; - RenderDoc::Inst().AddFrameCapturer(desc.OutputWindow, m_pDevice); SAFE_ADDREF(m_pDevice); @@ -232,26 +230,17 @@ HRESULT WrappedIDXGISwapChain::SetFullscreenState( /* [in] */ BOOL Fullscreen, /* [in] */ IDXGIOutput *pTarget) { - m_bFullscreen = Fullscreen == TRUE; - if(RenderDoc::Inst().GetCaptureOptions().AllowFullscreen) return m_pReal->SetFullscreenState(Fullscreen, pTarget); - return S_OK; + return DXGI_ERROR_NOT_CURRENTLY_AVAILABLE; } HRESULT WrappedIDXGISwapChain::GetFullscreenState( /* [out] */ BOOL *pFullscreen, /* [out] */ IDXGIOutput **ppTarget) { - if(RenderDoc::Inst().GetCaptureOptions().AllowFullscreen) - return m_pReal->GetFullscreenState(pFullscreen, ppTarget); - - if(!pFullscreen) - return E_INVALIDARG; - - *pFullscreen = m_bFullscreen == true ? TRUE : FALSE; - return S_OK; + return m_pReal->GetFullscreenState(pFullscreen, ppTarget); } HRESULT WrappedIDXGISwapChain::GetBuffer( diff --git a/renderdoc/driver/dxgi/dxgi_wrapped.h b/renderdoc/driver/dxgi/dxgi_wrapped.h index 43d3c9d09..37bfbfc32 100644 --- a/renderdoc/driver/dxgi/dxgi_wrapped.h +++ b/renderdoc/driver/dxgi/dxgi_wrapped.h @@ -107,8 +107,6 @@ class WrappedIDXGISwapChain : public IDXGISwapChain, public RefCountDXGIObject static const int MAX_NUM_BACKBUFFERS = 4; ID3D11Resource *m_pBackBuffers[MAX_NUM_BACKBUFFERS]; - - bool m_bFullscreen; public: WrappedIDXGISwapChain(IDXGISwapChain* real, WrappedID3D11Device *device); virtual ~WrappedIDXGISwapChain();