diff options
| author | Stenzek <stenzek@gmail.com> | 2019-04-28 16:53:16 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2019-04-28 23:31:57 +1000 |
| commit | 3c64f0c6165f7f998952c9a4829970b143f930cb (patch) | |
| tree | 4ebbc7bcf75a94f65c7ad9a109001c2622482f36 /Source/Core/VideoBackends/OGL/Render.cpp | |
| parent | d2d8d7ce90f92bb45e2d8b645ec72f104fee5e6b (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.cpp | 8 |
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); } |
