aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/main/format_info.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/src/mesa/main/format_info.py')
-rw-r--r--mesalib/src/mesa/main/format_info.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/mesalib/src/mesa/main/format_info.py b/mesalib/src/mesa/main/format_info.py
index 7424fe0cd..3bae57e54 100644
--- a/mesalib/src/mesa/main/format_info.py
+++ b/mesalib/src/mesa/main/format_info.py
@@ -58,7 +58,7 @@ def get_gl_base_format(fmat):
elif fmat.has_channel('i') and fmat.num_channels() == 1:
return 'GL_INTENSITY'
else:
- assert False
+ sys.exit("error, could not determine base format for {0}, check swizzle".format(fmat.name));
def get_gl_data_type(fmat):
if fmat.is_compressed():
@@ -192,6 +192,22 @@ for fmat in formats:
int(fmat.block_size() / 8))
print ' {{ {0} }},'.format(', '.join(map(str, fmat.swizzle)))
+ if fmat.is_array():
+ chan = fmat.array_element()
+ norm = chan.norm or chan.type == parser.FLOAT
+ print ' MESA_ARRAY_FORMAT({0}),'.format(', '.join([
+ str(chan.size / 8),
+ str(int(chan.sign)),
+ str(int(chan.type == parser.FLOAT)),
+ str(int(norm)),
+ str(len(fmat.channels)),
+ str(fmat.swizzle[0]),
+ str(fmat.swizzle[1]),
+ str(fmat.swizzle[2]),
+ str(fmat.swizzle[3]),
+ ]))
+ else:
+ print ' 0,'
print ' },'
print '};'