mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #3632 from N00byKing/3dtv_botenable
Add Support for Stereoscopic 3D
This commit is contained in:
		
						commit
						574824a26c
					
				
					 10 changed files with 115 additions and 19 deletions
				
			
		|  | @ -60,9 +60,17 @@ EmuWindow::~EmuWindow() { | |||
|  */ | ||||
| static bool IsWithinTouchscreen(const Layout::FramebufferLayout& layout, unsigned framebuffer_x, | ||||
|                                 unsigned framebuffer_y) { | ||||
|     return ( | ||||
|         framebuffer_y >= layout.bottom_screen.top && framebuffer_y < layout.bottom_screen.bottom && | ||||
|         framebuffer_x >= layout.bottom_screen.left && framebuffer_x < layout.bottom_screen.right); | ||||
|     if (Settings::values.toggle_3d) { | ||||
|         return (framebuffer_y >= layout.bottom_screen.top && | ||||
|                 framebuffer_y < layout.bottom_screen.bottom && | ||||
|                 framebuffer_x >= layout.bottom_screen.left / 2 && | ||||
|                 framebuffer_x < layout.bottom_screen.right / 2); | ||||
|     } else { | ||||
|         return (framebuffer_y >= layout.bottom_screen.top && | ||||
|                 framebuffer_y < layout.bottom_screen.bottom && | ||||
|                 framebuffer_x >= layout.bottom_screen.left && | ||||
|                 framebuffer_x < layout.bottom_screen.right); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| std::tuple<unsigned, unsigned> EmuWindow::ClipToTouchScreen(unsigned new_x, unsigned new_y) { | ||||
|  | @ -80,9 +88,16 @@ void EmuWindow::TouchPressed(unsigned framebuffer_x, unsigned framebuffer_y) { | |||
|         return; | ||||
| 
 | ||||
|     std::lock_guard<std::mutex> guard(touch_state->mutex); | ||||
|     touch_state->touch_x = | ||||
|         static_cast<float>(framebuffer_x - framebuffer_layout.bottom_screen.left) / | ||||
|         (framebuffer_layout.bottom_screen.right - framebuffer_layout.bottom_screen.left); | ||||
|     if (Settings::values.toggle_3d) { | ||||
|         touch_state->touch_x = | ||||
|             static_cast<float>(framebuffer_x - framebuffer_layout.bottom_screen.left / 2) / | ||||
|             (framebuffer_layout.bottom_screen.right / 2 - | ||||
|              framebuffer_layout.bottom_screen.left / 2); | ||||
|     } else { | ||||
|         touch_state->touch_x = | ||||
|             static_cast<float>(framebuffer_x - framebuffer_layout.bottom_screen.left) / | ||||
|             (framebuffer_layout.bottom_screen.right - framebuffer_layout.bottom_screen.left); | ||||
|     } | ||||
|     touch_state->touch_y = | ||||
|         static_cast<float>(framebuffer_y - framebuffer_layout.bottom_screen.top) / | ||||
|         (framebuffer_layout.bottom_screen.bottom - framebuffer_layout.bottom_screen.top); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue