]> git.cworth.org Git - apitrace/blobdiff - retrace/glretrace_ws.cpp
Don't show pbuffers in windows.
[apitrace] / retrace / glretrace_ws.cpp
index 66ef10534cdc00d2dad79309ac9dd4688387d2d7..8dff68e823ac12f2aa204eb9ca74097c9de81a15 100644 (file)
@@ -68,9 +68,9 @@ getDefaultProfile(void)
 }
 
 
-glws::Drawable *
-createDrawable(glws::Profile profile) {
-    glws::Drawable *draw = glws::createDrawable(getVisual(profile));
+static glws::Drawable *
+createDrawableHelper(glws::Profile profile, int width = 32, int height = 32, bool pbuffer = false) {
+    glws::Drawable *draw = glws::createDrawable(getVisual(profile), width, height, pbuffer);
     if (!draw) {
         std::cerr << "error: failed to create OpenGL drawable\n";
         exit(1);
@@ -81,9 +81,21 @@ createDrawable(glws::Profile profile) {
 }
 
 
+glws::Drawable *
+createDrawable(glws::Profile profile) {
+    return createDrawableHelper(profile);
+}
+
+
 glws::Drawable *
 createDrawable(void) {
-    return glretrace::createDrawable(getDefaultProfile());
+    return createDrawable(getDefaultProfile());
+}
+
+
+glws::Drawable *
+createPbuffer(int width, int height) {
+    return createDrawableHelper(getDefaultProfile(), width, height, true);
 }
 
 
@@ -192,6 +204,10 @@ updateDrawable(int width, int height) {
     glws::Drawable *currentDrawable = currentContext->drawable;
     assert(currentDrawable);
 
+    if (currentDrawable->pbuffer) {
+        return;
+    }
+
     if (currentDrawable->visible &&
         width  <= currentDrawable->width &&
         height <= currentDrawable->height) {