test8.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:4k
源码类别:

GIS编程

开发平台:

Visual C++

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