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;'
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":
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':
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)