diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/frontend/framebuffer_layout.cpp | 14 | ||||
| -rw-r--r-- | src/core/frontend/framebuffer_layout.h | 9 |
2 files changed, 13 insertions, 10 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 |