alpha(false),
stencil(false),
doublebuffer(true),
- multisample(0)
+ multisample(0),
+ forward_compatible(false),
+ core_profile(false),
+ 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 }",
- opts.alpha, opts.stencil, opts.doublebuffer, opts.multisample))
+ 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):