Initial revision
This commit is contained in:
parent
ed7c8e8d02
commit
76193d7cb0
223 changed files with 32479 additions and 0 deletions
35
src/libdraw/writecolmap.c
Normal file
35
src/libdraw/writecolmap.c
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
/*
|
||||
* This code (and the devdraw interface) will have to change
|
||||
* if we ever get bitmaps with ldepth > 3, because the
|
||||
* colormap will have to be written in chunks
|
||||
*/
|
||||
|
||||
void
|
||||
writecolmap(Display *d, RGB *m)
|
||||
{
|
||||
int i, n, fd;
|
||||
char buf[64], *t;
|
||||
ulong r, g, b;
|
||||
|
||||
sprint(buf, "/dev/draw/%d/colormap", d->dirno);
|
||||
fd = open(buf, OWRITE);
|
||||
if(fd < 0)
|
||||
drawerror(d, "wrcolmap: open colormap failed");
|
||||
t = malloc(8192);
|
||||
n = 0;
|
||||
for(i = 0; i < 256; i++) {
|
||||
r = m[i].red>>24;
|
||||
g = m[i].green>>24;
|
||||
b = m[i].blue>>24;
|
||||
n += sprint(t+n, "%d %lud %lud %lud\n", 255-i, r, g, b);
|
||||
}
|
||||
i = write(fd, t, n);
|
||||
free(t);
|
||||
close(fd);
|
||||
if(i != n)
|
||||
drawerror(d, "wrcolmap: bad write");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue