1 typedef unsigned char UINT8;
2 typedef signed short INT16;
3 typedef unsigned short UINT16;
4 typedef unsigned int UINT32;
6 #define FROMRGB(r, g ,b) ((UINT32) (((UINT8) (r) | ((UINT16) (g) << 8)) | (((UINT32) (UINT8) (b)) << 16)))
7 #define SGPGetRValue(rgb) ((UINT8) (rgb))
8 #define SGPGetBValue(rgb) ((UINT8) ((rgb) >> 16))
9 #define SGPGetGValue(rgb) ((UINT8) (((UINT16) (rgb)) >> 8))
10 #define BLACK_SUBSTITUTE 0x0001
13 float guiShadePercent;
22 UINT16 Get16BPPColor(UINT32 RGBValue)
24 UINT8 r = SGPGetRValue(RGBValue);
25 UINT8 g = SGPGetGValue(RGBValue);
26 UINT8 b = SGPGetBValue(RGBValue);
28 UINT16 r16 = (gusRedShift < 0 ? r >> -gusRedShift : r << gusRedShift);
29 UINT16 g16 = (gusGreenShift < 0 ? g >> -gusGreenShift : g << gusGreenShift);
30 UINT16 b16 = (gusBlueShift < 0 ? b >> -gusBlueShift : b << gusBlueShift);
32 UINT16 usColor = (r16 & gusRedMask) | (g16 & gusGreenMask) | (b16 & gusBlueMask);
34 if (usColor == 0 && RGBValue != 0) usColor = BLACK_SUBSTITUTE;
40 void BuildShadeTable(void)
46 for (red = 0; red < 256; red += 4)
48 for (green = 0; green < 256; green += 4)
50 for (blue = 0; blue < 256; blue += 4)
53 Get16BPPColor(FROMRGB(red * guiShadePercent, green * guiShadePercent, blue * guiShadePercent));