diff options
author | James Rowe <jroweboy@gmail.com> | 2016-11-05 09:58:11 +0100 |
---|---|---|
committer | James Rowe <jroweboy@gmail.com> | 2016-11-05 10:46:43 +0100 |
commit | d9305b0a074a255eb484911db70a126a6fe347b1 (patch) | |
tree | fcd629c513d4c8d217bf89069b288a39debb594f /src/common | |
parent | Rework frame layouts to use a max rectangle instead of hardcoded calculations (diff) | |
download | yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar.gz yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar.bz2 yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar.lz yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar.xz yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.tar.zst yuzu-d9305b0a074a255eb484911db70a126a6fe347b1.zip |
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/emu_window.h | 2 | ||||
-rw-r--r-- | src/common/framebuffer_layout.cpp | 6 | ||||
-rw-r--r-- | src/common/framebuffer_layout.h | 3 | ||||
-rw-r--r-- | src/common/math_util.h | 6 |
4 files changed, 10 insertions, 7 deletions
diff --git a/src/common/emu_window.h b/src/common/emu_window.h index 6fac572f5..835c4d500 100644 --- a/src/common/emu_window.h +++ b/src/common/emu_window.h @@ -200,7 +200,7 @@ public: } /** - * Convenience method to update the VideoCore EmuWindow + * Convenience method to update the current frame layout * Read from the current settings to determine which layout to use. */ void UpdateCurrentFramebufferLayout(unsigned width, unsigned height); diff --git a/src/common/framebuffer_layout.cpp b/src/common/framebuffer_layout.cpp index d50c141bb..e8538dcfd 100644 --- a/src/common/framebuffer_layout.cpp +++ b/src/common/framebuffer_layout.cpp @@ -51,11 +51,15 @@ FramebufferLayout DefaultFrameLayout(unsigned width, unsigned height, bool swapp bot_screen.TranslateX((screen_window_area.GetWidth() - bot_screen.GetWidth()) / 2); } else { // Window is narrower than the emulation content => apply borders to the top and bottom - top_screen = top_screen.TranslateY(height / 2 - top_screen.GetHeight()); // Recalculate the bottom screen to account for the width difference between top and bottom screen_window_area = {0, 0, width, top_screen.GetHeight()}; bot_screen = maxRectangle(screen_window_area, BOT_SCREEN_ASPECT_RATIO); bot_screen = bot_screen.TranslateX((top_screen.GetWidth() - bot_screen.GetWidth()) / 2); + if (swapped) { + bot_screen = bot_screen.TranslateY(height / 2 - bot_screen.GetHeight()); + } else { + top_screen = top_screen.TranslateY(height / 2 - top_screen.GetHeight()); + } } // Move the top screen to the bottom if we are swapped. res.top_screen = swapped ? top_screen.TranslateY(height / 2) : top_screen; diff --git a/src/common/framebuffer_layout.h b/src/common/framebuffer_layout.h index c69a80732..7f88c9463 100644 --- a/src/common/framebuffer_layout.h +++ b/src/common/framebuffer_layout.h @@ -33,7 +33,8 @@ FramebufferLayout DefaultFrameLayout(unsigned width, unsigned height, bool is_sw FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swapped); /** - * Factory method for constructing a Frame with the a 4x size Top screen with a 1x size bottom screen on the right + * Factory method for constructing a Frame with the a 4x size Top screen with a 1x size bottom + * screen on the right * This is useful in particular because it matches well with a 1920x1080 resolution monitor * @param width Window framebuffer width in pixels * @param height Window framebuffer height in pixels diff --git a/src/common/math_util.h b/src/common/math_util.h index 570ec8e56..9e630d93d 100644 --- a/src/common/math_util.h +++ b/src/common/math_util.h @@ -45,10 +45,8 @@ struct Rectangle { return Rectangle{left, top + y, right, bottom + y}; } Rectangle<T> Scale(const float s) const { - ASSERT(s > 0); - return Rectangle { - left, top, static_cast<T>((right + left) * s), static_cast<T>((top + bottom) * s) - }; + return Rectangle{left, top, static_cast<T>((right + left) * s), + static_cast<T>((top + bottom) * s)}; } }; |