]> git.cworth.org Git - apitrace/blobdiff - retrace/glretrace_ws.cpp
Determine core32 from the traces.
[apitrace] / retrace / glretrace_ws.cpp
index bead54ee10ea0566a471604e2a37c423f1eeb181..97762eda10edb41a77091b9a3fc81dd8458cf6f8 100644 (file)
@@ -132,16 +132,14 @@ makeCurrent(trace::Call &call, glws::Drawable *drawable, Context *context)
         return false;
     }
 
-    if (context) {
+    if (drawable && context) {
+        currentDrawable = drawable;
+        currentContext = context;
+        
         if (!context->used) {
             initContext();
             context->used = true;
         }
-    }
-
-    if (drawable && context) {
-        currentDrawable = drawable;
-        currentContext = context;
     } else {
         currentDrawable = NULL;
         currentContext = NULL;
@@ -190,4 +188,26 @@ updateDrawable(int width, int height) {
 }
 
 
+int
+parseAttrib(const trace::Value *attribs, int param, int default_ = 0) {
+    const trace::Array *attribs_ = dynamic_cast<const trace::Array *>(attribs);
+
+    if (attribs_) {
+        for (size_t i = 0; i + 1 < attribs_->values.size(); i += 2) {
+            int param_i = attribs_->values[i]->toSInt();
+            if (param_i == 0) {
+                break;
+            }
+
+            if (param_i == param) {
+                int value = attribs_->values[i + 1]->toSInt();
+                return value;
+            }
+        }
+    }
+
+    return default_;
+}
+
+
 } /* namespace glretrace */