From 25ebe54f60f37cb3a5f6eafb812d968a51fc5a79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Sun, 24 Apr 2011 10:08:22 +0100 Subject: [PATCH] Avoid time consuming user array checks when they have never been used before. --- gltrace.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gltrace.py b/gltrace.py index 3f63116..09d423e 100644 --- a/gltrace.py +++ b/gltrace.py @@ -101,9 +101,16 @@ class GlTracer(Tracer): arrays.reverse() def state_tracker_decl(self, api): + print '// Whether user arrays were used' + print 'static bool __user_arrays = false;' + print # Whether we need user arrays print 'static inline bool __need_user_arrays(void)' print '{' + print ' if (!__user_arrays) {' + print ' return false;' + print ' }' + print for camelcase_name, uppercase_name in self.arrays: function_name = 'gl%sPointer' % camelcase_name @@ -202,6 +209,7 @@ class GlTracer(Tracer): print ' GLint __array_buffer = 0;' print ' __glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &__array_buffer);' print ' if (!__array_buffer) {' + print ' __user_arrays = true;' self.dispatch_function(function) print ' return;' print ' }' @@ -219,6 +227,7 @@ class GlTracer(Tracer): print ' GLint __array_buffer = 0;' print ' __glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &__array_buffer);' print ' if (!__array_buffer) {' + print ' __user_arrays = true;' self.dispatch_function(function) print -- 2.7.4