check for OpenGL version 2.0+
This commit is contained in:
@@ -16,6 +16,24 @@ namespace OpenRA.Renderer.Sdl2
|
|||||||
{
|
{
|
||||||
public static class ErrorHandler
|
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()
|
public static void CheckGlError()
|
||||||
{
|
{
|
||||||
var n = GL.GetError();
|
var n = GL.GetError();
|
||||||
@@ -40,6 +58,11 @@ namespace OpenRA.Renderer.Sdl2
|
|||||||
}
|
}
|
||||||
Log.Write("graphics", "Renderer: {0}", GL.GetString(StringName.Renderer));
|
Log.Write("graphics", "Renderer: {0}", GL.GetString(StringName.Renderer));
|
||||||
Log.Write("graphics", "GL Version: {0}", GL.GetString(StringName.Version));
|
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", "Shader Version: {0}", GL.GetString(StringName.ShadingLanguageVersion));
|
||||||
Log.Write("graphics", "Available extensions:");
|
Log.Write("graphics", "Available extensions:");
|
||||||
Log.Write("graphics", GL.GetString(StringName.Extensions));
|
Log.Write("graphics", GL.GetString(StringName.Extensions));
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ namespace OpenRA.Renderer.Sdl2
|
|||||||
context = SDL.SDL_GL_CreateContext(window);
|
context = SDL.SDL_GL_CreateContext(window);
|
||||||
SDL.SDL_GL_MakeCurrent(window, context);
|
SDL.SDL_GL_MakeCurrent(window, context);
|
||||||
GL.LoadAll();
|
GL.LoadAll();
|
||||||
|
ErrorHandler.CheckGlVersion();
|
||||||
ErrorHandler.CheckGlError();
|
ErrorHandler.CheckGlError();
|
||||||
|
|
||||||
if (SDL.SDL_GL_ExtensionSupported("GL_EXT_framebuffer_object") == SDL.SDL_bool.SDL_FALSE)
|
if (SDL.SDL_GL_ExtensionSupported("GL_EXT_framebuffer_object") == SDL.SDL_bool.SDL_FALSE)
|
||||||
|
|||||||
Reference in New Issue
Block a user