]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/glcontext.h
Use nullptr in place of 0 or NULL
[libs/gui.git] / source / graphics / glcontext.h
index a2480909416e29d9e1aa96c49ae410ad66d8382b..ef374c1038efc6da274d5b62b370656a4b3fe2f7 100644 (file)
@@ -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,15 +42,18 @@ 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:
        ~GLContext();
 
+       void set_swap_interval(unsigned);
+
        void swap_buffers();
 private:
        void window_resized(unsigned, unsigned);