home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / patches / mesa3.1 / samples / tkmap.c < prev    next >
Text File  |  2000-01-01  |  1KB  |  72 lines

  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.  
  25. static void SetColor(int c)
  26. {
  27.     if (glutGet(GLUT_WINDOW_RGBA))
  28.         glColor3fv(RGBMap[c]);
  29.     else
  30.         glIndexf(c);
  31. }
  32.  
  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.  
  44. static 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.  
  61. static 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.