mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	android: frontend: Track screen layout separately for orientation.
android framebuffer
This commit is contained in:
		
							parent
							
								
									e8f57d7e3c
								
							
						
					
					
						commit
						b7a156f7c8
					
				
					 5 changed files with 15 additions and 5 deletions
				
			
		|  | @ -145,7 +145,8 @@ void EmuWindow::TouchMoved(unsigned framebuffer_x, unsigned framebuffer_y) { | |||
|     TouchPressed(framebuffer_x, framebuffer_y); | ||||
| } | ||||
| 
 | ||||
| void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) { | ||||
| void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height, | ||||
|                                                bool is_portrait_mode) { | ||||
|     Layout::FramebufferLayout layout; | ||||
|     const auto layout_option = Settings::values.layout_option; | ||||
|     const auto min_size = | ||||
|  | @ -156,6 +157,12 @@ void EmuWindow::UpdateCurrentFramebufferLayout(unsigned width, unsigned height) | |||
|     } else { | ||||
|         width = std::max(width, min_size.first); | ||||
|         height = std::max(height, min_size.second); | ||||
| 
 | ||||
|         // If in portrait mode, only the MobilePortrait option really makes sense
 | ||||
|         const Settings::LayoutOption layout_option = is_portrait_mode | ||||
|                                                          ? Settings::LayoutOption::MobilePortrait | ||||
|                                                          : Settings::values.layout_option; | ||||
| 
 | ||||
|         switch (layout_option) { | ||||
|         case Settings::LayoutOption::SingleScreen: | ||||
|             layout = Layout::SingleFrameLayout(width, height, Settings::values.swap_screen, | ||||
|  |  | |||
|  | @ -159,7 +159,8 @@ public: | |||
|      * Convenience method to update the current frame layout | ||||
|      * Read from the current settings to determine which layout to use. | ||||
|      */ | ||||
|     void UpdateCurrentFramebufferLayout(unsigned width, unsigned height); | ||||
|     void UpdateCurrentFramebufferLayout(unsigned width, unsigned height, | ||||
|                                         bool is_portrait_mode = {}); | ||||
| 
 | ||||
|     std::unique_ptr<TextureMailbox> mailbox = nullptr; | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,9 +33,11 @@ void Apply() { | |||
|     VideoCore::g_hw_shader_accurate_mul = values.shaders_accurate_mul; | ||||
|     VideoCore::g_use_disk_shader_cache = values.use_disk_shader_cache; | ||||
| 
 | ||||
| #ifndef ANDROID | ||||
|     if (VideoCore::g_renderer) { | ||||
|         VideoCore::g_renderer->UpdateCurrentFramebufferLayout(); | ||||
|     } | ||||
| #endif | ||||
| 
 | ||||
|     VideoCore::g_renderer_bg_color_update_requested = true; | ||||
|     VideoCore::g_renderer_sampler_update_requested = true; | ||||
|  |  | |||
|  | @ -11,9 +11,9 @@ | |||
| 
 | ||||
| RendererBase::RendererBase(Frontend::EmuWindow& window) : render_window{window} {} | ||||
| RendererBase::~RendererBase() = default; | ||||
| void RendererBase::UpdateCurrentFramebufferLayout() { | ||||
| void RendererBase::UpdateCurrentFramebufferLayout(bool is_portrait_mode) { | ||||
|     const Layout::FramebufferLayout& layout = render_window.GetFramebufferLayout(); | ||||
|     render_window.UpdateCurrentFramebufferLayout(layout.width, layout.height); | ||||
|     render_window.UpdateCurrentFramebufferLayout(layout.width, layout.height, is_portrait_mode); | ||||
| } | ||||
| 
 | ||||
| void RendererBase::RefreshRasterizerSetting() { | ||||
|  |  | |||
|  | @ -38,7 +38,7 @@ public: | |||
|     virtual void CleanupVideoDumping() = 0; | ||||
| 
 | ||||
|     /// Updates the framebuffer layout of the contained render window handle.
 | ||||
|     void UpdateCurrentFramebufferLayout(); | ||||
|     void UpdateCurrentFramebufferLayout(bool is_portrait_mode = {}); | ||||
| 
 | ||||
|     // Getter/setter functions:
 | ||||
|     // ------------------------
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue