mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	sdl: add check for GL extension support
This commit is contained in:
		
							parent
							
								
									0641950f9a
								
							
						
					
					
						commit
						fbef849c04
					
				| @ -78,6 +78,24 @@ void EmuWindow_SDL2::Fullscreen() { | |||||||
|     SDL_MaximizeWindow(render_window); |     SDL_MaximizeWindow(render_window); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | bool EmuWindow_SDL2::SupportsRequiredGLExtensions() { | ||||||
|  |     std::vector<std::string> unsupported_ext; | ||||||
|  | 
 | ||||||
|  |     if (!GLAD_GL_ARB_program_interface_query) | ||||||
|  |         unsupported_ext.push_back("ARB_program_interface_query"); | ||||||
|  |     if (!GLAD_GL_ARB_separate_shader_objects) | ||||||
|  |         unsupported_ext.push_back("ARB_separate_shader_objects"); | ||||||
|  |     if (!GLAD_GL_ARB_shader_storage_buffer_object) | ||||||
|  |         unsupported_ext.push_back("ARB_shader_storage_buffer_object"); | ||||||
|  |     if (!GLAD_GL_ARB_vertex_attrib_binding) | ||||||
|  |         unsupported_ext.push_back("ARB_vertex_attrib_binding"); | ||||||
|  | 
 | ||||||
|  |     for (const std::string& ext : unsupported_ext) | ||||||
|  |         NGLOG_CRITICAL(Frontend, "Unsupported GL extension: {}", ext); | ||||||
|  | 
 | ||||||
|  |     return unsupported_ext.empty(); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| EmuWindow_SDL2::EmuWindow_SDL2(bool fullscreen) { | EmuWindow_SDL2::EmuWindow_SDL2(bool fullscreen) { | ||||||
|     InputCommon::Init(); |     InputCommon::Init(); | ||||||
| 
 | 
 | ||||||
| @ -128,6 +146,11 @@ EmuWindow_SDL2::EmuWindow_SDL2(bool fullscreen) { | |||||||
|         exit(1); |         exit(1); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     if (!SupportsRequiredGLExtensions()) { | ||||||
|  |         NGLOG_CRITICAL(Frontend, "GPU does not support all required OpenGL extensions! Exiting..."); | ||||||
|  |         exit(1); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     OnResize(); |     OnResize(); | ||||||
|     OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size); |     OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size); | ||||||
|     SDL_PumpEvents(); |     SDL_PumpEvents(); | ||||||
|  | |||||||
| @ -46,6 +46,9 @@ private: | |||||||
|     /// Called when user passes the fullscreen parameter flag
 |     /// Called when user passes the fullscreen parameter flag
 | ||||||
|     void Fullscreen(); |     void Fullscreen(); | ||||||
| 
 | 
 | ||||||
|  |     /// Whether the GPU and driver supports the OpenGL extension required
 | ||||||
|  |     bool SupportsRequiredGLExtensions(); | ||||||
|  | 
 | ||||||
|     /// Called when a configuration change affects the minimal size of the window
 |     /// Called when a configuration change affects the minimal size of the window
 | ||||||
|     void OnMinimalClientAreaChangeRequest( |     void OnMinimalClientAreaChangeRequest( | ||||||
|         const std::pair<unsigned, unsigned>& minimal_size) override; |         const std::pair<unsigned, unsigned>& minimal_size) override; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 BreadFish64
						BreadFish64