PART ONE



codes.cpp
#include <iostream>
#include <GL/freeglut.h>
using namespace std;
void BUFFER()
{
glClearColor(1, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
//glClearColor(1, 0, 0, 0);
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutCreateWindow("glClearColor");
glutDisplayFunc(BUFFER);
glutMainLoop();
return 0;
}
PART TWO
代码分析
1、对比glClearColor()在glClear()前后调用的情况,发现:
(1)在glClear()前调用:先设置需要使用的颜色,使用设置的颜色在BUFFER上初始化一个viewport,显示到SCREEN,故窗口显示红色。
(2)在glClear()后调用,在BUFFER上初始化一个黑色viewport后,设置BUFFER使用的颜色为红色。全屏后,使用设置的红色和窗口的大小重新绘制。
注:BUFFER会根据回调窗口的大小重新绘制需要显示的内容。
本文分析了在OpenGL代码中,glClearColor()在glClear()前后调用的不同效果,揭示了颜色设置与缓冲区初始化的关系,以及如何影响窗口显示。重点讨论了缓冲区刷新与窗口大小的关系。
1044

被折叠的 条评论
为什么被折叠?



