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;'
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)
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)
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();'
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)