function.name in self.draw_array_function_names or
function.name in self.draw_elements_function_names or
function.name in self.draw_indirect_function_names or
- function.name in self.misc_draw_function_names
+ function.name in self.misc_draw_function_names or
+ function.name == 'glBegin'
)
- # Only profile if not inside a list as the queries get inserted into lsit
+ if function.name in ('glUseProgram', 'glUseProgramObjectARB'):
+ print r' glretrace::setActiveProgram((call.arg(0)).toUInt());'
+
+ # Only profile if not inside a list as the queries get inserted into list
if function.name == 'glNewList':
- print r' glretrace::insideList = true;';
+ print r' glretrace::insideList = true;'
if function.name == 'glEndList':
- print r' glretrace::insideList = false;';
+ print r' glretrace::insideList = false;'
- if profileDraw:
- print r' if (!glretrace::insideList && retrace::profileGPU) {'
- print r' glretrace::beginProfileGPU(call);'
+ if profileDraw and function.name != 'glEnd':
+ print r' if (!glretrace::insideList && !glretrace::insideGlBeginEnd && retrace::profiling) {'
+ print r' glretrace::beginProfile(call);'
print r' }'
if function.name == 'glCreateShaderProgramv':
else:
Retracer.invokeFunction(self, function)
- if profileDraw:
- print r' if (!glretrace::insideList && retrace::profileGPU) {'
- print r' glretrace::endProfileGPU(call);'
+ if function.name == "glBegin":
+ print ' glretrace::insideGlBeginEnd = true;'
+
+ if profileDraw or function.name == 'glEnd':
+ print r' if (!glretrace::insideList && !glretrace::insideGlBeginEnd && retrace::profiling) {'
+ print r' glretrace::endProfile(call);'
print r' }'
# Error checking
- if function.name == "glBegin":
- print ' glretrace::insideGlBeginEnd = true;'
- elif function.name.startswith('gl'):
+ if function.name.startswith('gl'):
# glGetError is not allowed inside glBegin/glEnd
print ' if (retrace::debug && !glretrace::insideGlBeginEnd) {'
print ' glretrace::checkGlError(call);'