diff options
| author | Stenzek <stenzek@gmail.com> | 2016-10-05 22:27:37 +1000 |
|---|---|---|
| committer | Stenzek <stenzek@gmail.com> | 2016-10-05 22:28:51 +1000 |
| commit | b39ac950eb8fa71fd745e4c42d2805d3317daeda (patch) | |
| tree | 2099ca2af45a52e4e42c4803f03b0e3f7ee3e99c /Source/Core | |
| parent | 400ba3c7e52b47d061a6abd95999c47da539ec4b (diff) | |
Vulkan: Don't save borders to screenshots/frame dumps
This matches the behavior on GL, making for easier comparisons.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/Renderer.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp index 74e2707a5d..c8f9aaa4d3 100644 --- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp @@ -618,8 +618,15 @@ void Renderer::DrawScreen(const TargetRectangle& src_rect, const Texture2D* src_ bool Renderer::DrawScreenshot(const TargetRectangle& src_rect, const Texture2D* src_tex) { - u32 width = std::max(1u, static_cast<u32>(s_backbuffer_width)); - u32 height = std::max(1u, static_cast<u32>(s_backbuffer_height)); + // Draw the screenshot to an image containing only the active screen area, removing any + // borders as a result of the game rendering in a different aspect ratio. + TargetRectangle target_rect = GetTargetRectangle(); + target_rect.right = target_rect.GetWidth(); + target_rect.bottom = target_rect.GetHeight(); + target_rect.left = 0; + target_rect.top = 0; + u32 width = std::max(1u, static_cast<u32>(target_rect.GetWidth())); + u32 height = std::max(1u, static_cast<u32>(target_rect.GetHeight())); if (!ResizeScreenshotBuffer(width, height)) return false; @@ -637,8 +644,8 @@ bool Renderer::DrawScreenshot(const TargetRectangle& src_rect, const Texture2D* VK_SUBPASS_CONTENTS_INLINE); vkCmdClearAttachments(g_command_buffer_mgr->GetCurrentCommandBuffer(), 1, &clear_attachment, 1, &clear_rect); - BlitScreen(m_framebuffer_mgr->GetColorCopyForReadbackRenderPass(), GetTargetRectangle(), src_rect, - src_tex, true); + BlitScreen(m_framebuffer_mgr->GetColorCopyForReadbackRenderPass(), target_rect, src_rect, src_tex, + true); vkCmdEndRenderPass(g_command_buffer_mgr->GetCurrentCommandBuffer()); // Copy to the readback texture. |
