From: José Fonseca Date: Fri, 5 Oct 2012 11:07:28 +0000 (+0100) Subject: Fix retracing when glUseProgram & glUseProgramObjectARB are used inside call lists. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=07a7ce801ab5bd986e4e580e8370ff705970f13a;p=apitrace Fix retracing when glUseProgram & glUseProgramObjectARB are used inside call lists. --- diff --git a/retrace/glretrace.py b/retrace/glretrace.py index 6c73e69..f2cc372 100644 --- a/retrace/glretrace.py +++ b/retrace/glretrace.py @@ -477,14 +477,19 @@ class GlRetracer(Retracer): and 'program' not in function.argNames(): # Determine the active program for uniforms swizzling print ' GLint program = -1;' - print ' GLint pipeline = 0;' - print ' if (_pipelineHasBeenBound) {' - print ' glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING, &pipeline);' - print ' }' - print ' if (pipeline) {' - print ' glGetProgramPipelineiv(pipeline, GL_ACTIVE_PROGRAM, &program);' + print ' if (glretrace::insideList) {' + print ' // glUseProgram & glUseProgramObjectARB are display-list-able' + print ' program = _program_map[glretrace::currentContext->activeProgram];' print ' } else {' - print ' glGetIntegerv(GL_CURRENT_PROGRAM, &program);' + print ' GLint pipeline = 0;' + print ' if (_pipelineHasBeenBound) {' + print ' glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING, &pipeline);' + print ' }' + print ' if (pipeline) {' + print ' glGetProgramPipelineiv(pipeline, GL_ACTIVE_PROGRAM, &program);' + print ' } else {' + print ' glGetIntegerv(GL_CURRENT_PROGRAM, &program);' + print ' }' print ' }' print