summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Present.cpp
diff options
context:
space:
mode:
authorFilippo Tarpini <filippotarpini@hotmail.it>2023-06-04 18:03:57 +0300
committerGitHub <noreply@github.com>2023-06-04 18:03:57 +0300
commitadf4089276b81eb17fadb6069b9cdb17da8f9d87 (patch)
treef123ec577dc54e1098cfa6f17bdb4d5070a348df /Source/Core/VideoCommon/Present.cpp
parent252d3f353aa74b06a1c67daa65eb60f786608a6a (diff)
Fix video output having small black borders all the times
To maintain compatibility with some video encoders, the whole output buffer was scaled to be a multiple of 4. This change makes it so that that rule only applies while actively recording (or taking screenshots, even if it might not be necessary for that case).
Diffstat (limited to 'Source/Core/VideoCommon/Present.cpp')
-rw-r--r--Source/Core/VideoCommon/Present.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/Present.cpp b/Source/Core/VideoCommon/Present.cpp
index 3ac4d516df..c969bdb91f 100644
--- a/Source/Core/VideoCommon/Present.cpp
+++ b/Source/Core/VideoCommon/Present.cpp
@@ -440,8 +440,11 @@ void Presenter::UpdateDrawRectangle()
}
// ensure divisibility by 4 to make it compatible with all the video encoders
- draw_width = std::ceil(draw_width) - static_cast<int>(std::ceil(draw_width)) % 4;
- draw_height = std::ceil(draw_height) - static_cast<int>(std::ceil(draw_height)) % 4;
+ if (g_frame_dumper->IsFrameDumping())
+ {
+ draw_width = std::ceil(draw_width) - static_cast<int>(std::ceil(draw_width)) % 4;
+ draw_height = std::ceil(draw_height) - static_cast<int>(std::ceil(draw_height)) % 4;
+ }
m_target_rectangle.left = static_cast<int>(std::round(win_width / 2.0 - draw_width / 2.0));
m_target_rectangle.top = static_cast<int>(std::round(win_height / 2.0 - draw_height / 2.0));