X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2Fretrace.py;h=25fa62a51f4644c7141b9a664c359d9d81ddbed1;hb=d06fb348d5daabcb99f06f7b743f9b958c28bcf2;hp=aa2036455ebff631451f0c912051f8bcc0973e7d;hpb=bfb7e191860445ce626a621b3cc9650bc988bef0;p=apitrace diff --git a/retrace/retrace.py b/retrace/retrace.py index aa20364..25fa62a 100644 --- a/retrace/retrace.py +++ b/retrace/retrace.py @@ -40,12 +40,15 @@ class UnsupportedType(Exception): pass -def lookupHandle(handle, value): +def lookupHandle(handle, value, lval=False): if handle.key is None: return "_%s_map[%s]" % (handle.name, value) else: key_name, key_type = handle.key - return "_%s_map[%s][%s]" % (handle.name, key_name, value) + if handle.name == "location" and lval == False: + return "_location_map[%s].lookupUniformLocation(%s)" % (key_name, value) + else: + return "_%s_map[%s][%s]" % (handle.name, key_name, value) class ValueAllocator(stdapi.Visitor): @@ -286,7 +289,7 @@ class SwizzledValueRegistrator(stdapi.Visitor, stdapi.ExpanderMixin): OpaqueValueDeserializer().visit(handle.type, '_origResult', rvalue); if handle.range is None: rvalue = "_origResult" - entry = lookupHandle(handle, rvalue) + entry = lookupHandle(handle, rvalue, True) if (entry.startswith('_program_map') or entry.startswith('_shader_map')): print 'if (glretrace::supportsARBShaderObjects) {' print ' _handleARB_map[%s] = %s;' % (rvalue, lvalue)