diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-09-19 12:54:19 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2014-09-19 12:54:19 -0500 |
| commit | af25b15348687c482968061cd31c0652ef702002 (patch) | |
| tree | 9bcff2697dd7c90db0cf0b728e4177578945737c /Source/Core/VideoCommon/MainBase.cpp | |
| parent | 0d1c1e94771982ca39ce339ee799f0f16928b9a9 (diff) | |
| parent | c5f9301e6e92178af322ca95f2caddabce238c60 (diff) | |
Merge pull request #977 from Sonicadvance1/xfb-scaling-rebased
XFB Scaling
Diffstat (limited to 'Source/Core/VideoCommon/MainBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/MainBase.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/MainBase.cpp b/Source/Core/VideoCommon/MainBase.cpp index 97a2f5d017..aa08c932e7 100644 --- a/Source/Core/VideoCommon/MainBase.cpp +++ b/Source/Core/VideoCommon/MainBase.cpp @@ -29,6 +29,7 @@ static volatile struct { u32 xfbAddr; u32 fbWidth; + u32 fbStride; u32 fbHeight; } s_beginFieldArgs; @@ -74,7 +75,7 @@ static void VideoFifo_CheckSwapRequest() if (s_swapRequested.IsSet()) { EFBRectangle rc; - Renderer::Swap(s_beginFieldArgs.xfbAddr, s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbHeight,rc); + Renderer::Swap(s_beginFieldArgs.xfbAddr, s_beginFieldArgs.fbWidth, s_beginFieldArgs.fbStride, s_beginFieldArgs.fbHeight, rc); s_swapRequested.Clear(); } } @@ -90,7 +91,7 @@ void VideoFifo_CheckSwapRequestAt(u32 xfbAddr, u32 fbWidth, u32 fbHeight) u32 aLower = xfbAddr; u32 aUpper = xfbAddr + 2 * fbWidth * fbHeight; u32 bLower = s_beginFieldArgs.xfbAddr; - u32 bUpper = s_beginFieldArgs.xfbAddr + 2 * s_beginFieldArgs.fbWidth * s_beginFieldArgs.fbHeight; + u32 bUpper = s_beginFieldArgs.xfbAddr + 2 * s_beginFieldArgs.fbStride * s_beginFieldArgs.fbHeight; if (addrRangesOverlap(aLower, aUpper, bLower, bUpper)) VideoFifo_CheckSwapRequest(); @@ -99,7 +100,7 @@ void VideoFifo_CheckSwapRequestAt(u32 xfbAddr, u32 fbWidth, u32 fbHeight) } // Run from the CPU thread (from VideoInterface.cpp) -void VideoBackendHardware::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbHeight) +void VideoBackendHardware::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight) { if (s_BackendInitialized && g_ActiveConfig.bUseXFB) { @@ -107,6 +108,7 @@ void VideoBackendHardware::Video_BeginField(u32 xfbAddr, u32 fbWidth, u32 fbHeig VideoFifo_CheckSwapRequest(); s_beginFieldArgs.xfbAddr = xfbAddr; s_beginFieldArgs.fbWidth = fbWidth; + s_beginFieldArgs.fbStride = fbStride; s_beginFieldArgs.fbHeight = fbHeight; } } |
