summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorJames Rowe <jroweboy@gmail.com>2016-11-05 09:58:11 +0100
committerJames Rowe <jroweboy@gmail.com>2016-11-05 10:46:43 +0100
commitd9305b0a074a255eb484911db70a126a6fe347b1 (patch)
treefcd629c513d4c8d217bf89069b288a39debb594f /src/common
parentRework frame layouts to use a max rectangle instead of hardcoded calculations (diff)
downloadyuzu-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.h2
-rw-r--r--src/common/framebuffer_layout.cpp6
-rw-r--r--src/common/framebuffer_layout.h3
-rw-r--r--src/common/math_util.h6
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)};
}
};