summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp
diff options
context:
space:
mode:
authorNeoBrainX <NeoBrainX@gmail.com>2012-10-02 22:11:15 +0200
committerNeoBrainX <NeoBrainX@gmail.com>2012-11-19 13:10:32 +0100
commitb02bb7617fe5bdcda524d065b5601834e0a3ed4a (patch)
treefb996e164bd077a1453b89927ee61502e01ebac6 /Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp
parentf88e7d3b73e99908e29b243c22210c4b8d47353b (diff)
Fix some fractional EFB scaling issues.
Diffstat (limited to 'Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp b/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp
index 090c1c7872..c883714daf 100644
--- a/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp
+++ b/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp
@@ -10,8 +10,8 @@ XFBSourceBase *FramebufferManagerBase::m_realXFBSource; // Only used in Real XFB
FramebufferManagerBase::VirtualXFBListType FramebufferManagerBase::m_virtualXFBList; // Only used in Virtual XFB mode
const XFBSourceBase* FramebufferManagerBase::m_overlappingXFBArray[MAX_VIRTUAL_XFB];
-unsigned int FramebufferManagerBase::s_last_xfb_width;
-unsigned int FramebufferManagerBase::s_last_xfb_height;
+unsigned int FramebufferManagerBase::s_last_xfb_width = 1;
+unsigned int FramebufferManagerBase::s_last_xfb_height = 1;
FramebufferManagerBase::FramebufferManagerBase()
{
@@ -230,30 +230,30 @@ void FramebufferManagerBase::ReplaceVirtualXFB()
}
}
-unsigned int FramebufferManagerBase::ScaleToVirtualXfbWidth(unsigned int width, unsigned int backbuffer_width)
+int FramebufferManagerBase::ScaleToVirtualXfbWidth(int x, unsigned int backbuffer_width)
{
if (g_ActiveConfig.RealXFBEnabled())
- return width;
+ return x;
if (g_ActiveConfig.b3DVision)
{
// This works, yet the version in the else doesn't. No idea why.
- return width * backbuffer_width / FramebufferManagerBase::LastXfbWidth();
+ return x * (int)backbuffer_width / (int)FramebufferManagerBase::LastXfbWidth();
}
else
- return width * Renderer::GetTargetRectangle().GetWidth() / FramebufferManagerBase::LastXfbWidth();
+ return x * (int)Renderer::GetTargetRectangle().GetWidth() / (int)FramebufferManagerBase::LastXfbWidth();
}
-unsigned int FramebufferManagerBase::ScaleToVirtualXfbHeight(unsigned int height, unsigned int backbuffer_height)
+int FramebufferManagerBase::ScaleToVirtualXfbHeight(int y, unsigned int backbuffer_height)
{
if (g_ActiveConfig.RealXFBEnabled())
- return height;
+ return y;
if (g_ActiveConfig.b3DVision)
{
// This works, yet the version in the else doesn't. No idea why.
- return height * backbuffer_height / FramebufferManagerBase::LastXfbHeight();
+ return y * (int)backbuffer_height / (int)FramebufferManagerBase::LastXfbHeight();
}
else
- return height * Renderer::GetTargetRectangle().GetHeight() / FramebufferManagerBase::LastXfbHeight();
+ return y * (int)Renderer::GetTargetRectangle().GetHeight() / (int)FramebufferManagerBase::LastXfbHeight();
}