home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / patches / mesa3.1 / test / glut / test5.c < prev    next >
C/C++ Source or Header  |  1998-11-13  |  4KB  |  143 lines

  1.  
  2. /* Copyright (c) Mark J. Kilgard, 1994. */
  3.  
  4. /* This program is freely distributable without licensing fees 
  5.    and is provided without guarantee or warrantee expressed or 
  6.    implied. This program is -not- in the public domain. */
  7.  
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <GL/glut.h>
  11.  
  12. GLfloat comp;
  13. int mask = 0;
  14.  
  15. void
  16. display(void)
  17. {
  18.   glClear(GL_COLOR_BUFFER_BIT);
  19.   glFlush();
  20.   mask |= 1 << glutGetWindow();
  21. }
  22.  
  23. void
  24. timeout(int value)
  25. {
  26.   if (value != 1) {
  27.     printf("FAIL: test5\n");
  28.     exit(1);
  29.   }
  30.   if (mask != 0x6) {
  31.     printf("FAIL: test5\n");
  32.     exit(1);
  33.   }
  34.   printf("PASS: test5\n");
  35.   exit(0);
  36. }
  37.  
  38. int
  39. main(int argc, char **argv)
  40. {
  41.   int win1, win2, size;
  42.   GLint isIndex;
  43.  
  44.   glutInit(&argc, argv);
  45.   glutInitDisplayMode(GLUT_INDEX);
  46.   if (!glutGet(GLUT_DISPLAY_MODE_POSSIBLE)) {
  47.     printf("UNRESOLVED: test5 (your OpenGL lacks color index support)\n");
  48.     exit(0);
  49.   }
  50.   glutInitWindowPosition(45, 45);
  51.   win1 = glutCreateWindow("CI test 1");
  52.   glGetIntegerv(GL_INDEX_MODE, &isIndex);
  53.   if (isIndex == 0) {
  54.     printf("FAIL: test5 displaymode is not index\n");
  55.     exit(1);
  56.   }
  57.   size = glutGet(GLUT_WINDOW_COLORMAP_SIZE);
  58.   if (size <= 1 || size > (1 << glutGet(GLUT_WINDOW_BUFFER_SIZE))) {
  59.     printf("FAIL: test5 window colormapsize is wrong (%d > %d)\n", size, glutGet(GLUT_WINDOW_BUFFER_SIZE));
  60.     exit(1);
  61.   }
  62.   glutSetColor(2, 1.0, 3.4, 0.5);
  63.   comp = glutGetColor(2, GLUT_RED);
  64.   if (comp != 1.0) {
  65.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 1.0);
  66. //    exit(1);
  67.   }
  68.   comp = glutGetColor(2, GLUT_GREEN);
  69.   if (comp != 3.4) {
  70.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 3.4);
  71. //    exit(1);
  72.   }
  73.   comp = glutGetColor(2, GLUT_BLUE);
  74.   if (comp != 0.5) {
  75.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 0.5);
  76. //    exit(1);
  77.   }
  78.   glutInitWindowPosition(450, 450);
  79.   win2 = glutCreateWindow("CI test 2");
  80.   glutCopyColormap(win1);
  81.   comp = glutGetColor(2, GLUT_RED);
  82.   if (comp != 1.0) {
  83.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 1.0);
  84. //    exit(1);
  85.   }
  86.   comp = glutGetColor(2, GLUT_GREEN);
  87.   if (comp != 3.4) {
  88.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 3.4);
  89. //    exit(1);
  90.   }
  91.   comp = glutGetColor(2, GLUT_BLUE);
  92.   if (comp != 0.5) {
  93.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 0.5);
  94. //    exit(1);
  95.   }
  96.   glutSetColor(2, -1.0, 0.25, 0.75);
  97.   glutSetWindow(win1);
  98.   if (win1 != glutGetWindow()) {
  99.     printf("FAIL: test5\n");
  100.     exit(1);
  101.   }
  102.   glutDisplayFunc(display);
  103.   comp = glutGetColor(2, GLUT_RED);
  104.   if (comp != 1.0) {
  105.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 1.0);
  106. //    exit(1);
  107.   }
  108.   comp = glutGetColor(2, GLUT_GREEN);
  109.   if (comp != 3.4) {
  110.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 3.4);
  111. //    exit(1);
  112.   }
  113.   comp = glutGetColor(2, GLUT_BLUE);
  114.   if (comp != 0.5) {
  115.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 0.5);
  116. //    exit(1);
  117.   }
  118.   glutSetWindow(win2);
  119.   if (win2 != glutGetWindow()) {
  120.     printf("FAIL: test5\n");
  121.     exit(1);
  122.   }
  123.   comp = glutGetColor(2, GLUT_RED);
  124.   if (comp != -1.0) {
  125.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, -1.0);
  126. //    exit(1);
  127.   }
  128.   comp = glutGetColor(2, GLUT_GREEN);
  129.   if (comp != 0.25) {
  130.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 0.25);
  131. //    exit(1);
  132.   }
  133.   comp = glutGetColor(2, GLUT_BLUE);
  134.   if (comp != 0.75) {
  135.     printf("got color: %g, expect: %g\nFAIL: test5\n", comp, 0.75);
  136. //    exit(1);
  137.   }
  138.   glutTimerFunc(1500, timeout, 1);
  139.   glutDisplayFunc(display);
  140.   glutMainLoop();
  141.   return 0;             /* ANSI C requires main to return int. */
  142. }
  143.