diff options
| author | Jules Blok <jules.blok@gmail.com> | 2014-06-18 15:04:23 +0200 |
|---|---|---|
| committer | Jules Blok <jules.blok@gmail.com> | 2014-07-19 21:14:44 +0200 |
| commit | 77bc87938412d8037439607a0c5047abece62452 (patch) | |
| tree | ba0d1de7749e150cfe5f75dd7966ff30812722b1 /Source/Core/VideoBackends/D3D/Render.cpp | |
| parent | d72375fdfa0182037afcf0a2e64ea01c16a1b6f3 (diff) | |
D3D: Add exclusive fullscreen support.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/Render.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/D3D/Render.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp index 2699b56a46..8741900261 100644 --- a/Source/Core/VideoBackends/D3D/Render.cpp +++ b/Source/Core/VideoBackends/D3D/Render.cpp @@ -42,6 +42,8 @@ static u32 s_LastAA = 0; static Television s_television; +static bool s_LastFS = false; + ID3D11Buffer* access_efb_cbuf = nullptr; ID3D11BlendState* clearblendstates[4] = {nullptr}; ID3D11DepthStencilState* cleardepthstates[3] = {nullptr}; @@ -936,6 +938,8 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl SetWindowSize(fbWidth, fbHeight); const bool windowResized = CheckForResize(); + const bool fullscreen = g_ActiveConfig.bFullscreen; + const bool fsChanged = s_LastFS != fullscreen; bool xfbchanged = false; @@ -954,13 +958,15 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl // resize the back buffers NOW to avoid flickering if (xfbchanged || windowResized || + fsChanged || s_LastEFBScale != g_ActiveConfig.iEFBScale || s_LastAA != g_ActiveConfig.iMultisampleMode) { s_LastAA = g_ActiveConfig.iMultisampleMode; + s_LastFS = g_ActiveConfig.bFullscreen; PixelShaderCache::InvalidateMSAAShaders(); - if (windowResized) + if (windowResized || fsChanged) { // TODO: Aren't we still holding a reference to the back buffer right now? D3D::Reset(); |
