OpenGL的glClearColor和glClear改变背景颜色
结合以下两个函数
void glClearColor(GLclampf red,
GLclampf green,
GLclampf blue,
GLclampf alpha);
和
void glClear(GLbitfield mask);
前一个函数设置好清除颜色,后者利用前一个函数设置好的当前清除颜色设置窗口颜色
例如代码:
1 #include <stdio.h> 2 #include <gl/glut.h> 3 4 /* 5 功能描述:使用OpenGL简单画一个矩形。 6 */ 7 8 //输出模式,0-单缓存模式;非0双缓存模式 9 #define OUTPUT_MODE 1 10 11 void display(void) 12 { 13 //glClearColor函数设置好清除颜色,glClear利用glClearColor函数设置好的当前清除颜色设置窗口颜色 14 glClearColor(1.0, 1.0, 0.6, 1.0); 15 glClear(GL_COLOR_BUFFER_BIT); 16 17 glRectf(-0.5f, -0.5f, 0.5f, 0.5f); 18 19 if (OUTPUT_MODE == 0) { 20 glFlush();//单缓存GLUT_SINGLE时使用 21 } else { 22 glutSwapBuffers();//因为使用的是双缓存GLUT_DOUBLE,所以这里必须要交换缓存才会显示 23 } 24 } 25 26 int main(int argc, char *argv[]) 27 { 28 glutInit(&argc, argv); 29 30 glutInitDisplayMode(GLUT_RGB | (OUTPUT_MODE == 0 ? GLUT_SINGLE : GLUT_DOUBLE)); 31 glutInitWindowPosition(100, 100); 32 glutInitWindowSize(400, 400); 33 glutCreateWindow("第一个 OpenGL 程序"); 34 glutDisplayFunc(&display); 35 glutMainLoop(); 36 return 0; 37 }
运行结果: