summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/Render.cpp
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2014-06-18 15:04:23 +0200
committerJules Blok <jules.blok@gmail.com>2014-07-19 21:14:44 +0200
commit77bc87938412d8037439607a0c5047abece62452 (patch)
treeba0d1de7749e150cfe5f75dd7966ff30812722b1 /Source/Core/VideoBackends/D3D/Render.cpp
parentd72375fdfa0182037afcf0a2e64ea01c16a1b6f3 (diff)
D3D: Add exclusive fullscreen support.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/Render.cpp8
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();