tkmap.c revision 32001f49
1 2enum { 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 13static 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 25static void SetColor(int c) 26{ 27 if (glutGet(GLUT_WINDOW_RGBA)) 28 glColor3fv(RGBMap[c]); 29 else 30 glIndexf(c); 31} 32 33static 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 44static void SetFogRamp(int density, int startIndex) 45{ 46 int fogValues, colorValues; 47 int i, j, k; 48 float intensity; 49 50 fogValues = 1 << density; 51 colorValues = 1 << startIndex; 52 for (i = 0; i < colorValues; i++) { 53 for (j = 0; j < fogValues; j++) { 54 k = i * fogValues + j; 55 intensity = (i * fogValues + j * colorValues) / 255.0; 56 glutSetColor(k, intensity, intensity, intensity); 57 } 58 } 59} 60 61static void SetGreyRamp(void) 62{ 63 int i; 64 float intensity; 65 66 for (i = 0; i < 255; i++) { 67 intensity = i / 255.0; 68 glutSetColor(i, intensity, intensity, intensity); 69 } 70} 71 72