1.前言
绘制一个旋转的方块,主要为了说明glutSwapBuffers()函数的用法。
同时也为了学习如何使用GLUT控制输入设备,并打开或关闭空闲处理函数。
2.OpenGL编程及程序剖析
/**************************************************************** *Rendering a rotating square,display how to use glutSwapBuffers() *Author:Ziheng H. Shen @ Graduate School of Tsinghua Univ. ****************************************************************/ #include <vgl.h> static GLfloat spin = 0.0; void init(void) { glClearColor(0.0,0.0,0.0,0.0); //清空当前所偶有颜色 glShadeModel(GL_FLAT); //设置着色模式 } void display(void) { glClear(GL_COLOR_BUFFER_BIT); //清除viewport的缓冲区 glPushMatrix();//将当前矩阵保存入堆栈顶(保存当前矩阵) glRotatef(spin,0.0,0.0,1.0); glColor3f(1.0,0.0,0.0); glRectf(-25.0,-25.0,25.0,25.0); glPopMatrix(); glutSwapBuffers();//实现双缓冲技术,交换两个缓冲区指针。 } void spinDisplay(void) { spin = spin + 2.0; if(spin > 360.0) spin = spin - 360.0; glutPostRedisplay(); // 标记当前窗口需要