|  |  | @ -370,6 +370,21 @@ GLFWbool _glfwRefreshContextAttribs(const _GLFWctxconfig* ctxconfig) | 
			
		
	
		
		
			
				
					
					|  |  |  |         return GLFW_FALSE; |  |  |  |         return GLFW_FALSE; | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if (window->context.major < ctxconfig->major || | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         (window->context.major == ctxconfig->major && | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |          window->context.minor < ctxconfig->minor)) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // The desired OpenGL version is greater than the actual version
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // This only happens if the machine lacks {GLX|WGL}_ARB_create_context
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // /and/ the user has requested an OpenGL version greater than 1.0
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // For API consistency, we emulate the behavior of the
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // {GLX|WGL}_ARB_create_context extension and fail here
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         _glfwInputError(GLFW_VERSION_UNAVAILABLE, NULL); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         return GLFW_FALSE; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (window->context.major >= 3) |  |  |  |     if (window->context.major >= 3) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
		
		
			
				
					
					|  |  |  |         // OpenGL 3.0+ uses a different function for extension string retrieval
 |  |  |  |         // OpenGL 3.0+ uses a different function for extension string retrieval
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -490,28 +505,6 @@ GLFWbool _glfwRefreshContextAttribs(const _GLFWctxconfig* ctxconfig) | 
			
		
	
		
		
			
				
					
					|  |  |  |     return GLFW_TRUE; |  |  |  |     return GLFW_TRUE; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | GLFWbool _glfwIsValidContext(const _GLFWctxconfig* ctxconfig) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     _GLFWwindow* window = _glfwPlatformGetCurrentContext(); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (window->context.major < ctxconfig->major || |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         (window->context.major == ctxconfig->major && |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |          window->context.minor < ctxconfig->minor)) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // The desired OpenGL version is greater than the actual version
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // This only happens if the machine lacks {GLX|WGL}_ARB_create_context
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // /and/ the user has requested an OpenGL version greater than 1.0
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // For API consistency, we emulate the behavior of the
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         // {GLX|WGL}_ARB_create_context extension and fail here
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         _glfwInputError(GLFW_VERSION_UNAVAILABLE, NULL); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         return GLFW_FALSE; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return GLFW_TRUE; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | GLFWbool _glfwStringInExtensionString(const char* string, const char* extensions) |  |  |  | GLFWbool _glfwStringInExtensionString(const char* string, const char* extensions) | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     const char* start = extensions; |  |  |  |     const char* start = extensions; | 
			
		
	
	
		
		
			
				
					|  |  | 
 |