From 07a7ce801ab5bd986e4e580e8370ff705970f13a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 5 Oct 2012 12:07:28 +0100 Subject: [PATCH] Fix retracing when glUseProgram & glUseProgramObjectARB are used inside call lists. --- retrace/glretrace.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) 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 -- 2.43.0