Make ICC more happy by spelling -f combo as -fcombo, so it can properly ignore "combo...
[libfirm] / ir / be / test / fehler069.c
1 typedef unsigned char  UINT8;
2 typedef   signed short  INT16;
3 typedef unsigned short UINT16;
4 typedef unsigned int   UINT32;
5
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
11
12
13 float guiShadePercent;
14 INT16 gusRedShift;
15 INT16 gusGreenShift;
16 INT16 gusBlueShift;
17 INT16 gusRedMask;
18 INT16 gusGreenMask;
19 INT16 gusBlueMask;
20
21
22 UINT16 Get16BPPColor(UINT32 RGBValue)
23 {
24   UINT8 r = SGPGetRValue(RGBValue);
25   UINT8 g = SGPGetGValue(RGBValue);
26   UINT8 b = SGPGetBValue(RGBValue);
27
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);
31
32   UINT16 usColor = (r16 & gusRedMask) | (g16 & gusGreenMask) | (b16 & gusBlueMask);
33
34   if (usColor == 0 && RGBValue != 0) usColor = BLACK_SUBSTITUTE;
35
36   return usColor;
37 }
38
39
40 void BuildShadeTable(void)
41 {
42         UINT16 red;
43         UINT16 green;
44         UINT16 blue;
45
46   for (red = 0; red < 256; red += 4)
47   {
48     for (green = 0; green < 256; green += 4)
49     {
50       for (blue = 0; blue < 256; blue += 4)
51       {
52         Get16BPPColor(42);
53         Get16BPPColor(FROMRGB(red * guiShadePercent, green * guiShadePercent, blue * guiShadePercent));
54       }
55     }
56   }
57 }
58
59
60 int main(void)
61 {
62         BuildShadeTable();
63         return 0;
64 }