1 
2 enum {
3     COLOR_BLACK = 0,
4     COLOR_RED,
5     COLOR_GREEN,
6     COLOR_YELLOW,
7     COLOR_BLUE,
8     COLOR_MAGENTA,
9     COLOR_CYAN,
10     COLOR_WHITE
11 };
12 
13 static float RGBMap[9][3] = {
14     {0, 0, 0},
15     {1, 0, 0},
16     {0, 1, 0},
17     {1, 1, 0},
18     {0, 0, 1},
19     {1, 0, 1},
20     {0, 1, 1},
21     {1, 1, 1},
22     {0.5, 0.5, 0.5}
23 };
24 
SetColor(int c)25 static void SetColor(int c)
26 {
27     if (glutGet(GLUT_WINDOW_RGBA))
28         glColor3fv(RGBMap[c]);
29     else
30         glIndexf(c);
31 }
32 
InitMap(void)33 static void InitMap(void)
34 {
35     int i;
36 
37     if (rgb)
38 	return;
39 
40     for (i = 0; i < 9; i++)
41 	    glutSetColor(i, RGBMap[i][0], RGBMap[i][1], RGBMap[i][2]);
42 }
43