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/planix-v0/sys/src/libdraw/writecolmap.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
 
5
/*
6
 * This code (and the devdraw interface) will have to change
7
 * if we ever get bitmaps with ldepth > 3, because the
8
 * colormap will have to be written in chunks
9
 */
10
 
11
void
12
writecolmap(Display *d, RGB *m)
13
{
14
	int i, n, fd;
15
	char buf[64], *t;
16
	ulong r, g, b;
17
 
18
	sprint(buf, "/dev/draw/%d/colormap", d->dirno);
19
	fd = open(buf, OWRITE);
20
	if(fd < 0)
21
		drawerror(d, "writecolmap: open colormap failed");
22
	t = malloc(8192);
23
	if (t == nil)
24
		drawerror(d, "writecolmap: no memory");
25
	n = 0;
26
	for(i = 0; i < 256; i++) {
27
		r = m[i].red>>24;
28
		g = m[i].green>>24;
29
		b = m[i].blue>>24;
30
		n += sprint(t+n, "%d %lud %lud %lud\n", 255-i, r, g, b);
31
	}
32
	i = write(fd, t, n);
33
	free(t);
34
	close(fd);
35
	if(i != n)
36
		drawerror(d, "writecolmap: bad write");
37
}