home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / patches / mesa3.1 / test / glut / test7.c < prev    next >
C/C++ Source or Header  |  1998-10-23  |  4KB  |  202 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. int w1, w2;
  13.  
  14. void
  15. display(void)
  16. {
  17.   glClear(GL_COLOR_BUFFER_BIT);
  18. }
  19.  
  20. void
  21. time9(int value)
  22. {
  23.   if (value != 9) {
  24.     printf("FAIL: time9 expected 9\n");
  25.     exit(1);
  26.   }
  27.   printf("PASS: test7\n");
  28.   exit(0);
  29. }
  30.  
  31. void
  32. time8(int value)
  33. {
  34.   if (value != 8) {
  35.     printf("FAIL: time8 expected 8\n");
  36.     exit(1);
  37.   }
  38.   printf("window 1 to 350x250+20+200; window 2 to 50x150+50+50\n");
  39.   glutSetWindow(w1);
  40.   glutReshapeWindow(350, 250);
  41.   glutPositionWindow(20, 200);
  42.   glutSetWindow(w2);
  43.   glutReshapeWindow(50, 150);
  44.   glutPositionWindow(50, 50);
  45.   glutTimerFunc(1000, time9, 9);
  46. }
  47.  
  48. void
  49. time7(int value)
  50. {
  51.   if (value != 7) {
  52.     printf("FAIL: time7 expected 7\n");
  53.     exit(1);
  54.   }
  55.   printf("window 1 fullscreen; window 2 popped on top\n");
  56.   glutSetWindow(w1);
  57.   glutShowWindow();
  58.   glutFullScreen();
  59.   glutSetWindow(w2);
  60.   glutShowWindow();
  61.   glutPopWindow();
  62.   /* It can take a long time for glutFullScreen to really happen
  63.      on a Windows 95 PC.  I believe this has to do with the memory
  64.      overhead for resizing a huge soft color and/or ancillary buffers. */
  65.   glutTimerFunc(6000, time8, 8);
  66. }
  67.  
  68. void
  69. time6(int value)
  70. {
  71.   if (value != 6) {
  72.     printf("FAIL: time6 expected 6\n");
  73.     exit(1);
  74.   }
  75.   printf("change icon tile for both windows\n");
  76.   glutSetWindow(w1);
  77.   glutSetIconTitle("icon1");
  78.   glutSetWindow(w2);
  79.   glutSetIconTitle("icon2");
  80.   glutTimerFunc(1000, time7, 7);
  81. }
  82.  
  83. void
  84. time5(int value)
  85. {
  86.   int val;
  87.  
  88.   if (value != 5) {
  89.     printf("FAIL: time5 expected 5\n");
  90.     exit(1);
  91.   }
  92.   glutSetWindow(w1);
  93.   if ((val = glutGet(GLUT_WINDOW_X) != 20)) {
  94.     printf("WARNING: x position %d, expected to be 20\n", val);
  95.   }
  96.   if ((val = glutGet(GLUT_WINDOW_Y) != 20)) {
  97.     printf("WARNING: y position %d, expected to be 20\n", val);
  98.   }
  99.   if ((val = glutGet(GLUT_WINDOW_WIDTH) != 250)) {
  100.     printf("WARNING: width %d, expected to be 250\n", val);
  101.   }
  102.   if ((val = glutGet(GLUT_WINDOW_HEIGHT) != 250)) {
  103.     printf("WARNING: height %d, expected to be 250\n", val);
  104.   }
  105.   glutSetWindow(w2);
  106.   if ((val = glutGet(GLUT_WINDOW_X) != 250)) {
  107.     printf("WARNING: x position %d, expected to be 250\n", val);
  108.   }
  109.   if ((val = glutGet(GLUT_WINDOW_Y) != 250)) {
  110.     printf("WARNING: y position %d, expected to be 250\n", val);
  111.   }
  112.   if ((val = glutGet(GLUT_WINDOW_WIDTH) != 150)) {
  113.     printf("WARNING: width %d, expected to be 150\n", val);
  114.   }
  115.   if ((val = glutGet(GLUT_WINDOW_HEIGHT) != 150)) {
  116.     printf("WARNING: height %d, expected to be 150\n", val);
  117.   }
  118.   printf("iconify both windows\n");
  119.   glutSetWindow(w1);
  120.   glutIconifyWindow();
  121.   glutSetWindow(w2);
  122.   glutIconifyWindow();
  123.   glutTimerFunc(1000, time6, 6);
  124. }
  125.  
  126. void
  127. time4(int value)
  128. {
  129.   if (value != 4) {
  130.     printf("FAIL: time4 expected 4\n");
  131.     exit(1);
  132.   }
  133.   printf("reshape and reposition window\n");
  134.   glutSetWindow(w1);
  135.   glutReshapeWindow(250, 250);
  136.   glutPositionWindow(20, 20);
  137.   glutSetWindow(w2);
  138.   glutReshapeWindow(150, 150);
  139.   glutPositionWindow(250, 250);
  140.   glutTimerFunc(1000, time5, 5);
  141. }
  142.  
  143. void
  144. time3(int value)
  145. {
  146.   if (value != 3) {
  147.     printf("FAIL: time3 expected 3\n");
  148.     exit(1);
  149.   }
  150.   printf("show both windows again\n");
  151.   glutSetWindow(w1);
  152.   glutShowWindow();
  153.   glutSetWindow(w2);
  154.   glutShowWindow();
  155.   glutTimerFunc(1000, time4, 4);
  156. }
  157.  
  158. void
  159. time2(int value)
  160. {
  161.   if (value != 2) {
  162.     printf("FAIL: time2 expected 2\n");
  163.     exit(1);
  164.   }
  165.   printf("hiding w1; iconify w2\n");
  166.   glutSetWindow(w1);
  167.   glutHideWindow();
  168.   glutSetWindow(w2);
  169.   glutIconifyWindow();
  170.   glutTimerFunc(1000, time3, 3);
  171. }
  172.  
  173. void
  174. time1(int value)
  175. {
  176.   if (value != 1) {
  177.     printf("FAIL: time1 expected 1\n");
  178.     exit(1);
  179.   }
  180.   printf("changing window titles\n");
  181.   glutSetWindow(w1);
  182.   glutSetWindowTitle("changed title");
  183.   glutSetWindow(w2);
  184.   glutSetWindowTitle("changed other title");
  185.   glutTimerFunc(2000, time2, 2);
  186. }
  187.  
  188. int
  189. main(int argc, char **argv)
  190. {
  191.   glutInitWindowPosition(20, 20);
  192.   glutInit(&argc, argv);
  193.   w1 = glutCreateWindow("test 1");
  194.   glutDisplayFunc(display);
  195.   glutInitWindowPosition(200, 200);
  196.   w2 = glutCreateWindow("test 2");
  197.   glutDisplayFunc(display);
  198.   glutTimerFunc(1000, time1, 1);
  199.   glutMainLoop();
  200.   return 0;             /* ANSI C requires main to return int. */
  201. }
  202.