URI:
       tcolor.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tcolor.c (793B)
       ---
            1 /* Copyright (c) 2004 Russ Cox, see README for licence details */
            2 #include <stdio.h>
            3 #include <signal.h>
            4 #include <X11/X.h>
            5 #include <X11/Xlib.h>
            6 #include <X11/Xutil.h>
            7 #include "dat.h"
            8 #include "fns.h"
            9 
           10 unsigned long
           11 colorpixel(Display *dpy, ScreenInfo *s, int depth, unsigned long rgb, unsigned long def)
           12 {
           13         int r, g, b;
           14 
           15         r = rgb>>16;
           16         g = (rgb>>8)&0xFF;
           17         b = rgb&0xFF;
           18 
           19         switch(depth){
           20         case 1:
           21         case 2:
           22         case 4:
           23         case 8:
           24         default:
           25                 /* not going to waste color map entries */
           26                 return def;
           27         case 15:
           28                 r >>= 3;
           29                 g >>= 3;
           30                 b >>= 3;
           31                 return (r<<10) | (g<<5) | b;
           32         case 16:
           33                 r >>= 3;
           34                 g >>= 2;
           35                 b >>= 3;
           36                 return (r<<11) | (g<<5) | b;
           37         case 24:
           38         case 32:
           39                 /* try to find byte order */
           40                 if(s->vis->red_mask & 0xff)
           41                         return (r) | (g<<8) | (b<<16); /* OK on Sun */
           42                 return rgb;
           43         }
           44 }