home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / sviluppo / mesa-glut / test / glut / test19.c < prev    next >
C/C++ Source or Header  |  1998-10-08  |  1KB  |  68 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. /* This test makes sure damaged gets set when a window is
  9.    resized smaller. */
  10.  
  11. #include <stdlib.h>
  12. #include <stdio.h>
  13. #include <GL/glut.h>
  14.  
  15. int width = -1, height = -1;
  16. int displayCount = 0;
  17.  
  18. /* ARGSUSED */
  19. void
  20. done(int value)
  21. {
  22.   if (displayCount != 2) {
  23.     fprintf(stderr, "FAIL: test19, damage expected\n");
  24.     exit(1);
  25.   }
  26.   fprintf(stderr, "PASS: test19\n");
  27.   exit(0);
  28. }
  29.  
  30. void
  31. reshape(int w, int h)
  32. {
  33.   printf("window reshaped: w=%d, h=%d\n", w, h);
  34.   width = w;
  35.   height = h;
  36. }
  37.  
  38. void
  39. display(void)
  40. {
  41.   if (glutLayerGet(GLUT_NORMAL_DAMAGED) == 0) {
  42.     fprintf(stderr, "FAIL: test19, damage expected\n");
  43.     exit(1);
  44.   }
  45.   displayCount++;
  46.   if (width == -1 || height == -1) {
  47.     fprintf(stderr, "FAIL: test19, reshape not called\n");
  48.     exit(1);
  49.   }
  50.   glClear(GL_COLOR_BUFFER_BIT);
  51.   glFlush();
  52.   if (displayCount == 1) {
  53.     glutReshapeWindow(width / 2, height / 2);
  54.     glutTimerFunc(1000, done, 0);
  55.   }
  56. }
  57.  
  58. int
  59. main(int argc, char **argv)
  60. {
  61.   glutInit(&argc, argv);
  62.   glutCreateWindow("test19");
  63.   glutDisplayFunc(display);
  64.   glutReshapeFunc(reshape);
  65.   glutMainLoop();
  66.   return 0;             /* ANSI C requires main to return int. */
  67. }
  68.