| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | // Copyright 2014 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-20 21:49:49 -05:00
										 |  |  | #include <memory>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-19 04:40:00 +12:00
										 |  |  | #include "Common/GL/GLInterfaceBase.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-05 10:53:32 -06:00
										 |  |  | #if defined(__APPLE__)
 | 
					
						
							| 
									
										
										
										
											2015-09-19 04:40:00 +12:00
										 |  |  | #include "Common/GL/GLInterface/AGL.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-09 09:49:45 -04:00
										 |  |  | #elif defined(_WIN32)
 | 
					
						
							| 
									
										
										
										
											2015-09-19 04:40:00 +12:00
										 |  |  | #include "Common/GL/GLInterface/WGL.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-09 09:49:45 -04:00
										 |  |  | #elif HAVE_X11
 | 
					
						
							| 
									
										
										
										
											2014-08-09 10:31:27 -04:00
										 |  |  | #if defined(USE_EGL) && USE_EGL
 | 
					
						
							| 
									
										
										
										
											2015-09-19 04:40:00 +12:00
										 |  |  | #include "Common/GL/GLInterface/EGLX11.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-09 10:31:27 -04:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2015-09-19 04:40:00 +12:00
										 |  |  | #include "Common/GL/GLInterface/GLX.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-09 10:31:27 -04:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2016-01-26 07:35:17 -06:00
										 |  |  | #elif defined(USE_EGL) && USE_EGL && defined(USE_HEADLESS)
 | 
					
						
							|  |  |  | #include "Common/GL/GLInterface/EGL.h"
 | 
					
						
							| 
									
										
										
										
											2016-02-05 10:53:32 -06:00
										 |  |  | #elif ANDROID
 | 
					
						
							|  |  |  | #include "Common/GL/GLInterface/EGLAndroid.h"
 | 
					
						
							| 
									
										
										
										
											2014-08-09 09:49:45 -04:00
										 |  |  | #else
 | 
					
						
							|  |  |  | #error Platform doesnt have a GLInterface
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-20 21:49:49 -05:00
										 |  |  | std::unique_ptr<cInterfaceBase> HostGL_CreateGLInterface() | 
					
						
							| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | #if defined(__APPLE__)
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceAGL>(); | 
					
						
							|  |  |  | #elif defined(_WIN32)
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceWGL>(); | 
					
						
							|  |  |  | #elif defined(USE_EGL) && defined(USE_HEADLESS)
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceEGL>(); | 
					
						
							|  |  |  | #elif defined(HAVE_X11) && HAVE_X11
 | 
					
						
							|  |  |  | #if defined(USE_EGL) && USE_EGL
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceEGLX11>(); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceGLX>(); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #elif ANDROID
 | 
					
						
							|  |  |  |   return std::make_unique<cInterfaceEGLAndroid>(); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  |   return nullptr; | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2014-08-01 23:21:03 -07:00
										 |  |  | } |