#include <GL/glut.h>
void Draw()
{
glClear(GL_COLOR_BUFFER_BIT); //当前缓冲区清除
glRectf(-0.5f, -0.5f, 0.5f, 0.5f); //绘制一个矩形
glFlush(); //强制刷新缓冲,保证绘图命令将被执行
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv); //初始化
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); //设置显示方式
glutInitWindowPosition(100, 100); //设置窗口位置
glutInitWindowSize(400, 400); //设置窗口大小
glutCreateWindow("HelloOpenGL"); //创建窗口
glutDisplayFunc(&Draw); //注册绘图函数
glutMainLoop();
return 0;
}
关于glClear函数的补充说明
函数原型:
void glClear(GLbitfield mask);
参数说明:
GLbitfield:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位
GL_COLOR_BUFFER_BIT: 当前可写的颜色缓冲
GL_DEPTH_BUFFER_BIT: 深度缓冲
GL_ACCUM_BUFFER_BIT: 累积缓冲
GL_STENCIL_BUFFER_BIT: 模板缓冲