'''
/**************************************************************************
*
- * Copyright 2009 VMware, Inc.
+ * Copyright 2010 VMware, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
print __doc__.strip()
print
print '#include "u_format.h"'
- print
- print '''
-static void
-util_format_none_unpack_8unorm(uint8_t *dst, const uint8_t *src, unsigned length)
-{
-}
-
-static void
-util_format_none_pack_8unorm(uint8_t *dst, const uint8_t *src, unsigned length)
-{
-}
-
-static void
-util_format_none_unpack_float(float *dst, const uint8_t *src, unsigned length)
-{
-}
-
-static void
-util_format_none_pack_float(uint8_t *dst, const float *src, unsigned length)
-{
-}
-
-static void
-util_format_none_fetch_float(float *dst, const uint8_t *src, unsigned i, unsigned j)
-{
-}
- '''
- print 'const struct util_format_description'
- print 'util_format_none_description = {'
- print " PIPE_FORMAT_NONE,"
- print " \"PIPE_FORMAT_NONE\","
- print " \"none\","
- print " {0, 0, 0},"
- print " 0,"
- print " 0,"
- print " 0,"
- print " 0,"
- print " 0,"
- print " {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}},"
- print " {0, 0, 0, 0},"
- print " 0,"
- print " &util_format_none_unpack_8unorm,"
- print " &util_format_none_pack_8unorm,"
- print " &util_format_none_unpack_float,"
- print " &util_format_none_pack_float,"
- print " &util_format_none_fetch_float"
- print "};"
+ print '#include "u_format_s3tc.h"'
print
u_format_pack.generate(formats)
print " %s%s\t/* %s */" % (swizzle_map[swizzle], sep, comment)
print " },"
print " %s," % (colorspace_map(format.colorspace),)
- print " &util_format_%s_unpack_8unorm," % format.short_name()
- print " &util_format_%s_pack_8unorm," % format.short_name()
- print " &util_format_%s_unpack_float," % format.short_name()
- print " &util_format_%s_pack_float," % format.short_name()
- print " &util_format_%s_fetch_float" % format.short_name()
+ if format.colorspace != ZS:
+ print " &util_format_%s_unpack_rgba_8unorm," % format.short_name()
+ print " &util_format_%s_pack_rgba_8unorm," % format.short_name()
+ print " &util_format_%s_unpack_rgba_float," % format.short_name()
+ print " &util_format_%s_pack_rgba_float," % format.short_name()
+ print " &util_format_%s_fetch_rgba_float," % format.short_name()
+ else:
+ print " NULL, /* unpack_rgba_8unorm */"
+ print " NULL, /* pack_rgba_8unorm */"
+ print " NULL, /* unpack_rgba_float */"
+ print " NULL, /* pack_rgba_float */"
+ print " NULL, /* fetch_rgba_float */"
+ if format.colorspace == ZS and format.swizzles[0] != SWIZZLE_NONE:
+ print " &util_format_%s_unpack_z_32unorm," % format.short_name()
+ print " &util_format_%s_pack_z_32unorm," % format.short_name()
+ print " &util_format_%s_unpack_z_float," % format.short_name()
+ print " &util_format_%s_pack_z_float," % format.short_name()
+ else:
+ print " NULL, /* unpack_z_32unorm */"
+ print " NULL, /* pack_z_32unorm */"
+ print " NULL, /* unpack_z_float */"
+ print " NULL, /* pack_z_float */"
+ if format.colorspace == ZS and format.swizzles[1] != SWIZZLE_NONE:
+ print " &util_format_%s_unpack_s_8uscaled," % format.short_name()
+ print " &util_format_%s_pack_s_8uscaled" % format.short_name()
+ else:
+ print " NULL, /* unpack_s_8uscaled */"
+ print " NULL /* pack_s_8uscaled */"
print "};"
print
print " }"
print
print " switch (format) {"
- print " case PIPE_FORMAT_NONE:"
- print " return &util_format_none_description;"
for format in formats:
print " case %s:" % format.name
print " return &util_format_%s_description;" % (format.short_name(),)
print " default:"
- print " assert(0);"
print " return NULL;"
print " }"
print "}"