Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_unix/sys/src/cmd/unix/drawterm/libmemdraw/mkcmap.c – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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