From e0a4450bbd40d69d288023ab5a95eaa0b00100fd Mon Sep 17 00:00:00 2001 From: SonofUgly Date: Wed, 1 Feb 2017 00:22:47 -0800 Subject: Add custom layout settings. --- src/core/frontend/emu_window.cpp | 26 +++++++++++++++----------- src/core/settings.h | 10 +++++++++- 2 files changed, 24 insertions(+), 12 deletions(-) (limited to 'src/core') diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp index 1541cc39d..e5b1147a5 100644 --- a/src/core/frontend/emu_window.cpp +++ b/src/core/frontend/emu_window.cpp @@ -116,17 +116,21 @@ void EmuWindow::GyroscopeChanged(float x, float y, float z) { void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) { Layout::FramebufferLayout layout; - switch (Settings::values.layout_option) { - case Settings::LayoutOption::SingleScreen: - layout = Layout::SingleFrameLayout(width, height, Settings::values.swap_screen); - break; - case Settings::LayoutOption::LargeScreen: - layout = Layout::LargeFrameLayout(width, height, Settings::values.swap_screen); - break; - case Settings::LayoutOption::Default: - default: - layout = Layout::DefaultFrameLayout(width, height, Settings::values.swap_screen); - break; + if (Settings::values.custom_layout == true) { + layout = Layout::CustomFrameLayout(width, height); + } else { + switch (Settings::values.layout_option) { + case Settings::LayoutOption::SingleScreen: + layout = Layout::SingleFrameLayout(width, height, Settings::values.swap_screen); + break; + case Settings::LayoutOption::LargeScreen: + layout = Layout::LargeFrameLayout(width, height, Settings::values.swap_screen); + break; + case Settings::LayoutOption::Default: + default: + layout = Layout::DefaultFrameLayout(width, height, Settings::values.swap_screen); + break; + } } NotifyFramebufferLayoutChanged(layout); } diff --git a/src/core/settings.h b/src/core/settings.h index e22ce0f16..52cebc627 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -14,7 +14,6 @@ enum class LayoutOption { Default, SingleScreen, LargeScreen, - Custom, }; namespace NativeInput { @@ -94,6 +93,15 @@ struct Values { LayoutOption layout_option; bool swap_screen; + bool custom_layout; + u16 custom_top_left; + u16 custom_top_top; + u16 custom_top_right; + u16 custom_top_bottom; + u16 custom_bottom_left; + u16 custom_bottom_top; + u16 custom_bottom_right; + u16 custom_bottom_bottom; float bg_red; float bg_green; -- cgit v1.2.3