mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Move screen size constants from video_core to core
video_core didn't even properly use them, and they were the source of many otherwise-unnecessary dependencies from core to video_core.
This commit is contained in:
		
							parent
							
								
									6665557ff7
								
							
						
					
					
						commit
						eb10f25025
					
				
					 9 changed files with 63 additions and 51 deletions
				
			
		|  | @ -5,10 +5,10 @@ | |||
| #include <algorithm> | ||||
| #include <cmath> | ||||
| #include "common/assert.h" | ||||
| #include "core/3ds.h" | ||||
| #include "core/core.h" | ||||
| #include "core/frontend/emu_window.h" | ||||
| #include "core/settings.h" | ||||
| #include "video_core/video_core.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * Check if the given x/y coordinates are within the touchpad specified by the framebuffer layout | ||||
|  | @ -38,11 +38,9 @@ void EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) { | |||
|     if (!IsWithinTouchscreen(framebuffer_layout, framebuffer_x, framebuffer_y)) | ||||
|         return; | ||||
| 
 | ||||
|     touch_x = VideoCore::kScreenBottomWidth * | ||||
|               (framebuffer_x - framebuffer_layout.bottom_screen.left) / | ||||
|     touch_x = Core::kScreenBottomWidth * (framebuffer_x - framebuffer_layout.bottom_screen.left) / | ||||
|               (framebuffer_layout.bottom_screen.right - framebuffer_layout.bottom_screen.left); | ||||
|     touch_y = VideoCore::kScreenBottomHeight * | ||||
|               (framebuffer_y - framebuffer_layout.bottom_screen.top) / | ||||
|     touch_y = Core::kScreenBottomHeight * (framebuffer_y - framebuffer_layout.bottom_screen.top) / | ||||
|               (framebuffer_layout.bottom_screen.bottom - framebuffer_layout.bottom_screen.top); | ||||
| 
 | ||||
|     touch_pressed = true; | ||||
|  |  | |||
|  | @ -5,16 +5,20 @@ | |||
| #include <cmath> | ||||
| 
 | ||||
| #include "common/assert.h" | ||||
| #include "core/3ds.h" | ||||
| #include "core/frontend/framebuffer_layout.h" | ||||
| #include "core/settings.h" | ||||
| #include "video_core/video_core.h" | ||||
| 
 | ||||
| namespace Layout { | ||||
| 
 | ||||
| static const float TOP_SCREEN_ASPECT_RATIO = | ||||
|     static_cast<float>(VideoCore::kScreenTopHeight) / VideoCore::kScreenTopWidth; | ||||
|     static_cast<float>(Core::kScreenTopHeight) / Core::kScreenTopWidth; | ||||
| static const float BOT_SCREEN_ASPECT_RATIO = | ||||
|     static_cast<float>(VideoCore::kScreenBottomHeight) / VideoCore::kScreenBottomWidth; | ||||
|     static_cast<float>(Core::kScreenBottomHeight) / Core::kScreenBottomWidth; | ||||
| 
 | ||||
| float FramebufferLayout::GetScalingRatio() const { | ||||
|     return static_cast<float>(top_screen.GetWidth()) / Core::kScreenTopWidth; | ||||
| } | ||||
| 
 | ||||
| // Finds the largest size subrectangle contained in window area that is confined to the aspect ratio
 | ||||
| template <class T> | ||||
|  | @ -106,10 +110,10 @@ FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool swapped | |||
|     float window_aspect_ratio = static_cast<float>(height) / width; | ||||
|     float emulation_aspect_ratio = | ||||
|         swapped | ||||
|             ? VideoCore::kScreenBottomHeight * 4 / | ||||
|                   (VideoCore::kScreenBottomWidth * 4.0f + VideoCore::kScreenTopWidth) | ||||
|             : VideoCore::kScreenTopHeight * 4 / | ||||
|                   (VideoCore::kScreenTopWidth * 4.0f + VideoCore::kScreenBottomWidth); | ||||
|             ? Core::kScreenBottomHeight * 4 / | ||||
|                   (Core::kScreenBottomWidth * 4.0f + Core::kScreenTopWidth) | ||||
|             : Core::kScreenTopHeight * 4 / | ||||
|                   (Core::kScreenTopWidth * 4.0f + Core::kScreenBottomWidth); | ||||
|     float large_screen_aspect_ratio = swapped ? BOT_SCREEN_ASPECT_RATIO : TOP_SCREEN_ASPECT_RATIO; | ||||
|     float small_screen_aspect_ratio = swapped ? TOP_SCREEN_ASPECT_RATIO : BOT_SCREEN_ASPECT_RATIO; | ||||
| 
 | ||||
|  |  | |||
|  | @ -5,7 +5,9 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include "common/math_util.h" | ||||
| 
 | ||||
| namespace Layout { | ||||
| 
 | ||||
| /// Describes the layout of the window framebuffer (size and top/bottom screen positions)
 | ||||
| struct FramebufferLayout { | ||||
|     unsigned width; | ||||
|  | @ -14,6 +16,12 @@ struct FramebufferLayout { | |||
|     bool bottom_screen_enabled; | ||||
|     MathUtil::Rectangle<unsigned> top_screen; | ||||
|     MathUtil::Rectangle<unsigned> bottom_screen; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Returns the ration of pixel size of the top screen, compared to the native size of the 3DS | ||||
|      * screen. | ||||
|      */ | ||||
|     float GetScalingRatio() const; | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -52,4 +60,5 @@ FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool is_swap | |||
|  * @return Newly created FramebufferLayout object with default screen regions initialized | ||||
|  */ | ||||
| FramebufferLayout CustomFrameLayout(unsigned width, unsigned height); | ||||
| } | ||||
| 
 | ||||
| } // namespace Layout
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue