| @@ -0,0 +1,71 @@ | |||
| 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); | |||
| } | |||
| } | |||