]> git.cworth.org Git - apitrace/blobdiff - retrace/glretrace.hpp
Don't destroy current EGL context.
[apitrace] / retrace / glretrace.hpp
index 568049ecb710620eba4e24f2846d56ea7c25cbab..6ee241d015e7abb709003f85014606244885800e 100644 (file)
@@ -35,6 +35,7 @@ namespace glretrace {
 struct Context {
     Context(glws::Context* context)
         : wsContext(context),
+          drawable(0),
           activeProgram(0),
           used(false)
     {
@@ -46,23 +47,40 @@ struct Context {
     }
 
     glws::Context* wsContext;
+
+    // Bound drawable
+    glws::Drawable *drawable;
+
     GLuint activeProgram;
     bool used;
+    
+    // Context must be current
+    inline bool
+    hasExtension(const char *extension) const {
+        return wsContext->hasExtension(extension);
+    }
 };
 
 extern bool insideList;
 extern bool insideGlBeginEnd;
 
 
-extern glws::Drawable *currentDrawable;
 extern Context *currentContext;
 
+
+int
+parseAttrib(const trace::Value *attribs, int param, int default_);
+
+
 glws::Drawable *
 createDrawable(glws::Profile profile);
 
 glws::Drawable *
 createDrawable(void);
 
+glws::Drawable *
+createPbuffer(int width, int height);
+
 Context *
 createContext(Context *shareContext, glws::Profile profile);
 
@@ -82,7 +100,6 @@ extern const retrace::Entry glx_callbacks[];
 extern const retrace::Entry wgl_callbacks[];
 extern const retrace::Entry egl_callbacks[];
 
-void frame_start();
 void frame_complete(trace::Call &call);
 void initContext();