diff options
| author | Markus Wick <markus+github@selfnet.de> | 2014-12-28 22:22:27 +0100 |
|---|---|---|
| committer | Markus Wick <markus+github@selfnet.de> | 2014-12-28 22:22:27 +0100 |
| commit | 0f87d9b669e4ec91aaabedee2d8f04514b363cab (patch) | |
| tree | c563586def295dec9ae9bc5025b61c52c156e4e6 /Source/Core/VideoBackends/OGL/Render.cpp | |
| parent | 83d9942ca3a4b076cfee761045865359c09515dc (diff) | |
| parent | e1dc0331133c9ca1b1a62cc68b3110a25e70aa38 (diff) | |
Merge pull request #1781 from Armada651/xfb-fixes
D3D: Fix Virtual XFB viewport.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/Render.cpp | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index 2def435a11..be3b37c580 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -85,9 +85,9 @@ static RasterFont* s_pfont = nullptr; // 1 for no MSAA. Use s_MSAASamples > 1 to check for MSAA. static int s_MSAASamples = 1; -static int s_LastMultisampleMode = 0; - -static bool s_LastStereo = false; +static int s_last_multisample_mode = 0; +static bool s_last_stereo_mode = false; +static bool s_last_xfb_mode = false; static u32 s_blendMode; @@ -586,10 +586,12 @@ Renderer::Renderer() g_ActiveConfig.backend_info.bSupportsGSInstancing ? "" : "GSInstancing " ); - s_LastMultisampleMode = g_ActiveConfig.iMultisampleMode; - s_MSAASamples = GetNumMSAASamples(s_LastMultisampleMode); + s_last_multisample_mode = g_ActiveConfig.iMultisampleMode; + s_MSAASamples = GetNumMSAASamples(s_last_multisample_mode); ApplySSAASettings(); - s_LastStereo = g_ActiveConfig.iStereoMode > 0; + + s_last_stereo_mode = g_ActiveConfig.iStereoMode > 0; + s_last_xfb_mode = g_ActiveConfig.bUseRealXFB; // Decide framebuffer size s_backbuffer_width = (int)GLInterface->GetBackBufferWidth(); @@ -605,7 +607,7 @@ Renderer::Renderer() UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - s_LastEFBScale = g_ActiveConfig.iEFBScale; + s_last_efb_scale = g_ActiveConfig.iEFBScale; CalculateTargetSize(s_backbuffer_width, s_backbuffer_height); // Because of the fixed framebuffer size we need to disable the resolution @@ -1625,7 +1627,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co GLInterface->Update(); // just updates the render window position and the backbuffer size - bool xfbchanged = false; + bool xfbchanged = s_last_xfb_mode != g_ActiveConfig.bUseRealXFB; if (FramebufferManagerBase::LastXfbWidth() != fbStride || FramebufferManagerBase::LastXfbHeight() != fbHeight) { @@ -1639,24 +1641,26 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co bool WindowResized = false; int W = (int)GLInterface->GetBackBufferWidth(); int H = (int)GLInterface->GetBackBufferHeight(); - if (W != s_backbuffer_width || H != s_backbuffer_height || s_LastEFBScale != g_ActiveConfig.iEFBScale) + if (W != s_backbuffer_width || H != s_backbuffer_height || s_last_efb_scale != g_ActiveConfig.iEFBScale) { WindowResized = true; s_backbuffer_width = W; s_backbuffer_height = H; - s_LastEFBScale = g_ActiveConfig.iEFBScale; + s_last_efb_scale = g_ActiveConfig.iEFBScale; } - if (xfbchanged || WindowResized || (s_LastMultisampleMode != g_ActiveConfig.iMultisampleMode) || (s_LastStereo != (g_ActiveConfig.iStereoMode > 0))) + if (xfbchanged || WindowResized || (s_last_multisample_mode != g_ActiveConfig.iMultisampleMode) || (s_last_stereo_mode != (g_ActiveConfig.iStereoMode > 0))) { + s_last_stereo_mode = g_ActiveConfig.iStereoMode > 0; + s_last_xfb_mode = g_ActiveConfig.bUseRealXFB; + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - if (CalculateTargetSize(s_backbuffer_width, s_backbuffer_height) || s_LastMultisampleMode != g_ActiveConfig.iMultisampleMode || s_LastStereo != (g_ActiveConfig.iStereoMode > 0)) + if (CalculateTargetSize(s_backbuffer_width, s_backbuffer_height) || s_last_multisample_mode != g_ActiveConfig.iMultisampleMode || s_last_stereo_mode != (g_ActiveConfig.iStereoMode > 0)) { - s_LastMultisampleMode = g_ActiveConfig.iMultisampleMode; - s_MSAASamples = GetNumMSAASamples(s_LastMultisampleMode); + s_last_multisample_mode = g_ActiveConfig.iMultisampleMode; + s_MSAASamples = GetNumMSAASamples(s_last_multisample_mode); ApplySSAASettings(); - s_LastStereo = g_ActiveConfig.iStereoMode > 0; delete g_framebuffer_manager; g_framebuffer_manager = new FramebufferManager(s_target_width, s_target_height, |
