check for OpenGL version 2.0+
This commit is contained in:
@@ -16,6 +16,24 @@ namespace OpenRA.Renderer.Sdl2
|
||||
{
|
||||
public static class ErrorHandler
|
||||
{
|
||||
static Version OpenGLversion;
|
||||
|
||||
public static void CheckGlVersion()
|
||||
{
|
||||
var version = GL.GetString(StringName.Version).Split(' ')[0].Split('.');
|
||||
int major;
|
||||
int.TryParse(version[0], out major);
|
||||
int minor;
|
||||
int.TryParse(version[1], out minor);
|
||||
Console.WriteLine("Detected OpenGL version: {0}.{1}".F(major, minor));
|
||||
OpenGLversion = new Version(major, minor);
|
||||
if (major < 2)
|
||||
{
|
||||
WriteGraphicsLog("OpenRA requires OpenGL version 2.0 or greater.");
|
||||
throw new InvalidProgramException("OpenGL Version Error: See graphics.log for details.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void CheckGlError()
|
||||
{
|
||||
var n = GL.GetError();
|
||||
@@ -40,6 +58,11 @@ namespace OpenRA.Renderer.Sdl2
|
||||
}
|
||||
Log.Write("graphics", "Renderer: {0}", GL.GetString(StringName.Renderer));
|
||||
Log.Write("graphics", "GL Version: {0}", GL.GetString(StringName.Version));
|
||||
if (OpenGLversion.Major < 2)
|
||||
{
|
||||
Log.Write("graphics", "Note: OpenRA requires OpenGL version 2.0+.\n"
|
||||
+"Please update your graphics card drivers to the latest version.\n");
|
||||
}
|
||||
Log.Write("graphics", "Shader Version: {0}", GL.GetString(StringName.ShadingLanguageVersion));
|
||||
Log.Write("graphics", "Available extensions:");
|
||||
Log.Write("graphics", GL.GetString(StringName.Extensions));
|
||||
|
||||
@@ -79,6 +79,7 @@ namespace OpenRA.Renderer.Sdl2
|
||||
context = SDL.SDL_GL_CreateContext(window);
|
||||
SDL.SDL_GL_MakeCurrent(window, context);
|
||||
GL.LoadAll();
|
||||
ErrorHandler.CheckGlVersion();
|
||||
ErrorHandler.CheckGlError();
|
||||
|
||||
if (SDL.SDL_GL_ExtensionSupported("GL_EXT_framebuffer_object") == SDL.SDL_bool.SDL_FALSE)
|
||||
|
||||
Reference in New Issue
Block a user