| 
									
										
										
										
											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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:26 +10:00
										 |  |  | class GLContext; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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:26 +10:00
										 |  |  |   ~SWOGLWindow(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   GLContext* GetContext() const { return m_gl_context.get(); } | 
					
						
							|  |  |  |   bool IsHeadless() const; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // Image to show, will be swapped immediately
 | 
					
						
							| 
									
										
										
										
											2019-04-16 00:47:46 +10:00
										 |  |  |   void ShowImage(const AbstractTexture* image, const MathUtil::Rectangle<int>& xfb_region); | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:26 +10:00
										 |  |  |   static std::unique_ptr<SWOGLWindow> Create(const WindowSystemInfo& wsi); | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:26 +10:00
										 |  |  |   SWOGLWindow(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   bool Initialize(const WindowSystemInfo& wsi); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   u32 m_image_program = 0; | 
					
						
							|  |  |  |   u32 m_image_texture = 0; | 
					
						
							|  |  |  |   u32 m_image_vao = 0; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-03 23:03:26 +10:00
										 |  |  |   std::unique_ptr<GLContext> m_gl_context; | 
					
						
							| 
									
										
										
										
											2015-09-26 10:07:48 +02:00
										 |  |  | }; |