12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #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);
- }
|