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

  1.  
  2. /* Copyright (c) Mark J. Kilgard, 1994, 1996. */
  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 <stdio.h>
  9. #include <stdlib.h>
  10. #include <GL/glut.h>
  11.  
  12. int main_w, w[4], win;
  13. int num;
  14.  
  15. /* ARGSUSED */
  16. void
  17. time2(int value)
  18. {
  19.   printf("PASS: test8\n");
  20.   exit(0);
  21. }
  22.  
  23. /* ARGSUSED */
  24. void
  25. time1(int value)
  26. {
  27.   glutSetWindow(w[1]);
  28.   glutIdleFunc(NULL);
  29.   glutKeyboardFunc(NULL);
  30.   glutSetWindow(w[0]);
  31.   glutIdleFunc(NULL);   /* redundant */
  32.   glutKeyboardFunc(NULL);
  33.   glutSetWindow(main_w);
  34.   glutIdleFunc(NULL);   /* redundant */
  35.   glutKeyboardFunc(NULL);
  36.   glutDestroyWindow(w[1]);
  37.   glutDestroyWindow(w[0]);
  38.   glutDestroyWindow(main_w);
  39.   glutTimerFunc(500, time2, 0);
  40. }
  41.  
  42. void
  43. display(void)
  44. {
  45. }
  46.  
  47. int
  48. main(int argc, char **argv)
  49. {
  50.   glutInit(&argc, argv);
  51.   if (glutGet(GLUT_INIT_WINDOW_WIDTH) != 300) {
  52.     printf("FAIL: init width wrong\n");
  53.     exit(1);
  54.   }
  55.   if (glutGet(GLUT_INIT_WINDOW_HEIGHT) != 300) {
  56.     printf("FAIL: init height wrong\n");
  57.     exit(1);
  58.   }
  59.   if (glutGet(GLUT_INIT_WINDOW_X) != -1) {
  60.     printf("FAIL: init x wrong\n");
  61.     exit(1);
  62.   }
  63.   if (glutGet(GLUT_INIT_WINDOW_Y) != -1) {
  64.     printf("FAIL: init y wrong\n");
  65.     exit(1);
  66.   }
  67.   if (glutGet(GLUT_INIT_DISPLAY_MODE) != (GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH)) {
  68.     printf("FAIL: init display mode wrong\n");
  69.     exit(1);
  70.   }
  71.   glutInitDisplayMode(GLUT_RGB);
  72.   main_w = glutCreateWindow("main");
  73.   glutDisplayFunc(display);
  74.   num = glutGet(GLUT_DISPLAY_MODE_POSSIBLE);
  75.   if (num != 1) {
  76.     printf("FAIL: glutGet returned display mode not possible: %d\n", num);
  77.     exit(1);
  78.   }
  79.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  80.   if (0 != num) {
  81.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  82.     exit(1);
  83.   }
  84.   w[0] = glutCreateSubWindow(main_w, 10, 10, 20, 20);
  85.   glutDisplayFunc(display);
  86.   num = glutGet(GLUT_WINDOW_PARENT);
  87.   if (main_w != num) {
  88.     printf("FAIL: glutGet returned bad parent: %d\n", num);
  89.     exit(1);
  90.   }
  91.   glutSetWindow(main_w);
  92.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  93.   if (1 != num) {
  94.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  95.     exit(1);
  96.   }
  97.   w[1] = glutCreateSubWindow(main_w, 40, 10, 20, 20);
  98.   glutDisplayFunc(display);
  99.   num = glutGet(GLUT_WINDOW_PARENT);
  100.   if (main_w != num) {
  101.     printf("FAIL: glutGet returned bad parent: %d\n", num);
  102.     exit(1);
  103.   }
  104.   glutSetWindow(main_w);
  105.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  106.   if (2 != num) {
  107.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  108.     exit(1);
  109.   }
  110.   w[2] = glutCreateSubWindow(main_w, 10, 40, 20, 20);
  111.   glutDisplayFunc(display);
  112.   num = glutGet(GLUT_WINDOW_PARENT);
  113.   if (main_w != num) {
  114.     printf("FAIL: glutGet returned bad parent: %d\n", num);
  115.     exit(1);
  116.   }
  117.   glutSetWindow(main_w);
  118.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  119.   if (3 != num) {
  120.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  121.     exit(1);
  122.   }
  123.   w[3] = glutCreateSubWindow(main_w, 40, 40, 20, 20);
  124.   glutDisplayFunc(display);
  125.   num = glutGet(GLUT_WINDOW_PARENT);
  126.   if (main_w != num) {
  127.     printf("FAIL: glutGet returned bad parent: %d\n", num);
  128.     exit(1);
  129.   }
  130.   glutSetWindow(main_w);
  131.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  132.   if (4 != num) {
  133.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  134.     exit(1);
  135.   }
  136.   glutDestroyWindow(w[3]);
  137.   num = glutGet(GLUT_WINDOW_NUM_CHILDREN);
  138.   if (3 != num) {
  139.     printf("FAIL: glutGet returned wrong # children: %d\n", num);
  140.     exit(1);
  141.   }
  142.   w[3] = glutCreateSubWindow(main_w, 40, 40, 20, 20);
  143.   glutDisplayFunc(display);
  144.   glutCreateSubWindow(w[3], 40, 40, 20, 20);
  145.   glutDisplayFunc(display);
  146.   glutCreateSubWindow(w[3], 40, 40, 20, 20);
  147.   glutDisplayFunc(display);
  148.   win = glutCreateSubWindow(w[3], 40, 40, 20, 20);
  149.   glutDisplayFunc(display);
  150.   glutCreateSubWindow(win, 40, 40, 20, 20);
  151.   glutDisplayFunc(display);
  152.   win = glutCreateSubWindow(w[3], 40, 40, 20, 20);
  153.   glutDisplayFunc(display);
  154.   glutCreateSubWindow(win, 40, 40, 20, 20);
  155.   glutDisplayFunc(display);
  156.   glutDestroyWindow(w[3]);
  157.  
  158.   w[3] = glutCreateSubWindow(main_w, 40, 40, 20, 20);
  159.   glutDisplayFunc(display);
  160.  
  161.   glutTimerFunc(500, time1, 0);
  162.   glutMainLoop();
  163.   return 0;             /* ANSI C requires main to return int. */
  164. }
  165.