| enum { | |||||
| COLOR_BLACK = 0, | |||||
| COLOR_RED, | |||||
| COLOR_GREEN, | |||||
| COLOR_YELLOW, | |||||
| COLOR_BLUE, | |||||
| COLOR_MAGENTA, | |||||
| COLOR_CYAN, | |||||
| COLOR_WHITE | |||||
| }; | |||||
| static float RGBMap[9][3] = { | |||||
| {0, 0, 0}, | |||||
| {1, 0, 0}, | |||||
| {0, 1, 0}, | |||||
| {1, 1, 0}, | |||||
| {0, 0, 1}, | |||||
| {1, 0, 1}, | |||||
| {0, 1, 1}, | |||||
| {1, 1, 1}, | |||||
| {0.5, 0.5, 0.5} | |||||
| }; | |||||
| static void SetColor(int c) | |||||
| { | |||||
| if (glutGet(GLUT_WINDOW_RGBA)) | |||||
| glColor3fv(RGBMap[c]); | |||||
| else | |||||
| glIndexf(c); | |||||
| } | |||||
| static void InitMap(void) | |||||
| { | |||||
| int i; | |||||
| if (rgb) | |||||
| return; | |||||
| for (i = 0; i < 9; i++) | |||||
| glutSetColor(i, RGBMap[i][0], RGBMap[i][1], RGBMap[i][2]); | |||||
| } | |||||
| static void SetFogRamp(int density, int startIndex) | |||||
| { | |||||
| int fogValues, colorValues; | |||||
| int i, j, k; | |||||
| float intensity; | |||||
| fogValues = 1 << density; | |||||
| colorValues = 1 << startIndex; | |||||
| for (i = 0; i < colorValues; i++) { | |||||
| for (j = 0; j < fogValues; j++) { | |||||
| k = i * fogValues + j; | |||||
| intensity = (i * fogValues + j * colorValues) / 255.0; | |||||
| glutSetColor(k, intensity, intensity, intensity); | |||||
| } | |||||
| } | |||||
| } | |||||
| static void SetGreyRamp(void) | |||||
| { | |||||
| int i; | |||||
| float intensity; | |||||
| for (i = 0; i < 255; i++) { | |||||
| intensity = i / 255.0; | |||||
| glutSetColor(i, intensity, intensity, intensity); | |||||
| } | |||||
| } | |||||