Blame


1 038e9089 2004-03-21 devnull /* Copyright (c) 2004 Russ Cox, see README for licence details */
2 038e9089 2004-03-21 devnull #include <stdio.h>
3 038e9089 2004-03-21 devnull #include <signal.h>
4 038e9089 2004-03-21 devnull #include <X11/X.h>
5 038e9089 2004-03-21 devnull #include <X11/Xlib.h>
6 038e9089 2004-03-21 devnull #include <X11/Xutil.h>
7 038e9089 2004-03-21 devnull #include "dat.h"
8 038e9089 2004-03-21 devnull #include "fns.h"
9 038e9089 2004-03-21 devnull
10 038e9089 2004-03-21 devnull unsigned long
11 7934b1c6 2004-04-05 devnull colorpixel(Display *dpy, ScreenInfo *s, int depth, unsigned long rgb, unsigned long def)
12 038e9089 2004-03-21 devnull {
13 038e9089 2004-03-21 devnull int r, g, b;
14 038e9089 2004-03-21 devnull
15 038e9089 2004-03-21 devnull r = rgb>>16;
16 038e9089 2004-03-21 devnull g = (rgb>>8)&0xFF;
17 038e9089 2004-03-21 devnull b = rgb&0xFF;
18 038e9089 2004-03-21 devnull
19 038e9089 2004-03-21 devnull switch(depth){
20 038e9089 2004-03-21 devnull case 1:
21 038e9089 2004-03-21 devnull case 2:
22 038e9089 2004-03-21 devnull case 4:
23 038e9089 2004-03-21 devnull case 8:
24 038e9089 2004-03-21 devnull default:
25 038e9089 2004-03-21 devnull /* not going to waste color map entries */
26 1cb3fa80 2004-03-29 devnull return def;
27 038e9089 2004-03-21 devnull case 15:
28 038e9089 2004-03-21 devnull r >>= 3;
29 038e9089 2004-03-21 devnull g >>= 3;
30 038e9089 2004-03-21 devnull b >>= 3;
31 038e9089 2004-03-21 devnull return (r<<10) | (g<<5) | b;
32 038e9089 2004-03-21 devnull case 16:
33 038e9089 2004-03-21 devnull r >>= 3;
34 038e9089 2004-03-21 devnull g >>= 2;
35 038e9089 2004-03-21 devnull b >>= 3;
36 038e9089 2004-03-21 devnull return (r<<11) | (g<<5) | b;
37 038e9089 2004-03-21 devnull case 24:
38 038e9089 2004-03-21 devnull case 32:
39 7934b1c6 2004-04-05 devnull /* try to find byte order */
40 ac33a34a 2005-07-13 devnull if(s->vis->red_mask & 0xff)
41 7934b1c6 2004-04-05 devnull return (r) | (g<<8) | (b<<16); /* OK on Sun */
42 038e9089 2004-03-21 devnull return rgb;
43 038e9089 2004-03-21 devnull }
44 038e9089 2004-03-21 devnull }