Mesa (master): util: Refactor some code.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Wed Feb 24 15:45:36 UTC 2010
Module: Mesa
Branch: master
Commit: 1dbb5f02aeca89626c4479c53828ea7957989892
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1dbb5f02aeca89626c4479c53828ea7957989892
Author: José Fonseca <jfonseca at vmware.com>
Date: Wed Feb 24 15:41:24 2010 +0000
util: Refactor some code.
---
src/gallium/auxiliary/util/u_format_access.py | 35 +++++++++++++++----------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/src/gallium/auxiliary/util/u_format_access.py b/src/gallium/auxiliary/util/u_format_access.py
index ca0c976..fb85215 100644
--- a/src/gallium/auxiliary/util/u_format_access.py
+++ b/src/gallium/auxiliary/util/u_format_access.py
@@ -248,6 +248,24 @@ def conversion_expr(src_type, dst_type, dst_native_type, value):
assert False
+def compute_inverse_swizzle(format):
+ '''Return an array[4] of inverse swizzle terms'''
+ inv_swizzle = [None]*4
+ if format.colorspace == 'rgb':
+ for i in range(4):
+ swizzle = format.out_swizzle[i]
+ if swizzle < 4:
+ inv_swizzle[swizzle] = i
+ elif format.colorspace == 'zs':
+ swizzle = format.out_swizzle[0]
+ if swizzle < 4:
+ inv_swizzle[swizzle] = 0
+ else:
+ assert False
+
+ return inv_swizzle
+
+
def generate_format_read(format, dst_type, dst_native_type, dst_suffix):
'''Generate the function to read pixels from a particular format'''
@@ -330,7 +348,7 @@ def generate_format_read(format, dst_type, dst_native_type, dst_suffix):
print ' }'
print ' src_row += src_stride;'
- print ' dst_row += dst_stride/sizeof(%s);' % dst_native_type
+ print ' dst_row += dst_stride/sizeof(*dst_row);'
print ' }'
print '}'
print
@@ -354,18 +372,7 @@ def generate_format_write(format, src_type, src_native_type, src_suffix):
print ' const %s *src_pixel = src_row;' %src_native_type
print ' for (x = 0; x < w; ++x) {'
- inv_swizzle = [None]*4
- if format.colorspace == 'rgb':
- for i in range(4):
- swizzle = format.out_swizzle[i]
- if swizzle < 4:
- inv_swizzle[swizzle] = i
- elif format.colorspace == 'zs':
- swizzle = format.out_swizzle[0]
- if swizzle < 4:
- inv_swizzle[swizzle] = 0
- else:
- assert False
+ inv_swizzle = compute_inverse_swizzle(format)
if format.layout in (ARITH, ARRAY):
if not format.is_array():
@@ -395,7 +402,7 @@ def generate_format_write(format, src_type, src_native_type, src_suffix):
print ' }'
print ' dst_row += dst_stride;'
- print ' src_row += src_stride/sizeof(%s);' % src_native_type
+ print ' src_row += src_stride/sizeof(*src_row);'
print ' }'
print '}'
print
More information about the mesa-commit
mailing list