#include <u.h> | |
#include <libc.h> | |
#include <draw.h> | |
#include <bio.h> | |
static ulong | |
getval(char **p) | |
{ | |
ulong v; | |
char *q; | |
v = strtoul(*p, &q, 0); | |
v |= v<<8; | |
v |= v<<16; | |
*p = q; | |
return v; | |
} | |
void | |
readcolmap(Display *d, RGB *colmap) | |
{ | |
int i; | |
char *p, *q; | |
Biobuf *b; | |
char buf[128]; | |
USED(screen); | |
sprint(buf, "/dev/draw/%d/colormap", d->dirno); | |
b = Bopen(buf, OREAD); | |
if(b == 0) | |
drawerror(d, "rdcolmap: can't open colormap device"); | |
for(;;) { | |
p = Brdline(b, '\n'); | |
if(p == 0) | |
break; | |
i = strtoul(p, &q, 0); | |
if(i < 0 || i > 255) { | |
fprint(2, "rdcolmap: bad index\n"); | |
exits("bad"); | |
} | |
p = q; | |
colmap[255-i].red = getval(&p); | |
colmap[255-i].green = getval(&p); | |
colmap[255-i].blue = getval(&p); | |
} | |
Bterm(b); | |
} |