]> git.cworth.org Git - apitrace/blobdiff - glretrace.py
Don't clear the trace when the file selection has been cancelled.
[apitrace] / glretrace.py
index d14b54847275bf04751cb6a810a1ec0bddd39b3a..b3c893430fbc6d60909d635f4d995f2020d137b6 100644 (file)
@@ -103,7 +103,7 @@ class GlRetracer(Retracer):
         is_draw_elements = function.name in self.draw_elements_function_names
 
         if is_array_pointer or is_draw_array or is_draw_elements:
-            print '    if (Trace::Parser::version < 1) {'
+            print '    if (glretrace::parser.version < 1) {'
 
             if is_array_pointer or is_draw_array:
                 print '        GLint __array_buffer = 0;'
@@ -125,13 +125,19 @@ class GlRetracer(Retracer):
 
     def call_function(self, function):
         if function.name == "glViewport":
+            print '    bool reshape_window = false;'
             print '    if (x + width > glretrace::window_width) {'
             print '        glretrace::window_width = x + width;'
-            print '        glretrace::reshape_window = true;'
+            print '        reshape_window = true;'
             print '    }'
             print '    if (y + height > glretrace::window_height) {'
             print '        glretrace::window_height = y + height;'
-            print '        glretrace::reshape_window = true;'
+            print '        reshape_window = true;'
+            print '    }'
+            print '    if (reshape_window) {'
+            print '        // XXX: does not always work'
+            print '        glretrace::drawable->resize(glretrace::window_width, glretrace::window_height);'
+            print '        reshape_window = false;'
             print '    }'
 
         if function.name == "glEnd":
@@ -143,7 +149,7 @@ class GlRetracer(Retracer):
             print '    glretrace::insideGlBeginEnd = true;'
         else:
             # glGetError is not allowed inside glBegin/glEnd
-            print '    glretrace::checkGlError();'
+            print '    glretrace::checkGlError(call.no);'
 
     def extract_arg(self, function, arg, arg_type, lvalue, rvalue):
         if function.name in self.array_pointer_function_names and arg.name == 'pointer':
@@ -163,11 +169,14 @@ class GlRetracer(Retracer):
 
 if __name__ == '__main__':
     print r'''
+#include <string.h>
+
 #include "glproc.hpp"
 #include "glretrace.hpp"
 
 
 '''
     api = glapi.glapi
+    api.add_function(glapi.memcpy)
     retracer = GlRetracer()
     retracer.retrace_api(glapi.glapi)