diff options
author | José Fonseca <[email protected]> | 2009-02-20 15:02:19 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2009-02-20 15:02:19 +0000 |
commit | 204526a6d277265b9872d4681e70c58d57038926 (patch) | |
tree | 3914568dd49323c4aa03fdcd1915066505b15b54 /src/gallium/state_trackers/python/retrace | |
parent | 7887a3e42b8cd9f3376dbf090e11c56198275c44 (diff) |
python/retrace: Cope with python 2.4.x
Diffstat (limited to 'src/gallium/state_trackers/python/retrace')
-rwxr-xr-x | src/gallium/state_trackers/python/retrace/interpreter.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/gallium/state_trackers/python/retrace/interpreter.py b/src/gallium/state_trackers/python/retrace/interpreter.py index f418f80d7b4..181113cae62 100755 --- a/src/gallium/state_trackers/python/retrace/interpreter.py +++ b/src/gallium/state_trackers/python/retrace/interpreter.py @@ -35,6 +35,14 @@ import model import parser +try: + from struct import unpack_from +except ImportError: + def unpack_from(fmt, buf, offset=0): + size = struct.calcsize(fmt) + return struct.unpack(fmt, buf[offset:offset + size]) + + def make_image(surface): pixels = gallium.FloatArray(surface.height*surface.width*4) surface.get_tile_rgba(0, 0, surface.width, surface.height, pixels) @@ -383,7 +391,7 @@ class Context(Object): format = '4f' index = 0 for offset in range(0, len(data), struct.calcsize(format)): - x, y, z, w = struct.unpack_from(format, data, offset) + x, y, z, w = unpack_from(format, data, offset) sys.stdout.write('\tCONST[%2u] = {%10.4f, %10.4f, %10.4f, %10.4f}\n' % (index, x, y, z, w)) index += 1 @@ -454,7 +462,7 @@ class Context(Object): }[velem.src_format] data = vbuf.buffer.read() - values = struct.unpack_from(format, data, offset) + values = unpack_from(format, data, offset) sys.stdout.write('\t\t{' + ', '.join(map(str, values)) + '},\n') assert len(values) == velem.nr_components sys.stdout.write('\t},\n') @@ -477,7 +485,7 @@ class Context(Object): sys.stdout.write('\t...\n') break offset = i*isize - index, = struct.unpack_from(format, data, offset) + index, = unpack_from(format, data, offset) sys.stdout.write('\t\t%u,\n' % index) minindex = min(minindex, index) maxindex = max(maxindex, index) |