mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-30 18:24:15 +01:00 
			
		
		
		
	added emu_window.h to define interface to drawing to a window
This commit is contained in:
		
							parent
							
								
									d953d3d017
								
							
						
					
					
						commit
						4ca6d6452e
					
				| @ -154,6 +154,7 @@ | ||||
|     <ClInclude Include="src\console_listener.h" /> | ||||
|     <ClInclude Include="src\cpu_detect.h" /> | ||||
|     <ClInclude Include="src\debug_interface.h" /> | ||||
|     <ClInclude Include="src\emu_window.h" /> | ||||
|     <ClInclude Include="src\extended_trace.h" /> | ||||
|     <ClInclude Include="src\fifo_queue.h" /> | ||||
|     <ClInclude Include="src\file_search.h" /> | ||||
|  | ||||
| @ -52,6 +52,7 @@ | ||||
|     <ClInclude Include="src\timer.h" /> | ||||
|     <ClInclude Include="src\atomic_gcc.h" /> | ||||
|     <ClInclude Include="src\atomic_win32.h" /> | ||||
|     <ClInclude Include="src\emu_window.h" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="CMakeLists.txt" /> | ||||
|  | ||||
							
								
								
									
										106
									
								
								src/common/src/emu_window.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								src/common/src/emu_window.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,106 @@ | ||||
| /**
 | ||||
|  * Copyright (C) 2005-2012 Gekko Emulator | ||||
|  * | ||||
|  * @file    emuwindow.h | ||||
|  * @author  Neobrain | ||||
|  * @date    2012-06-01 | ||||
|  * @brief   Interface for implementing an emulator window manager | ||||
|  * | ||||
|  * @section LICENSE | ||||
|  * This program is free software; you can redistribute it and/or | ||||
|  * modify it under the terms of the GNU General Public License as | ||||
|  * published by the Free Software Foundation; either version 2 of | ||||
|  * the License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, but | ||||
|  * WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||||
|  * General Public License for more details at | ||||
|  * http://www.gnu.org/copyleft/gpl.html
 | ||||
|  * | ||||
|  * Official project repository can be found at: | ||||
|  * http://code.google.com/p/gekko-gc-emu/
 | ||||
|  */ | ||||
| 
 | ||||
| #ifndef CORE_EMUWINDOW_H_ | ||||
| #define CORE_EMUWINDOW_H_ | ||||
| 
 | ||||
| #include "common.h" | ||||
| #include "config.h" | ||||
| 
 | ||||
| namespace input_common | ||||
| { | ||||
| class KeyboardInput; | ||||
| } | ||||
| 
 | ||||
| // Abstraction class used to provide an interface between emulation code and the frontend (e.g. SDL, 
 | ||||
| //  QGLWidget, GLFW, etc...)
 | ||||
| class EmuWindow | ||||
| { | ||||
| 
 | ||||
| public: | ||||
|     /// Data structure to store an emuwindow configuration
 | ||||
|     struct Config{ | ||||
|         bool    fullscreen; | ||||
|         int     res_width; | ||||
|         int     res_height; | ||||
|     }; | ||||
| 
 | ||||
|     /// Swap buffers to display the next frame
 | ||||
|     virtual void SwapBuffers() = 0; | ||||
| 
 | ||||
| 	/// Polls window events
 | ||||
| 	virtual void PollEvents() = 0; | ||||
| 
 | ||||
|     /// Makes the graphics context current for the caller thread
 | ||||
|     virtual void MakeCurrent() = 0; | ||||
| 
 | ||||
|     /// Releases (dunno if this is the "right" word) the GLFW context from the caller thread
 | ||||
|     virtual void DoneCurrent() = 0; | ||||
| 
 | ||||
|     /**
 | ||||
|      * @brief Called from KeyboardInput constructor to notify EmuWindow about its presence | ||||
|      * @param controller_interface Pointer to a running KeyboardInput interface | ||||
|      */ | ||||
|     void set_controller_interface(input_common::KeyboardInput* controller_interface) {  | ||||
|         controller_interface_ = controller_interface; | ||||
|     } | ||||
|     input_common::KeyboardInput* controller_interface() { return controller_interface_; } | ||||
| 
 | ||||
|     Config config() { return config_; } | ||||
|     void set_config(Config val) { config_ = val; } | ||||
|      | ||||
|     int client_area_width() { return client_area_width_; } | ||||
|     void set_client_area_width(int val) { client_area_width_ = val; } | ||||
| 
 | ||||
|     int client_area_height() { return client_area_height_; } | ||||
|     void set_client_area_height(int val) { client_area_height_ = val; } | ||||
| 
 | ||||
|     std::string window_title() { return window_title_; } | ||||
|     void set_window_title(std::string val) { window_title_ = val; } | ||||
| 
 | ||||
| protected: | ||||
|     EmuWindow() : controller_interface_(NULL), client_area_width_(640), client_area_height_(480) { | ||||
|         char window_title[255]; | ||||
|         sprintf(window_title, "gekko [%s|%s] - %s",  | ||||
|             common::g_config->CPUCoreTypeToString(common::g_config->powerpc_core()).c_str(),  | ||||
|             common::g_config->RenderTypeToString(common::g_config->current_renderer()).c_str(),  | ||||
|             __DATE__); | ||||
|         window_title_ = window_title; | ||||
|     } | ||||
|     virtual ~EmuWindow() {} | ||||
| 
 | ||||
|     std::string window_title_;          ///< Current window title, should be used by window impl.
 | ||||
| 
 | ||||
|     int client_area_width_;             ///< Current client width, should be set by window impl.
 | ||||
|     int client_area_height_;            ///< Current client height, should be set by window impl.
 | ||||
| 
 | ||||
| private: | ||||
|     Config config_;         ///< Internal configuration
 | ||||
| 
 | ||||
|     input_common::KeyboardInput* controller_interface_; | ||||
| 
 | ||||
|     DISALLOW_COPY_AND_ASSIGN(EmuWindow); | ||||
| }; | ||||
| 
 | ||||
| #endif // CORE_EMUWINDOW_H_
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user