diff options
| author | Matthew Parlane <parlane@gmail.com> | 2013-01-01 23:28:46 +1300 |
|---|---|---|
| committer | Matthew Parlane <parlane@gmail.com> | 2013-01-01 23:28:46 +1300 |
| commit | e0c9a1fd09b9be953bf0ae41b9014485e750b07e (patch) | |
| tree | 059744e17a2a35ca58dd9b817cab620faee38611 /Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp | |
| parent | fe1fdc5e7b957312c906324134e42ca3484fa2d5 (diff) | |
| parent | c728ef2cd30ef803210d5db0a1ecab6b198a2c65 (diff) | |
Merge branch 'master' into wii-network
Conflicts:
Source/Core/Common/Src/CommonPaths.h
Source/Core/Core/CMakeLists.txt
Source/Core/Core/Src/Boot/Boot_BS2Emu.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_net.cpp
Diffstat (limited to 'Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp b/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp index b234a7c865..c883714daf 100644 --- a/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp +++ b/Source/Core/VideoCommon/Src/FramebufferManagerBase.cpp @@ -10,6 +10,9 @@ 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 = 1; +unsigned int FramebufferManagerBase::s_last_xfb_height = 1; + FramebufferManagerBase::FramebufferManagerBase() { m_realXFBSource = NULL; @@ -226,3 +229,31 @@ void FramebufferManagerBase::ReplaceVirtualXFB() } } } + +int FramebufferManagerBase::ScaleToVirtualXfbWidth(int x, unsigned int backbuffer_width) +{ + if (g_ActiveConfig.RealXFBEnabled()) + return x; + + if (g_ActiveConfig.b3DVision) + { + // This works, yet the version in the else doesn't. No idea why. + return x * (int)backbuffer_width / (int)FramebufferManagerBase::LastXfbWidth(); + } + else + return x * (int)Renderer::GetTargetRectangle().GetWidth() / (int)FramebufferManagerBase::LastXfbWidth(); +} + +int FramebufferManagerBase::ScaleToVirtualXfbHeight(int y, unsigned int backbuffer_height) +{ + if (g_ActiveConfig.RealXFBEnabled()) + return y; + + if (g_ActiveConfig.b3DVision) + { + // This works, yet the version in the else doesn't. No idea why. + return y * (int)backbuffer_height / (int)FramebufferManagerBase::LastXfbHeight(); + } + else + return y * (int)Renderer::GetTargetRectangle().GetHeight() / (int)FramebufferManagerBase::LastXfbHeight(); +} |
