ACCUM.C
上传用户:tengyuc
上传日期:2007-08-14
资源大小:722k
文件大小:1k
源码类别:

OpenGL

开发平台:

Visual C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <GL/glut.h>
  5. GLint thing1, thing2;
  6. static void Init(void)
  7. {
  8.     glClearColor(0.0, 0.0, 0.0, 0.0);
  9.     glClearAccum(0.0, 0.0, 0.0, 0.0);
  10.     thing1 = glGenLists(1);
  11. glNewList(thing1, GL_COMPILE);
  12. glColor3f(1.0, 0.0, 0.0);
  13. glRectf(-1.0, -1.0, 1.0, 0.0);
  14.     glEndList();
  15.     thing2 = glGenLists(1);
  16.     glNewList(thing2, GL_COMPILE);
  17. glColor3f(0.0, 1.0, 0.0);
  18. glRectf(0.0, -1.0, 1.0, 1.0);
  19.     glEndList();
  20. }
  21. static void Reshape(int width, int height)
  22. {
  23.     glViewport(0, 0, width, height);
  24.     glMatrixMode(GL_PROJECTION);
  25.     glLoadIdentity();
  26.     glMatrixMode(GL_MODELVIEW);
  27.     glLoadIdentity();
  28. }
  29. static void Draw(void)
  30. {
  31.     glPushMatrix();
  32.     glScalef(0.8, 0.8, 1.0);
  33.     glClear(GL_COLOR_BUFFER_BIT);
  34.     glCallList(thing1);
  35.     glAccum(GL_LOAD, 0.5);
  36.     glClear(GL_COLOR_BUFFER_BIT);
  37.     glCallList(thing2);
  38.     glAccum(GL_ACCUM, 0.5);
  39.     glAccum(GL_RETURN, 1.0);
  40.     glPopMatrix();
  41. glutSwapBuffers();
  42. }
  43. int main(int argc, char **argv)
  44. {
  45.     GLenum type;
  46.     glutInit(&argc, argv);
  47.     glutInitDisplayMode(GLUT_RGB | GLUT_ACCUM | GLUT_DOUBLE);
  48.     glutInitWindowSize(300, 300);
  49.     glutCreateWindow("Accum Test");
  50.     Init();
  51.     glutReshapeFunc(Reshape);
  52.     glutDisplayFunc(Draw);
  53.     glutMainLoop();
  54. }