diff --git a/src/core/frontend/framebuffer_layout.cpp b/src/core/frontend/framebuffer_layout.cpp index 7cf52a29c..4d0e3632a 100644 --- a/src/core/frontend/framebuffer_layout.cpp +++ b/src/core/frontend/framebuffer_layout.cpp @@ -1,4 +1,4 @@ -// Copyright 2016 Citra Emulator Project +// Copyright Citra Emulator Project / Azahar Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. @@ -443,6 +443,24 @@ FramebufferLayout FrameLayoutFromResolutionScale(u32 res_scale, bool is_secondar Settings::values.upright_screen.GetValue(), 1, Settings::SmallScreenPosition::MiddleRight); + case Settings::LayoutOption::HybridScreen: + height = Core::kScreenTopHeight * res_scale; + + if (Settings::values.swap_screen.GetValue()) { + width = Core::kScreenBottomWidth; + } else { + width = Core::kScreenTopWidth; + } + // 2.25f comes from HybridScreenLayout's scale_factor value. + width = static_cast((width + (Core::kScreenTopWidth / 2.25f)) * res_scale); + + if (Settings::values.upright_screen.GetValue()) { + std::swap(width, height); + } + + return HybridScreenLayout(width, height, Settings::values.swap_screen.GetValue(), + Settings::values.upright_screen.GetValue()); + case Settings::LayoutOption::Default: default: width = Core::kScreenTopWidth * res_scale;