mesa/progs/samples/tkmap.c

72 lines
1.2 KiB
C

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);
}
}