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;
};
{
public:
unsupported_gl_mode(const GLOptions &);
- virtual ~unsupported_gl_mode() throw () { }
+
+private:
+ static std::string format_version(const GLOptions &);
};
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);