From: José Fonseca Date: Fri, 9 Dec 2011 19:25:10 +0000 (+0000) Subject: Workaround a crash on MacOSX when reading the SAMPLER_BINDING state. X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=87445ce1f10f3cd87a1ca501230ae64f2f340aaf;p=apitrace Workaround a crash on MacOSX when reading the SAMPLER_BINDING state. --- diff --git a/glstate.py b/glstate.py index e542a39..30d749c 100644 --- a/glstate.py +++ b/glstate.py @@ -467,21 +467,28 @@ class StateDumper: self.dump_atom(getter, *(args + (name,))) def dump_atom(self, getter, *args): - name = args[-1] - print ' // %s' % name - print ' {' - #print ' assert(glGetError() == GL_NO_ERROR);' - type, value = getter(*args) - print ' if (glGetError() != GL_NO_ERROR) {' - #print ' std::cerr << "warning: %s(%s) failed\\n";' % (inflection, name) - print ' while (glGetError() != GL_NO_ERROR) {}' - print ' } else {' - print ' json.beginMember("%s");' % name - JsonWriter().visit(type, value) - print ' json.endMember();' - print ' }' - print ' }' - print + name = args[-1] + + # Avoid crash on MacOSX + # XXX: The right fix would be to look at the support extensions.. + import platform + if name == 'GL_SAMPLER_BINDING' and platform.system() == 'Darwin': + return + + print ' // %s' % name + print ' {' + #print ' assert(glGetError() == GL_NO_ERROR);' + type, value = getter(*args) + print ' if (glGetError() != GL_NO_ERROR) {' + #print ' std::cerr << "warning: %s(%s) failed\\n";' % (inflection, name) + print ' while (glGetError() != GL_NO_ERROR) {}' + print ' } else {' + print ' json.beginMember("%s");' % name + JsonWriter().visit(type, value) + print ' json.endMember();' + print ' }' + print ' }' + print if __name__ == '__main__':