summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends
diff options
context:
space:
mode:
authormirrorbender <mirrorbender@gmail.com>2015-07-20 20:12:29 -0400
committermirrorbender <mirrorbender@gmail.com>2015-07-31 19:58:02 -0400
commit0faba3b01806df0ea74e01257d3cc48ea5538771 (patch)
treec1c4923de9886941f0931dfbeefe24d9ac29a92f /Source/Core/VideoBackends
parentab2e68aa160d8e9664fdfe4420a5c3d8ea9a894b (diff)
Changed the aspect ratio settings to account for NTSC/PAL pixel aspect ratios and VI scaling.
Diffstat (limited to 'Source/Core/VideoBackends')
-rw-r--r--Source/Core/VideoBackends/D3D/FramebufferManager.cpp8
-rw-r--r--Source/Core/VideoBackends/D3D/Render.cpp4
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp10
3 files changed, 17 insertions, 5 deletions
diff --git a/Source/Core/VideoBackends/D3D/FramebufferManager.cpp b/Source/Core/VideoBackends/D3D/FramebufferManager.cpp
index 6437d1feeb..8921be9130 100644
--- a/Source/Core/VideoBackends/D3D/FramebufferManager.cpp
+++ b/Source/Core/VideoBackends/D3D/FramebufferManager.cpp
@@ -56,6 +56,14 @@ FramebufferManager::FramebufferManager()
{
m_target_width = Renderer::GetTargetWidth();
m_target_height = Renderer::GetTargetHeight();
+ if(m_target_height < 1)
+ {
+ m_target_height = 1;
+ }
+ if(m_target_width < 1)
+ {
+ m_target_width = 1;
+ }
DXGI_SAMPLE_DESC sample_desc = D3D::GetAAMode(g_ActiveConfig.iMultisampleMode);
ID3D11Texture2D* buf;
diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp
index a522c2d1a6..5c7ca56ac2 100644
--- a/Source/Core/VideoBackends/D3D/Render.cpp
+++ b/Source/Core/VideoBackends/D3D/Render.cpp
@@ -929,7 +929,8 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
}
// Resize the back buffers NOW to avoid flickering
- if (xfbchanged ||
+ if (CalculateTargetSize(s_backbuffer_width, s_backbuffer_height) ||
+ xfbchanged ||
windowResized ||
fullscreen_changed ||
s_last_efb_scale != g_ActiveConfig.iEFBScale ||
@@ -969,7 +970,6 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
s_last_efb_scale = g_ActiveConfig.iEFBScale;
s_last_stereo_mode = g_ActiveConfig.iStereoMode > 0;
- CalculateTargetSize(s_backbuffer_width, s_backbuffer_height);
PixelShaderManager::SetEfbScaleChanged();
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index 7fefeaff81..79b9e5b5a1 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -1654,14 +1654,18 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
s_backbuffer_height = H;
s_last_efb_scale = g_ActiveConfig.iEFBScale;
}
-
- if (xfbchanged || WindowResized || (s_last_multisample_mode != g_ActiveConfig.iMultisampleMode) || (s_last_stereo_mode != (g_ActiveConfig.iStereoMode > 0)))
+ bool TargetSizeChanged = false;
+ if (CalculateTargetSize(s_backbuffer_width, s_backbuffer_height))
+ {
+ TargetSizeChanged = true;
+ }
+ if (TargetSizeChanged || xfbchanged || WindowResized || (s_last_multisample_mode != g_ActiveConfig.iMultisampleMode) || (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_last_multisample_mode != g_ActiveConfig.iMultisampleMode || s_last_stereo_mode != (g_ActiveConfig.iStereoMode > 0))
+ if (TargetSizeChanged || 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_multisample_mode = g_ActiveConfig.iMultisampleMode;