#define MSP_GRAPHICS_GLCONTEXT_H_
#include <stdexcept>
+#include "mspgui_api.h"
namespace Msp {
namespace Graphics {
struct GLOptions
{
- enum
- {
- DEFAULT_VERSION = 0,
- LATEST_VERSION = 0xFFFFFFFF
- };
-
- bool alpha;
- bool stencil;
- bool doublebuffer;
- unsigned multisample;
- bool forward_compatible;
- bool core_profile;
- unsigned gl_version_major;
- unsigned gl_version_minor;
-
- GLOptions();
+ static constexpr unsigned DEFAULT_VERSION = 0;
+ static constexpr unsigned LATEST_VERSION = 0xFFFFFFFF;
+
+ 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;
};
-class unsupported_gl_mode: public std::runtime_error
+class MSPGUI_API unsupported_gl_mode: public std::runtime_error
{
public:
unsupported_gl_mode(const GLOptions &);
};
-class GLContext
+class MSPGUI_API GLContext
{
private:
struct Private;
Display &display;
Window &window;
- Private *priv;
+ Private *priv = nullptr;
public:
GLContext(Window &wnd, const GLOptions &opts = GLOptions());