From 4d7f1fec7a1561d474592b2b05b43685a29e8426 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 9 May 2011 20:54:31 +0100 Subject: [PATCH] Take a snapshots on glReadPixels. --- glretrace.py | 14 +++++++++----- retrace.py | 9 +++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/glretrace.py b/glretrace.py index b0ef032..1674a79 100644 --- a/glretrace.py +++ b/glretrace.py @@ -125,6 +125,15 @@ class GlRetracer(Retracer): Retracer.retrace_function_body(self, function) + if function.name in ('glFlush', 'glFinish'): + print ' if (!glretrace::double_buffer) {' + print ' glretrace::frame_complete(call.no);' + print ' }' + + if function.name == 'glReadPixels': + print ' glFinish();' + print ' glretrace::frame_complete(call.no);' + def call_function(self, function): if function.name == "glViewport": print ' bool reshape_window = false;' @@ -209,11 +218,6 @@ class GlRetracer(Retracer): print r' delete [] infoLog;' print r' }' - if function.name == 'glFlush': - print ' if (!glretrace::double_buffer) {' - print ' glretrace::frame_complete(call.no);' - print ' }' - def extract_arg(self, function, arg, arg_type, lvalue, rvalue): if function.name in self.array_pointer_function_names and arg.name == 'pointer': print ' %s = static_cast<%s>(%s.blob());' % (lvalue, arg_type, rvalue) diff --git a/retrace.py b/retrace.py index c0ee82a..f931c88 100644 --- a/retrace.py +++ b/retrace.py @@ -188,6 +188,9 @@ class Retracer: print def retrace_function_body(self, function): + if not function.sideeffects: + return + success = True for arg in function.args: arg_type = ConstRemover().visit(arg.type) @@ -243,8 +246,7 @@ class Retracer: functions = filter(self.filter_function, functions) for function in functions: - if function.sideeffects: - self.retrace_function(function) + self.retrace_function(function) print 'void retrace::retrace_call(Trace::Call &call) {' print ' const char *name = call.name().c_str();' @@ -254,8 +256,7 @@ class Retracer: def handle_case(function_name): function = func_dict[function_name] - if function.sideeffects: - print ' retrace_%s(call);' % function.name + print ' retrace_%s(call);' % function.name print ' return;' string_switch('name', func_dict.keys(), handle_case) -- 2.45.2