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 *
|
const struct util_format_description *
|
||||||
util_format_description(enum pipe_format format)
|
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 (format >= PIPE_FORMAT_COUNT) {
|
||||||
if(desc->format == format)
|
return NULL;
|
||||||
return desc;
|
}
|
||||||
|
|
||||||
if(desc->format == PIPE_FORMAT_NONE)
|
desc = &util_format_description_table[format];
|
||||||
return NULL;
|
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_I8_UNORM , arith , 1, 1, un8 , , , , xxxx, rgb
|
||||||
PIPE_FORMAT_A8L8_UNORM , arith , 1, 1, un8 , un8 , , , xxxy, rgb
|
PIPE_FORMAT_A8L8_UNORM , arith , 1, 1, un8 , un8 , , , xxxy, rgb
|
||||||
PIPE_FORMAT_L16_UNORM , arith , 1, 1, un16, , , , xxx1, 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_Z16_UNORM , array , 1, 1, un16, , , , x___, zs
|
||||||
PIPE_FORMAT_Z32_UNORM , array , 1, 1, un32, , , , x___, zs
|
PIPE_FORMAT_Z32_UNORM , array , 1, 1, un32, , , , x___, zs
|
||||||
PIPE_FORMAT_Z32_FLOAT , array , 1, 1, f32 , , , , 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_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_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_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_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_DXT3_RGBA , dxt , 4, 4, x128, , , , xyzw, rgb
|
||||||
PIPE_FORMAT_DXT5_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_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_DXT3_SRGBA , dxt , 4, 4, x128, , , , xyzw, srgb
|
||||||
PIPE_FORMAT_DXT5_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 'const struct util_format_description'
|
||||||
print 'util_format_description_table[] = '
|
print 'util_format_description_table[] = '
|
||||||
print "{"
|
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:
|
for format in formats:
|
||||||
print " {"
|
print " {"
|
||||||
print " %s," % (format.name,)
|
print " %s," % (format.name,)
|
||||||
|
@ -120,15 +129,6 @@ def write_format_table(formats):
|
||||||
print " },"
|
print " },"
|
||||||
print " %s," % (colorspace_map(format.colorspace),)
|
print " %s," % (colorspace_map(format.colorspace),)
|
||||||
print " },"
|
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 "};"
|
print "};"
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue