diff options
Diffstat (limited to 'Source/Core/VideoCommon/Src/RenderBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/RenderBase.cpp | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index 8aece882e4..2fd7a9ecdf 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -65,10 +65,6 @@ int Renderer::s_Fulltarget_height; int Renderer::s_backbuffer_width; int Renderer::s_backbuffer_height; -// Internal resolution scale (related to xScale/yScale for "Auto" scaling) -float Renderer::EFBxScale; -float Renderer::EFByScale; - // ratio of backbuffer size and render area size float Renderer::xScale; float Renderer::yScale; @@ -116,47 +112,43 @@ void Renderer::RenderToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRect } // return true if target size changed -bool Renderer::CalculateTargetSize(float multiplier) +bool Renderer::CalculateTargetSize(int multiplier) { + int newEFBWidth, newEFBHeight; switch (s_LastEFBScale) { case 0: - EFBxScale = xScale; - EFByScale = yScale; + newEFBWidth = (int)(EFB_WIDTH * xScale); + newEFBHeight = (int)(EFB_HEIGHT * yScale); break; case 1: - EFBxScale = ceilf(xScale); - EFByScale = ceilf(yScale); + newEFBWidth = EFB_WIDTH * (int)ceilf(xScale); + newEFBHeight = EFB_HEIGHT * (int)ceilf(yScale); break; default: - EFBxScale = EFByScale = (float)(g_ActiveConfig.iEFBScale - 1); + newEFBWidth = EFB_WIDTH * (g_ActiveConfig.iEFBScale - 1); + newEFBHeight = EFB_HEIGHT * (g_ActiveConfig.iEFBScale - 1); break; }; - EFBxScale *= multiplier; - EFByScale *= multiplier; - - const int m_newFrameBufferWidth = (int)(EFB_WIDTH * EFBxScale); - const int m_newFrameBufferHeight = (int)(EFB_HEIGHT * EFByScale); + newEFBWidth *= multiplier; + newEFBHeight *= multiplier; - if (m_newFrameBufferWidth != s_target_width || - m_newFrameBufferHeight != s_target_height) + if (newEFBWidth != s_target_width || newEFBHeight != s_target_height) { - s_Fulltarget_width = s_target_width = m_newFrameBufferWidth; - s_Fulltarget_height = s_target_height = m_newFrameBufferHeight; - + s_Fulltarget_width = s_target_width = newEFBWidth; + s_Fulltarget_height = s_target_height = newEFBHeight; return true; } - return false; } void Renderer::SetScreenshot(const char *filename) { - s_criticalScreenshot.Enter(); - s_sScreenshotName = filename; - s_bScreenshot = true; - s_criticalScreenshot.Leave(); + s_criticalScreenshot.Enter(); + s_sScreenshotName = filename; + s_bScreenshot = true; + s_criticalScreenshot.Leave(); } // Create On-Screen-Messages |
