X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fglws.hpp;h=c76e19321706a5c8a02fca80dfcce7774ad2ce6f;hb=4a5b1f5cf04a72ba8c148977d0539fc1fb1e1004;hp=9afebf4b878a4b639863bb08d8bf12927fbd0495;hpb=9d27a54b0381610c30964880a5fdd4c27bb6e732;p=apitrace diff --git a/retrace/glws.hpp b/retrace/glws.hpp index 9afebf4..c76e193 100644 --- a/retrace/glws.hpp +++ b/retrace/glws.hpp @@ -31,7 +31,11 @@ #define _GLWS_HPP_ +#include + #include +#include +#include namespace glws { @@ -46,9 +50,6 @@ enum Profile { }; -extern bool debug; - - bool checkExtension(const char *extName, const char *extString); @@ -101,12 +102,14 @@ public: const Visual *visual; int width; int height; + bool pbuffer; bool visible; - Drawable(const Visual *vis, int w, int h) : + Drawable(const Visual *vis, int w, int h, bool pb) : visual(vis), width(w), height(h), + pbuffer(pb), visible(false) {} @@ -120,6 +123,7 @@ public: virtual void show(void) { + assert(!pbuffer); visible = true; } @@ -133,12 +137,18 @@ public: const Visual *visual; Profile profile; + std::set extensions; + Context(const Visual *vis, Profile prof) : visual(vis), profile(prof) {} virtual ~Context() {} + + // Context must be current + bool + hasExtension(const char *extension); }; @@ -152,10 +162,10 @@ Visual * createVisual(bool doubleBuffer = false, Profile profile = PROFILE_COMPAT); Drawable * -createDrawable(const Visual *visual, int width = 32, int height = 32); +createDrawable(const Visual *visual, int width, int height, bool pbuffer = false); Context * -createContext(const Visual *visual, Context *shareContext = 0, Profile profile = PROFILE_COMPAT); +createContext(const Visual *visual, Context *shareContext = 0, Profile profile = PROFILE_COMPAT, bool debug = false); bool makeCurrent(Drawable *drawable, Context *context);