X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fgraphics%2Fglcontext.h;h=ef374c1038efc6da274d5b62b370656a4b3fe2f7;hb=3c5bbaeadb33d288c0f9e487b52904b7ed7e4319;hp=8cf75c82948fc657869e1d3685dbfcfeb4133233;hpb=213ca43656411a06bbf1c0d18e4ebacaf545eb34;p=libs%2Fgui.git diff --git a/source/graphics/glcontext.h b/source/graphics/glcontext.h index 8cf75c8..ef374c1 100644 --- a/source/graphics/glcontext.h +++ b/source/graphics/glcontext.h @@ -11,12 +11,17 @@ class Window; struct GLOptions { - bool alpha; - bool stencil; - bool doublebuffer; - unsigned multisample; + static constexpr unsigned DEFAULT_VERSION = 0; + static constexpr unsigned LATEST_VERSION = 0xFFFFFFFF; - GLOptions(); + bool alpha = false; + bool stencil = false; + bool doublebuffer = true; + unsigned multisample = 0; + bool forward_compatible = false; + bool core_profile = false; + unsigned gl_version_major = DEFAULT_VERSION; + unsigned gl_version_minor = DEFAULT_VERSION; }; @@ -24,7 +29,9 @@ class unsupported_gl_mode: public std::runtime_error { public: unsupported_gl_mode(const GLOptions &); - virtual ~unsupported_gl_mode() throw () { } + +private: + static std::string format_version(const GLOptions &); }; @@ -35,10 +42,11 @@ private: Display &display; Window &window; - Private *priv; + Private *priv = nullptr; public: GLContext(Window &wnd, const GLOptions &opts = GLOptions()); + GLContext(Window &wnd, unsigned, unsigned); private: void platform_init(const GLOptions &); public: