diff --git a/extra/dxt1table.c b/extra/dxt1table.c new file mode 100644 index 00000000..6cf2a647 --- /dev/null +++ b/extra/dxt1table.c @@ -0,0 +1,36 @@ +#include +#include + +static const uint8_t IndexTable[4] = { 1, 3, 2, 0 }; + +int convert( int v ) +{ + int v0 = v & 0x3; + int v1 = ( v >> 2 ) & 0x3; + int v2 = ( v >> 4 ) & 0x3; + int v3 = ( v >> 6 ); + + int t0 = IndexTable[v0]; + int t1 = IndexTable[v1]; + int t2 = IndexTable[v2]; + int t3 = IndexTable[v3]; + + return t0 | ( t1 << 2 ) | ( t2 << 4 ) | ( t3 << 6 ); +} + +int main() +{ + for( int i=0; i<256; i++ ) + { + if( i % 16 == 15 ) + { + printf( "%i,\n", convert( i ) ); + } + else + { + printf( "%i,\t", convert( i ) ); + } + } + printf( "\n" ); + return 0; +}