]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/glcontext.cpp
Add support for using the latest available OpenGL version
[libs/gui.git] / source / graphics / glcontext.cpp
index 0274c9e216bdd7065084b73f74cf69a6ce2077e0..ec073cb79c2c9928fc6dece00604807f2aa540dc 100644 (file)
@@ -15,16 +15,26 @@ GLOptions::GLOptions():
        multisample(0),
        forward_compatible(false),
        core_profile(false),
-       gl_version_major(0),
-       gl_version_minor(0)
+       gl_version_major(DEFAULT_VERSION),
+       gl_version_minor(DEFAULT_VERSION)
 { }
 
 
 unsupported_gl_mode::unsupported_gl_mode(const GLOptions &opts):
-       runtime_error(format("{ .alpha=%s, .stencil=%s, .doublebuffer=%s, .multisample=%d, .forward_compatible=%s, .core_profile=%s, .gl_version=%d.%d }",
-               opts.alpha, opts.stencil, opts.doublebuffer, opts.multisample, opts.forward_compatible, opts.core_profile, opts.gl_version_major, opts.gl_version_minor))
+       runtime_error(format("{ .alpha=%s, .stencil=%s, .doublebuffer=%s, .multisample=%d, .forward_compatible=%s, .core_profile=%s, .gl_version=%s }",
+               opts.alpha, opts.stencil, opts.doublebuffer, opts.multisample, opts.forward_compatible, opts.core_profile, format_version(opts)))
 { }
 
+string unsupported_gl_mode::format_version(const GLOptions &opts)
+{
+       if(opts.gl_version_major==GLOptions::LATEST_VERSION)
+               return "LATEST";
+       else if(opts.gl_version_major==GLOptions::DEFAULT_VERSION)
+               return "DEFAULT";
+       else
+               return format("%d.%d", opts.gl_version_major, opts.gl_version_minor);
+}
+
 
 
 GLContext::GLContext(Window &wnd, const GLOptions &opts):