使用OpenGL提供的双缓存技术,绘制一个旋转的正方形(动画)。
什么是双缓存技术?
我们可以这样理解,若将屏幕刷新的频率放慢到肉眼可见,如果不使用双缓存技术,那么当屏幕重新绘制时,绘制的过程人也是可以清除看到的,明显我们不希望这样。采用双缓存技术,就等于说画家有两块可擦画板,当第一块画板在观众面前显示时,画家立即在另外第二块画板上绘制另一幅画,屏幕刷新,画家立即将已经画好的画放到观众面前,再在幕后重绘第一块画板,这样只要画家绘画的过程就不会被观众看到,这时我们所期待的。
贴旋转正方形的代码:
#include<stdio.h>
#define GLUT_DISABLE_ATEXIT_HACK //不写这句话总运行出错,我也不知道为啥。。。
#include<gl/GLUT.h>
static GLfloat spin = 0.0;//static:静态全局变量,只要程序运行,内存中一直存在,文件内可见,文件外不可见
void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);//将清空颜色设置为黑
glShadeModel(GL_FLAT);//OpenGL1.0提供的接口。作用:设置着色模式。参数mode可以是GL_SMOOTH(默认值)或GL_FLAT。采用恒定着色时(即GL_FLAT