Blame


1 76193d7c 2003-09-30 devnull #include <u.h>
2 76193d7c 2003-09-30 devnull #include <libc.h>
3 76193d7c 2003-09-30 devnull #include <draw.h>
4 76193d7c 2003-09-30 devnull #include <memdraw.h>
5 76193d7c 2003-09-30 devnull
6 76193d7c 2003-09-30 devnull /*
7 76193d7c 2003-09-30 devnull struct Memcmap
8 76193d7c 2003-09-30 devnull {
9 76193d7c 2003-09-30 devnull uchar cmap2rgb[3*256];
10 76193d7c 2003-09-30 devnull uchar rgb2cmap[16*16*16];
11 76193d7c 2003-09-30 devnull };
12 76193d7c 2003-09-30 devnull */
13 76193d7c 2003-09-30 devnull
14 76193d7c 2003-09-30 devnull static Memcmap*
15 76193d7c 2003-09-30 devnull mkcmap(void)
16 76193d7c 2003-09-30 devnull {
17 76193d7c 2003-09-30 devnull static Memcmap def;
18 76193d7c 2003-09-30 devnull
19 76193d7c 2003-09-30 devnull int i, rgb, r, g, b;
20 76193d7c 2003-09-30 devnull
21 76193d7c 2003-09-30 devnull for(i=0; i<256; i++){
22 76193d7c 2003-09-30 devnull rgb = cmap2rgb(i);
23 76193d7c 2003-09-30 devnull r = (rgb>>16)&0xff;
24 76193d7c 2003-09-30 devnull g = (rgb>>8)&0xff;
25 76193d7c 2003-09-30 devnull b = rgb&0xff;
26 76193d7c 2003-09-30 devnull def.cmap2rgb[3*i] = r;
27 76193d7c 2003-09-30 devnull def.cmap2rgb[3*i+1] = g;
28 76193d7c 2003-09-30 devnull def.cmap2rgb[3*i+2] = b;
29 76193d7c 2003-09-30 devnull }
30 76193d7c 2003-09-30 devnull
31 76193d7c 2003-09-30 devnull for(r=0; r<16; r++)
32 76193d7c 2003-09-30 devnull for(g=0; g<16; g++)
33 76193d7c 2003-09-30 devnull for(b=0; b<16; b++)
34 76193d7c 2003-09-30 devnull def.rgb2cmap[r*16*16+g*16+b] = rgb2cmap(r*0x11, g*0x11, b*0x11);
35 76193d7c 2003-09-30 devnull return &def;
36 76193d7c 2003-09-30 devnull }
37 76193d7c 2003-09-30 devnull
38 76193d7c 2003-09-30 devnull void
39 76193d7c 2003-09-30 devnull main(int argc, char **argv)
40 76193d7c 2003-09-30 devnull {
41 76193d7c 2003-09-30 devnull Memcmap *c;
42 76193d7c 2003-09-30 devnull int i, j, inferno;
43 76193d7c 2003-09-30 devnull
44 76193d7c 2003-09-30 devnull inferno = 0;
45 76193d7c 2003-09-30 devnull ARGBEGIN{
46 76193d7c 2003-09-30 devnull case 'i':
47 76193d7c 2003-09-30 devnull inferno = 1;
48 76193d7c 2003-09-30 devnull }ARGEND
49 76193d7c 2003-09-30 devnull
50 76193d7c 2003-09-30 devnull memimageinit();
51 76193d7c 2003-09-30 devnull c = mkcmap();
52 76193d7c 2003-09-30 devnull if(!inferno)
53 76193d7c 2003-09-30 devnull print("#include <u.h>\n#include <libc.h>\n");
54 76193d7c 2003-09-30 devnull else
55 76193d7c 2003-09-30 devnull print("#include \"lib9.h\"\n");
56 76193d7c 2003-09-30 devnull print("#include <draw.h>\n");
57 76193d7c 2003-09-30 devnull print("#include <memdraw.h>\n\n");
58 76193d7c 2003-09-30 devnull print("static Memcmap def = {\n");
59 76193d7c 2003-09-30 devnull print("/* cmap2rgb */ {\n");
60 76193d7c 2003-09-30 devnull for(i=0; i<sizeof(c->cmap2rgb); ){
61 76193d7c 2003-09-30 devnull print("\t");
62 76193d7c 2003-09-30 devnull for(j=0; j<16; j++, i++)
63 76193d7c 2003-09-30 devnull print("0x%2.2ux,", c->cmap2rgb[i]);
64 76193d7c 2003-09-30 devnull print("\n");
65 76193d7c 2003-09-30 devnull }
66 76193d7c 2003-09-30 devnull print("},\n");
67 76193d7c 2003-09-30 devnull print("/* rgb2cmap */ {\n");
68 76193d7c 2003-09-30 devnull for(i=0; i<sizeof(c->rgb2cmap);){
69 76193d7c 2003-09-30 devnull print("\t");
70 76193d7c 2003-09-30 devnull for(j=0; j<16; j++, i++)
71 76193d7c 2003-09-30 devnull print("0x%2.2ux,", c->rgb2cmap[i]);
72 76193d7c 2003-09-30 devnull print("\n");
73 76193d7c 2003-09-30 devnull }
74 76193d7c 2003-09-30 devnull print("}\n");
75 76193d7c 2003-09-30 devnull print("};\n");
76 76193d7c 2003-09-30 devnull print("Memcmap *memdefcmap = &def;\n");
77 76193d7c 2003-09-30 devnull print("void _memmkcmap(void){}\n");
78 76193d7c 2003-09-30 devnull exits(0);
79 76193d7c 2003-09-30 devnull }