diff options
| author | Scott Mansell <phiren@gmail.com> | 2023-01-26 19:06:39 +1300 |
|---|---|---|
| committer | Scott Mansell <phiren@gmail.com> | 2023-01-31 18:29:47 +1300 |
| commit | c38c76abad039c3c0ccb3f7ebb891dc62560f8a3 (patch) | |
| tree | f8536e87d3d557882ad781b636d0dabacc8b6329 /Source/Core/VideoCommon/RenderBase.cpp | |
| parent | a01d5283ec1dc6a4dc50e4b8da48e6de1c6ac1dd (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.cpp | 22 |
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); |
