xref: /plan9/sys/src/cmd/unix/drawterm/libmemdraw/cmap.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1 #include "../lib9.h"
2 
3 #include "../libdraw/draw.h"
4 #include "../libmemdraw/memdraw.h"
5 
6 Memcmap*	memdefcmap;
7 
8 static Memcmap	def;
9 
10 void
11 memmkcmap(void)
12 {
13 
14 	int i, rgb, r, g, b;
15 
16 	if(memdefcmap)
17 		return;
18 
19 	for(i=0; i<256; i++){
20 		rgb = cmap2rgb(i);
21 		r = (rgb>>16)&0xff;
22 		g = (rgb>>8)&0xff;
23 		b = rgb&0xff;
24 		def.cmap2rgb[3*i] = r;
25 		def.cmap2rgb[3*i+1] = g;
26 		def.cmap2rgb[3*i+2] = b;
27 	}
28 
29 	for(r=0; r<16; r++)
30 	for(g=0; g<16; g++)
31 	for(b=0; b<16; b++)
32 		def.rgb2cmap[r*16*16+g*16+b] = rgb2cmap(r*0x11, g*0x11, b*0x11);
33 	memdefcmap = &def;
34 }
35