diff options
Diffstat (limited to '')
| -rw-r--r-- | src/core/frontend/framebuffer_layout.cpp | 14 | ||||
| -rw-r--r-- | src/core/frontend/framebuffer_layout.h | 9 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_graphics.ui | 5 | ||||
| -rw-r--r-- | src/yuzu_cmd/default_ini.h | 2 | ||||
| -rw-r--r-- | src/yuzu_tester/default_ini.h | 2 |
5 files changed, 20 insertions, 12 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 | ||
| 61 | float EmulationAspectRatio(Aspect aspect, float window_aspect_ratio) { | 61 | float 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; |
diff --git a/src/core/frontend/framebuffer_layout.h b/src/core/frontend/framebuffer_layout.h index 7f6fbe468..1d39c1faf 100644 --- a/src/core/frontend/framebuffer_layout.h +++ b/src/core/frontend/framebuffer_layout.h | |||
| @@ -18,9 +18,10 @@ enum ScreenDocked : u32 { | |||
| 18 | HeightDocked = 1080, | 18 | HeightDocked = 1080, |
| 19 | }; | 19 | }; |
| 20 | 20 | ||
| 21 | enum class Aspect { | 21 | enum class AspectRatio { |
| 22 | Default, | 22 | Default, |
| 23 | Aspect21by9, | 23 | R4_3, |
| 24 | R21_9, | ||
| 24 | StretchToWindow, | 25 | StretchToWindow, |
| 25 | }; | 26 | }; |
| 26 | 27 | ||
| @@ -56,10 +57,10 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale); | |||
| 56 | 57 | ||
| 57 | /** | 58 | /** |
| 58 | * Convenience method to determine emulation aspect ratio | 59 | * Convenience method to determine emulation aspect ratio |
| 59 | * @param aspect Represents the index of aspect ratio in Settings::values.aspect_ratio | 60 | * @param aspect Represents the index of aspect ratio stored in Settings::values.aspect_ratio |
| 60 | * @param window_aspect_ratio Current window aspect ratio | 61 | * @param window_aspect_ratio Current window aspect ratio |
| 61 | * @return Emulation render window aspect ratio | 62 | * @return Emulation render window aspect ratio |
| 62 | */ | 63 | */ |
| 63 | float EmulationAspectRatio(Aspect aspect, float window_aspect_ratio); | 64 | float EmulationAspectRatio(AspectRatio aspect, float window_aspect_ratio); |
| 64 | 65 | ||
| 65 | } // namespace Layout | 66 | } // namespace Layout |
diff --git a/src/yuzu/configuration/configure_graphics.ui b/src/yuzu/configuration/configure_graphics.ui index ca79909d0..db60426ab 100644 --- a/src/yuzu/configuration/configure_graphics.ui +++ b/src/yuzu/configuration/configure_graphics.ui | |||
| @@ -156,6 +156,11 @@ | |||
| 156 | </item> | 156 | </item> |
| 157 | <item> | 157 | <item> |
| 158 | <property name="text"> | 158 | <property name="text"> |
| 159 | <string>Force 4:3</string> | ||
| 160 | </property> | ||
| 161 | </item> | ||
| 162 | <item> | ||
| 163 | <property name="text"> | ||
| 159 | <string>Force 21:9</string> | 164 | <string>Force 21:9</string> |
| 160 | </property> | 165 | </property> |
| 161 | </item> | 166 | </item> |
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h index 6522c9652..8a2b658cd 100644 --- a/src/yuzu_cmd/default_ini.h +++ b/src/yuzu_cmd/default_ini.h | |||
| @@ -123,7 +123,7 @@ use_shader_jit = | |||
| 123 | resolution_factor = | 123 | resolution_factor = |
| 124 | 124 | ||
| 125 | # Aspect ratio | 125 | # Aspect ratio |
| 126 | # 0: Default (16:9), 1: Force 21:9, 2: Stretch to Window | 126 | # 0: Default (16:9), 1: Force 4:3, 2: Force 21:9, 3: Stretch to Window |
| 127 | aspect_ratio = | 127 | aspect_ratio = |
| 128 | 128 | ||
| 129 | # Whether to enable V-Sync (caps the framerate at 60FPS) or not. | 129 | # Whether to enable V-Sync (caps the framerate at 60FPS) or not. |
diff --git a/src/yuzu_tester/default_ini.h b/src/yuzu_tester/default_ini.h index 676592db0..8d93f7b88 100644 --- a/src/yuzu_tester/default_ini.h +++ b/src/yuzu_tester/default_ini.h | |||
| @@ -27,7 +27,7 @@ use_shader_jit = | |||
| 27 | resolution_factor = | 27 | resolution_factor = |
| 28 | 28 | ||
| 29 | # Aspect ratio | 29 | # Aspect ratio |
| 30 | # 0: Default (16:9), 1: Force 21:9, 2: Stretch to Window | 30 | # 0: Default (16:9), 1: Force 4:3, 2: Force 21:9, 3: Stretch to Window |
| 31 | aspect_ratio = | 31 | aspect_ratio = |
| 32 | 32 | ||
| 33 | # Whether to enable V-Sync (caps the framerate at 60FPS) or not. | 33 | # Whether to enable V-Sync (caps the framerate at 60FPS) or not. |