summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/Render.cpp
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2014-11-16 13:55:28 +0100
committerJules Blok <jules.blok@gmail.com>2014-12-14 13:28:45 +0100
commitd58e389f6782a1e548e5191d5a238ddd9ddfe3e0 (patch)
treef21422d1ae1f6abd0330fe5c0d69c2c842f84a17 /Source/Core/VideoBackends/D3D/Render.cpp
parentb769da23d09c39a29c3467f63c46037ac688930c (diff)
D3D: Recreate the framebuffer when stereoscopic 3D is toggled.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/Render.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp
index 09355ca851..0cd5835b60 100644
--- a/Source/Core/VideoBackends/D3D/Render.cpp
+++ b/Source/Core/VideoBackends/D3D/Render.cpp
@@ -47,6 +47,7 @@ static u32 s_LastAA = 0;
static Television s_television;
static bool s_last_fullscreen_mode = false;
+static bool s_LastStereo = 0;
ID3D11Buffer* access_efb_cbuf = nullptr;
ID3D11BlendState* clearblendstates[4] = {nullptr};
@@ -229,6 +230,7 @@ Renderer::Renderer(void *&window_handle)
s_LastAA = g_ActiveConfig.iMultisampleMode;
s_LastEFBScale = g_ActiveConfig.iEFBScale;
s_last_fullscreen_mode = g_ActiveConfig.bFullscreen;
+ s_LastStereo = g_ActiveConfig.iStereoMode > 0;
CalculateTargetSize(s_backbuffer_width, s_backbuffer_height);
SetupDeviceObjects();
@@ -1007,7 +1009,8 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
windowResized ||
fullscreen_changed ||
s_LastEFBScale != g_ActiveConfig.iEFBScale ||
- s_LastAA != g_ActiveConfig.iMultisampleMode)
+ s_LastAA != g_ActiveConfig.iMultisampleMode ||
+ s_LastStereo != (g_ActiveConfig.iStereoMode > 0))
{
s_LastAA = g_ActiveConfig.iMultisampleMode;
PixelShaderCache::InvalidateMSAAShaders();
@@ -1038,6 +1041,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height);
s_LastEFBScale = g_ActiveConfig.iEFBScale;
+ s_LastStereo = g_ActiveConfig.iStereoMode > 0;
CalculateTargetSize(s_backbuffer_width, s_backbuffer_height);
D3D::context->OMSetRenderTargets(1, &D3D::GetBackBuffer()->GetRTV(), nullptr);