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

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. /* This test makes sure damaged gets set when a window is
  6.    resized smaller. */
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <GL/glut.h>
  10. int width = -1, height = -1;
  11. int displayCount = 0;
  12. /* ARGSUSED */
  13. void
  14. done(int value)
  15. {
  16.   if (displayCount != 2) {
  17.     fprintf(stderr, "FAIL: test19, damage expectedn");
  18.     exit(1);
  19.   }
  20.   fprintf(stderr, "PASS: test19n");
  21.   exit(0);
  22. }
  23. void
  24. reshape(int w, int h)
  25. {
  26.   printf("window reshaped: w=%d, h=%dn", w, h);
  27.   width = w;
  28.   height = h;
  29. }
  30. void
  31. display(void)
  32. {
  33.   if (glutLayerGet(GLUT_NORMAL_DAMAGED) == 0) {
  34.     fprintf(stderr, "FAIL: test19, damage expectedn");
  35.     exit(1);
  36.   }
  37.   displayCount++;
  38.   if (width == -1 || height == -1) {
  39.     fprintf(stderr, "FAIL: test19, reshape not calledn");
  40.     exit(1);
  41.   }
  42.   glClear(GL_COLOR_BUFFER_BIT);
  43.   glFlush();
  44.   if (displayCount == 1) {
  45.     glutReshapeWindow(width / 2, height / 2);
  46.     glutTimerFunc(1000, done, 0);
  47.   }
  48. }
  49. int
  50. main(int argc, char **argv)
  51. {
  52.   glutInit(&argc, argv);
  53.   glutCreateWindow("test19");
  54.   glutDisplayFunc(display);
  55.   glutReshapeFunc(reshape);
  56.   glutMainLoop();
  57.   return 0;             /* ANSI C requires main to return int. */
  58. }