| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | // Copyright 2015 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2+
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <memory>
 | 
					
						
							|  |  |  | #include <string>
 | 
					
						
							|  |  |  | #include <vector>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							| 
									
										
										
										
											2017-09-29 00:31:08 -05:00
										 |  |  | #include "VideoCommon/VideoCommon.h"
 | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  | class AbstractTexture; | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:22 +10:00
										 |  |  | struct WindowSystemInfo; | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | class SWOGLWindow | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:22 +10:00
										 |  |  |   static void Init(const WindowSystemInfo& wsi); | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   static void Shutdown(); | 
					
						
							| 
									
										
										
										
											2017-05-29 17:02:09 -05:00
										 |  |  |   void Prepare(); | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // Will be printed on the *next* image
 | 
					
						
							|  |  |  |   void PrintText(const std::string& text, int x, int y, u32 color); | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // Image to show, will be swapped immediately
 | 
					
						
							| 
									
										
										
										
											2017-09-29 00:31:08 -05:00
										 |  |  |   void ShowImage(AbstractTexture* image, const EFBRectangle& xfb_region); | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   static std::unique_ptr<SWOGLWindow> s_instance; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   SWOGLWindow() {} | 
					
						
							|  |  |  |   struct TextData | 
					
						
							|  |  |  |   { | 
					
						
							|  |  |  |     std::string text; | 
					
						
							|  |  |  |     int x, y; | 
					
						
							|  |  |  |     u32 color; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  |   std::vector<TextData> m_text; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   bool m_init{false}; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-23 21:46:23 -05:00
										 |  |  |   u32 m_image_program, m_image_texture, m_image_vao; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | }; |