forked from eden-emu/eden
		
	Add default hotkey to swap primary screens.
Also minor style changes
This commit is contained in:
		
							parent
							
								
									8e64c6c170
								
							
						
					
					
						commit
						72786d410e
					
				
					 10 changed files with 27 additions and 13 deletions
				
			
		|  | @ -73,7 +73,8 @@ void Config::ReadValues() { | ||||||
|     Settings::values.bg_blue = (float)sdl2_config->GetReal("Renderer", "bg_blue", 1.0); |     Settings::values.bg_blue = (float)sdl2_config->GetReal("Renderer", "bg_blue", 1.0); | ||||||
| 
 | 
 | ||||||
|     // Layout
 |     // Layout
 | ||||||
|     Settings::values.layout_option = static_cast<Settings::LayoutOption>(sdl2_config->GetInteger("Layout", "layout_option", 0)); |     Settings::values.layout_option = | ||||||
|  |         static_cast<Settings::LayoutOption>(sdl2_config->GetInteger("Layout", "layout_option", 0)); | ||||||
|     Settings::values.swap_screen = sdl2_config->GetBoolean("Layout", "swap_screen", false); |     Settings::values.swap_screen = sdl2_config->GetBoolean("Layout", "swap_screen", false); | ||||||
| 
 | 
 | ||||||
|     // Audio
 |     // Audio
 | ||||||
|  |  | ||||||
|  | @ -55,7 +55,8 @@ void Config::ReadValues() { | ||||||
|     qt_config->endGroup(); |     qt_config->endGroup(); | ||||||
| 
 | 
 | ||||||
|     qt_config->beginGroup("Layout"); |     qt_config->beginGroup("Layout"); | ||||||
|     Settings::values.layout_option = static_cast<Settings::LayoutOption>(qt_config->value("layout_option").toInt()); |     Settings::values.layout_option = | ||||||
|  |         static_cast<Settings::LayoutOption>(qt_config->value("layout_option").toInt()); | ||||||
|     Settings::values.swap_screen = qt_config->value("swap_screen", false).toBool(); |     Settings::values.swap_screen = qt_config->value("swap_screen", false).toBool(); | ||||||
|     qt_config->endGroup(); |     qt_config->endGroup(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -32,7 +32,8 @@ void ConfigureGraphics::applyConfiguration() { | ||||||
|     Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); |     Settings::values.use_shader_jit = ui->toggle_shader_jit->isChecked(); | ||||||
|     Settings::values.use_scaled_resolution = ui->toggle_scaled_resolution->isChecked(); |     Settings::values.use_scaled_resolution = ui->toggle_scaled_resolution->isChecked(); | ||||||
|     Settings::values.use_vsync = ui->toggle_vsync->isChecked(); |     Settings::values.use_vsync = ui->toggle_vsync->isChecked(); | ||||||
|     Settings::values.layout_option = static_cast<Settings::LayoutOption>(ui->layout_combobox->currentIndex()); |     Settings::values.layout_option = | ||||||
|  |         static_cast<Settings::LayoutOption>(ui->layout_combobox->currentIndex()); | ||||||
|     Settings::values.swap_screen = ui->swap_screen->isChecked(); |     Settings::values.swap_screen = ui->swap_screen->isChecked(); | ||||||
|     Settings::Apply(); |     Settings::Apply(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -196,6 +196,7 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) { | ||||||
| 
 | 
 | ||||||
|     // Setup hotkeys
 |     // Setup hotkeys
 | ||||||
|     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); |     RegisterHotkey("Main Window", "Load File", QKeySequence::Open); | ||||||
|  |     RegisterHotkey("Main Window", "Swap Screens", QKeySequence::NextChild); | ||||||
|     RegisterHotkey("Main Window", "Start Emulation"); |     RegisterHotkey("Main Window", "Start Emulation"); | ||||||
|     LoadHotkeys(); |     LoadHotkeys(); | ||||||
| 
 | 
 | ||||||
|  | @ -203,6 +204,8 @@ GMainWindow::GMainWindow() : config(new Config()), emu_thread(nullptr) { | ||||||
|             SLOT(OnMenuLoadFile())); |             SLOT(OnMenuLoadFile())); | ||||||
|     connect(GetHotkey("Main Window", "Start Emulation", this), SIGNAL(activated()), this, |     connect(GetHotkey("Main Window", "Start Emulation", this), SIGNAL(activated()), this, | ||||||
|             SLOT(OnStartGame())); |             SLOT(OnStartGame())); | ||||||
|  |     connect(GetHotkey("Main Window", "Swap Screens", this), SIGNAL(activated()), this, | ||||||
|  |             SLOT(OnSwapScreens())); | ||||||
| 
 | 
 | ||||||
|     std::string window_title = |     std::string window_title = | ||||||
|         Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc); |         Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc); | ||||||
|  | @ -550,6 +553,11 @@ void GMainWindow::OnConfigure() { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void GMainWindow::OnSwapScreens() { | ||||||
|  |     Settings::values.swap_screen = !Settings::values.swap_screen; | ||||||
|  |     Settings::Apply(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void GMainWindow::OnCreateGraphicsSurfaceViewer() { | void GMainWindow::OnCreateGraphicsSurfaceViewer() { | ||||||
|     auto graphicsSurfaceViewerWidget = new GraphicsSurfaceWidget(Pica::g_debug_context, this); |     auto graphicsSurfaceViewerWidget = new GraphicsSurfaceWidget(Pica::g_debug_context, this); | ||||||
|     addDockWidget(Qt::RightDockWidgetArea, graphicsSurfaceViewerWidget); |     addDockWidget(Qt::RightDockWidgetArea, graphicsSurfaceViewerWidget); | ||||||
|  |  | ||||||
|  | @ -105,6 +105,7 @@ private slots: | ||||||
|     /// Called whenever a user selects the "File->Select Game List Root" menu item
 |     /// Called whenever a user selects the "File->Select Game List Root" menu item
 | ||||||
|     void OnMenuSelectGameListRoot(); |     void OnMenuSelectGameListRoot(); | ||||||
|     void OnMenuRecentFile(); |     void OnMenuRecentFile(); | ||||||
|  |     void OnSwapScreens(); | ||||||
|     void OnConfigure(); |     void OnConfigure(); | ||||||
|     void OnDisplayTitleBars(bool); |     void OnDisplayTitleBars(bool); | ||||||
|     void ToggleWindowMode(); |     void ToggleWindowMode(); | ||||||
|  |  | ||||||
|  | @ -200,7 +200,7 @@ public: | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /**
 |     /**
 | ||||||
|      * Convenience method to update the VideoCore EmuWindow |      * Convenience method to update the current frame layout | ||||||
|      * Read from the current settings to determine which layout to use. |      * Read from the current settings to determine which layout to use. | ||||||
|      */ |      */ | ||||||
|     void UpdateCurrentFramebufferLayout(unsigned width, unsigned height); |     void UpdateCurrentFramebufferLayout(unsigned width, unsigned height); | ||||||
|  |  | ||||||
|  | @ -51,11 +51,15 @@ FramebufferLayout DefaultFrameLayout(unsigned width, unsigned height, bool swapp | ||||||
|             bot_screen.TranslateX((screen_window_area.GetWidth() - bot_screen.GetWidth()) / 2); |             bot_screen.TranslateX((screen_window_area.GetWidth() - bot_screen.GetWidth()) / 2); | ||||||
|     } else { |     } else { | ||||||
|         // Window is narrower than the emulation content => apply borders to the top and bottom
 |         // Window is narrower than the emulation content => apply borders to the top and bottom
 | ||||||
|         top_screen = top_screen.TranslateY(height / 2 - top_screen.GetHeight()); |  | ||||||
|         // Recalculate the bottom screen to account for the width difference between top and bottom
 |         // Recalculate the bottom screen to account for the width difference between top and bottom
 | ||||||
|         screen_window_area = {0, 0, width, top_screen.GetHeight()}; |         screen_window_area = {0, 0, width, top_screen.GetHeight()}; | ||||||
|         bot_screen = maxRectangle(screen_window_area, BOT_SCREEN_ASPECT_RATIO); |         bot_screen = maxRectangle(screen_window_area, BOT_SCREEN_ASPECT_RATIO); | ||||||
|         bot_screen = bot_screen.TranslateX((top_screen.GetWidth() - bot_screen.GetWidth()) / 2); |         bot_screen = bot_screen.TranslateX((top_screen.GetWidth() - bot_screen.GetWidth()) / 2); | ||||||
|  |         if (swapped) { | ||||||
|  |             bot_screen = bot_screen.TranslateY(height / 2 - bot_screen.GetHeight()); | ||||||
|  |         } else { | ||||||
|  |             top_screen = top_screen.TranslateY(height / 2 - top_screen.GetHeight()); | ||||||
|  |         } | ||||||
|     } |     } | ||||||
|     // Move the top screen to the bottom if we are swapped.
 |     // Move the top screen to the bottom if we are swapped.
 | ||||||
|     res.top_screen = swapped ? top_screen.TranslateY(height / 2) : top_screen; |     res.top_screen = swapped ? top_screen.TranslateY(height / 2) : top_screen; | ||||||
|  |  | ||||||
|  | @ -33,7 +33,8 @@ FramebufferLayout DefaultFrameLayout(unsigned width, unsigned height, bool is_sw | ||||||
| FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swapped); | FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swapped); | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * Factory method for constructing a Frame with the a 4x size Top screen with a 1x size bottom screen on the right |  * Factory method for constructing a Frame with the a 4x size Top screen with a 1x size bottom | ||||||
|  |  * screen on the right | ||||||
|  * This is useful in particular because it matches well with a 1920x1080 resolution monitor |  * This is useful in particular because it matches well with a 1920x1080 resolution monitor | ||||||
|  * @param width Window framebuffer width in pixels |  * @param width Window framebuffer width in pixels | ||||||
|  * @param height Window framebuffer height in pixels |  * @param height Window framebuffer height in pixels | ||||||
|  |  | ||||||
|  | @ -45,10 +45,8 @@ struct Rectangle { | ||||||
|         return Rectangle{left, top + y, right, bottom + y}; |         return Rectangle{left, top + y, right, bottom + y}; | ||||||
|     } |     } | ||||||
|     Rectangle<T> Scale(const float s) const { |     Rectangle<T> Scale(const float s) const { | ||||||
|         ASSERT(s > 0); |         return Rectangle{left, top, static_cast<T>((right + left) * s), | ||||||
|         return Rectangle { |                          static_cast<T>((top + bottom) * s)}; | ||||||
|             left, top, static_cast<T>((right + left) * s), static_cast<T>((top + bottom) * s) |  | ||||||
|         }; |  | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -406,9 +406,8 @@ void RendererOpenGL::DrawScreens() { | ||||||
|     glUniform1i(uniform_color_texture, 0); |     glUniform1i(uniform_color_texture, 0); | ||||||
| 
 | 
 | ||||||
|     if (layout.top_screen_enabled) { |     if (layout.top_screen_enabled) { | ||||||
|         DrawSingleScreenRotated(screen_infos[0], (float)top_screen.left, |         DrawSingleScreenRotated(screen_infos[0], (float)top_screen.left, (float)top_screen.top, | ||||||
|                                 (float)top_screen.top, (float)top_screen.GetWidth(), |                                 (float)top_screen.GetWidth(), (float)top_screen.GetHeight()); | ||||||
|                                 (float)top_screen.GetHeight()); |  | ||||||
|     } |     } | ||||||
|     if (layout.bottom_screen_enabled) { |     if (layout.bottom_screen_enabled) { | ||||||
|         DrawSingleScreenRotated(screen_infos[1], (float)bottom_screen.left, |         DrawSingleScreenRotated(screen_infos[1], (float)bottom_screen.left, | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 James Rowe
						James Rowe