summaryrefslogtreecommitdiff
path: root/src/core/frontend/framebuffer_layout.cpp
diff options
context:
space:
mode:
authorGravatar Morph2020-02-14 14:39:04 -0500
committerGravatar Morph2020-02-14 14:39:04 -0500
commitc3d0a0d6277c97d6e3c99914358dce15cc26871c (patch)
tree17d032c03feb8a38938515d5fe9cb9f020d5af01 /src/core/frontend/framebuffer_layout.cpp
parentAddress feedback (diff)
downloadyuzu-c3d0a0d6277c97d6e3c99914358dce15cc26871c.tar.gz
yuzu-c3d0a0d6277c97d6e3c99914358dce15cc26871c.tar.xz
yuzu-c3d0a0d6277c97d6e3c99914358dce15cc26871c.zip
Add 4:3 aspect ratio and address feedback
Diffstat (limited to 'src/core/frontend/framebuffer_layout.cpp')
-rw-r--r--src/core/frontend/framebuffer_layout.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/frontend/framebuffer_layout.cpp b/src/core/frontend/framebuffer_layout.cpp
index 1b4f0255e..2dc795d56 100644
--- a/src/core/frontend/framebuffer_layout.cpp
+++ b/src/core/frontend/framebuffer_layout.cpp
@@ -28,8 +28,8 @@ FramebufferLayout DefaultFrameLayout(u32 width, u32 height) {
28 FramebufferLayout res{width, height}; 28 FramebufferLayout res{width, height};
29 29
30 const float window_aspect_ratio = static_cast<float>(height) / width; 30 const float window_aspect_ratio = static_cast<float>(height) / width;
31 float emulation_aspect_ratio = EmulationAspectRatio( 31 const float emulation_aspect_ratio = EmulationAspectRatio(
32 static_cast<Aspect>(Settings::values.aspect_ratio), window_aspect_ratio); 32 static_cast<AspectRatio>(Settings::values.aspect_ratio), window_aspect_ratio);
33 33
34 const Common::Rectangle<u32> screen_window_area{0, 0, width, height}; 34 const Common::Rectangle<u32> screen_window_area{0, 0, width, height};
35 Common::Rectangle<u32> screen = MaxRectangle(screen_window_area, emulation_aspect_ratio); 35 Common::Rectangle<u32> screen = MaxRectangle(screen_window_area, emulation_aspect_ratio);
@@ -58,13 +58,15 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale) {
58 return DefaultFrameLayout(width, height); 58 return DefaultFrameLayout(width, height);
59} 59}
60 60
61float EmulationAspectRatio(Aspect aspect, float window_aspect_ratio) { 61float EmulationAspectRatio(AspectRatio aspect, float window_aspect_ratio) {
62 switch (aspect) { 62 switch (aspect) {
63 case Aspect::Default: 63 case AspectRatio::Default:
64 return static_cast<float>(ScreenUndocked::Height) / ScreenUndocked::Width; 64 return static_cast<float>(ScreenUndocked::Height) / ScreenUndocked::Width;
65 case Aspect::Aspect21by9: 65 case AspectRatio::R4_3:
66 return 3.0f / 4.0f;
67 case AspectRatio::R21_9:
66 return 9.0f / 21.0f; 68 return 9.0f / 21.0f;
67 case Aspect::StretchToWindow: 69 case AspectRatio::StretchToWindow:
68 return window_aspect_ratio; 70 return window_aspect_ratio;
69 default: 71 default:
70 return static_cast<float>(ScreenUndocked::Height) / ScreenUndocked::Width; 72 return static_cast<float>(ScreenUndocked::Height) / ScreenUndocked::Width;