summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2023-01-26 19:06:39 +1300
committerScott Mansell <phiren@gmail.com>2023-01-31 18:29:47 +1300
commitc38c76abad039c3c0ccb3f7ebb891dc62560f8a3 (patch)
treef8536e87d3d557882ad781b636d0dabacc8b6329 /Source/Core/VideoCommon/RenderBase.cpp
parenta01d5283ec1dc6a4dc50e4b8da48e6de1c6ac1dd (diff)
Refactor to remove virtual from RenderXFBToScreen
Slightly simplifies the upcoming refactor
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index 9c9e564b91..fcfde79bda 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -1492,8 +1492,26 @@ void Renderer::RenderXFBToScreen(const MathUtil::Rectangle<int>& target_rc,
const AbstractTexture* source_texture,
const MathUtil::Rectangle<int>& source_rc)
{
- if (g_ActiveConfig.stereo_mode == StereoMode::SBS ||
- g_ActiveConfig.stereo_mode == StereoMode::TAB)
+ if (!g_ActiveConfig.backend_info.bSupportsPostProcessing)
+ {
+ ShowImage(source_texture, source_rc);
+ return
+ }
+
+ if (g_ActiveConfig.stereo_mode == StereoMode::QuadBuffer &&
+ g_ActiveConfig.backend_info.bUsesExplictQuadBuffering)
+ {
+ // Quad-buffered stereo is annoying on GL.
+ SelectLeftBuffer();
+ m_post_processor->BlitFromTexture(target_rc, source_rc, source_texture, 0);
+
+ SelectRightBuffer();
+ m_post_processor->BlitFromTexture(target_rc, source_rc, source_texture, 1);
+
+ SelectMainBuffer();
+ }
+ else if (g_ActiveConfig.stereo_mode == StereoMode::SBS ||
+ g_ActiveConfig.stereo_mode == StereoMode::TAB)
{
const auto [left_rc, right_rc] = ConvertStereoRectangle(target_rc);