texture mapping and shading LUTs
[metatoy] / tools / mctab.c
1 #include <stdio.h>
2 #include "mcubes.h"
3
4 int main(void)
5 {
6         int i, j, len, n;
7         unsigned char byte;
8
9         printf("static unsigned char tritab_runlen[128] = {\n\t");
10
11         for(i=0; i<128; i++) {
12                 unsigned int val;
13                 for(j=0; j<16; j++) {
14                         if(mc_tri_table[i * 2][j] == -1) break;
15                 }
16                 val = j;
17                 for(j=0; j<16; j++) {
18                         if(mc_tri_table[i * 2 + 1][j] == -1) break;
19                 }
20                 val |= j << 4;
21                 printf("0x%02x", val);
22                 if(i == 127) {
23                         printf("\n};\n");
24                 } else if(i % 12 != 11) {
25                         printf(", ");
26                 } else {
27                         printf(",\n\t");
28                 }
29         }
30
31         printf("\nstatic unsigned char tritab_data[] = {\n\t");
32
33         len = 4;
34         byte = 0;
35         n = 0;
36         for(i=0; i<256; i++) {
37                 for(j=0; j<16; j++) {
38                         if(mc_tri_table[i][j] == -1) break;
39
40                         if(n++ == 0) {
41                                 byte = mc_tri_table[i][j];
42                         } else {
43                                 byte |= mc_tri_table[i][j] << 4;
44                                 n = 0;
45
46                                 len += printf("%d", byte);
47                                 if(i < 254 || (j < 15 && mc_tri_table[i][j + 1] != -1)) {
48                                         if(len < 72) {
49                                                 len += printf(", ");
50                                         } else {
51                                                 printf(",\n\t");
52                                                 len = 4;
53                                         }
54                                 }
55                         }
56                 }
57         }
58         printf("\n};\n");
59
60         return 0;
61 }