util/format: Take advantage of sequential nature of pipe_format enum.
Make sure the format descriptor table can be indexed directly.
This commit is contained in:
parent
714e1880d9
commit
ddbd2d08b7
|
@ -32,15 +32,14 @@
|
|||
const struct util_format_description *
|
||||
util_format_description(enum pipe_format format)
|
||||
{
|
||||
const struct util_format_description *desc = util_format_description_table;
|
||||
const struct util_format_description *desc;
|
||||
|
||||
while(TRUE) {
|
||||
if(desc->format == format)
|
||||
return desc;
|
||||
if (format >= PIPE_FORMAT_COUNT) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(desc->format == PIPE_FORMAT_NONE)
|
||||
return NULL;
|
||||
desc = &util_format_description_table[format];
|
||||
assert(desc->format == format);
|
||||
|
||||
++desc;
|
||||
};
|
||||
return desc;
|
||||
}
|
||||
|
|
|
@ -11,6 +11,8 @@ PIPE_FORMAT_A8_UNORM , arith , 1, 1, un8 , , , , 000x,
|
|||
PIPE_FORMAT_I8_UNORM , arith , 1, 1, un8 , , , , xxxx, rgb
|
||||
PIPE_FORMAT_A8L8_UNORM , arith , 1, 1, un8 , un8 , , , xxxy, rgb
|
||||
PIPE_FORMAT_L16_UNORM , arith , 1, 1, un16, , , , xxx1, rgb
|
||||
PIPE_FORMAT_YCBCR , yuv , 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_YCBCR_REV , yuv , 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_Z16_UNORM , array , 1, 1, un16, , , , x___, zs
|
||||
PIPE_FORMAT_Z32_UNORM , array , 1, 1, un32, , , , x___, zs
|
||||
PIPE_FORMAT_Z32_FLOAT , array , 1, 1, f32 , , , , x___, zs
|
||||
|
@ -97,13 +99,11 @@ PIPE_FORMAT_B8G8R8A8_SRGB , arith , 1, 1, u8 , u8 , u8 , u8 , zyxw,
|
|||
PIPE_FORMAT_B8G8R8X8_SRGB , arith , 1, 1, u8 , u8 , u8 , u8 , zyx1, srgb
|
||||
PIPE_FORMAT_X8UB8UG8SR8S_NORM , arith , 1, 1, sn8 , sn8 , un8 , x8 , 1zyx, rgb
|
||||
PIPE_FORMAT_B6UG5SR5S_NORM , arith , 1, 1, sn5 , sn5 , un6 , , xyz1, rgb
|
||||
PIPE_FORMAT_YCBCR , yuv , 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_YCBCR_REV , yuv , 2, 1, x32 , , , , xyz1, yuv
|
||||
PIPE_FORMAT_DXT1_RGBA , dxt , 4, 4, x64 , , , , xyzw, rgb
|
||||
PIPE_FORMAT_DXT1_RGB , dxt , 4, 4, x64 , , , , xyz1, rgb
|
||||
PIPE_FORMAT_DXT1_RGBA , dxt , 4, 4, x64 , , , , xyzw, rgb
|
||||
PIPE_FORMAT_DXT3_RGBA , dxt , 4, 4, x128, , , , xyzw, rgb
|
||||
PIPE_FORMAT_DXT5_RGBA , dxt , 4, 4, x128, , , , xyzw, rgb
|
||||
PIPE_FORMAT_DXT1_SRGBA , dxt , 4, 4, x64 , , , , xyzw, srgb
|
||||
PIPE_FORMAT_DXT1_SRGB , dxt , 4, 4, x64 , , , , xyz1, srgb
|
||||
PIPE_FORMAT_DXT1_SRGBA , dxt , 4, 4, x64 , , , , xyzw, srgb
|
||||
PIPE_FORMAT_DXT3_SRGBA , dxt , 4, 4, x128, , , , xyzw, srgb
|
||||
PIPE_FORMAT_DXT5_SRGBA , dxt , 4, 4, x128, , , , xyzw, srgb
|
||||
|
|
|
|
@ -90,6 +90,15 @@ def write_format_table(formats):
|
|||
print 'const struct util_format_description'
|
||||
print 'util_format_description_table[] = '
|
||||
print "{"
|
||||
print " {"
|
||||
print " PIPE_FORMAT_NONE,"
|
||||
print " \"PIPE_FORMAT_NONE\","
|
||||
print " {0, 0, 0},"
|
||||
print " 0,"
|
||||
print " {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}},"
|
||||
print " {0, 0, 0, 0},"
|
||||
print " 0"
|
||||
print " },"
|
||||
for format in formats:
|
||||
print " {"
|
||||
print " %s," % (format.name,)
|
||||
|
@ -120,15 +129,6 @@ def write_format_table(formats):
|
|||
print " },"
|
||||
print " %s," % (colorspace_map(format.colorspace),)
|
||||
print " },"
|
||||
print " {"
|
||||
print " PIPE_FORMAT_NONE,"
|
||||
print " \"PIPE_FORMAT_NONE\","
|
||||
print " {0, 0, 0},"
|
||||
print " 0,"
|
||||
print " {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}},"
|
||||
print " {0, 0, 0, 0},"
|
||||
print " 0"
|
||||
print " },"
|
||||
print "};"
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue