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

GIS编程

开发平台:

Visual C++

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