]> git.cworth.org Git - apitrace/blobdiff - glws.hpp
Minor typo correction of code comment
[apitrace] / glws.hpp
index bfd34480613e4713ddb24a77e9a7ee85f38a3715..47fdc7f40729f24e4a7905a2a914b3877ffbe8e3 100644 (file)
--- a/glws.hpp
+++ b/glws.hpp
 #define _GLWS_HPP_
 
 
+#include <vector>
+
+
 namespace glws {
 
 
+extern bool debug;
+
+
+bool
+checkExtension(const char *extName, const char *extString);
+
+
+template< class T >
+class Attributes {
+protected:
+    std::vector<T> attribs;
+
+public:
+    void add(T param) {
+        attribs.push_back(param);
+    }
+
+    void add(T pname, T pvalue) {
+        add(pname);
+        add(pvalue);
+    }
+
+    void end(void) {
+        add(0);
+    }
+
+    operator T * (void) {
+        return &attribs[0];
+    }
+
+    operator const T * (void) const {
+        return &attribs[0];
+    }
+};
+
+
 class Visual
 {
 public:
@@ -53,11 +92,13 @@ public:
     const Visual *visual;
     int width;
     int height;
+    bool visible;
 
     Drawable(const Visual *vis, int w, int h) :
         visual(vis),
         width(w),
-        height(h)
+        height(h),
+        visible(false)
     {}
 
     virtual ~Drawable() {}
@@ -68,6 +109,11 @@ public:
         height = h;
     }
 
+    virtual void
+    show(void) {
+        visible = true;
+    }
+
     virtual void swapBuffers(void) = 0;
 };
 
@@ -85,29 +131,26 @@ public:
 };
 
 
-class WindowSystem
-{
-public:
-    virtual ~WindowSystem() {}
+void
+init(void);
 
-    virtual Visual *
-    createVisual(bool doubleBuffer = false) = 0;
-    
-    virtual Drawable *
-    createDrawable(const Visual *visual, int width = 256, int height = 256) = 0;
+void
+cleanup(void);
 
-    virtual Context *
-    createContext(const Visual *visual, Context *shareContext = NULL) = 0;
-    
-    virtual bool
-    makeCurrent(Drawable *drawable, Context *context) = 0;
+Visual *
+createVisual(bool doubleBuffer = false);
 
-    virtual bool
-    processEvents(void) = 0;
-};
+Drawable *
+createDrawable(const Visual *visual, int width = 32, int height = 32);
+
+Context *
+createContext(const Visual *visual, Context *shareContext = 0);
 
+bool
+makeCurrent(Drawable *drawable, Context *context);
 
-WindowSystem *createNativeWindowSystem(void);
+bool
+processEvents(void);
 
 
 } /* namespace glws */