summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2019-04-28 16:53:16 +1000
committerStenzek <stenzek@gmail.com>2019-04-28 23:31:57 +1000
commit3c64f0c6165f7f998952c9a4829970b143f930cb (patch)
tree4ebbc7bcf75a94f65c7ad9a109001c2622482f36 /Source/Core/VideoBackends/OGL/Render.cpp
parentd2d8d7ce90f92bb45e2d8b645ec72f104fee5e6b (diff)
Renderer: Adjust source rectangle when crop would draw off screen
This prevents us from requiring an oversized and/or negative viewport by shrinking the source rectangle instead.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index 546556c440..152b192abe 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -984,13 +984,15 @@ void Renderer::RenderXFBToScreen(const AbstractTexture* texture, const MathUtil:
if (g_ActiveConfig.stereo_mode != StereoMode::QuadBuffer)
return ::Renderer::RenderXFBToScreen(texture, rc);
- const auto target_rc = GetTargetRectangle();
+ auto adjusted_rc = rc;
+ auto target_rc = GetTargetRectangle();
+ AdjustRectanglesToFitBounds(&target_rc, &adjusted_rc, m_backbuffer_width, m_backbuffer_height);
glDrawBuffer(GL_BACK_LEFT);
- m_post_processor->BlitFromTexture(target_rc, rc, texture, 0);
+ m_post_processor->BlitFromTexture(target_rc, adjusted_rc, texture, 0);
glDrawBuffer(GL_BACK_RIGHT);
- m_post_processor->BlitFromTexture(target_rc, rc, texture, 1);
+ m_post_processor->BlitFromTexture(target_rc, adjusted_rc, texture, 1);
glDrawBuffer(GL_BACK);
}