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); | ||||
| } | ||||
| 
 | ||||
| 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) { | ||||
|     InputCommon::Init(); | ||||
| 
 | ||||
| @ -128,6 +146,11 @@ EmuWindow_SDL2::EmuWindow_SDL2(bool fullscreen) { | ||||
|         exit(1); | ||||
|     } | ||||
| 
 | ||||
|     if (!SupportsRequiredGLExtensions()) { | ||||
|         NGLOG_CRITICAL(Frontend, "GPU does not support all required OpenGL extensions! Exiting..."); | ||||
|         exit(1); | ||||
|     } | ||||
| 
 | ||||
|     OnResize(); | ||||
|     OnMinimalClientAreaChangeRequest(GetActiveConfig().min_client_area_size); | ||||
|     SDL_PumpEvents(); | ||||
|  | ||||
| @ -46,6 +46,9 @@ private: | ||||
|     /// Called when user passes the fullscreen parameter flag
 | ||||
|     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
 | ||||
|     void OnMinimalClientAreaChangeRequest( | ||||
|         const std::pair<unsigned, unsigned>& minimal_size) override; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 BreadFish64
						BreadFish64