OpenGL 双重缓冲实例
在 OpenGL 中,双重缓冲是一种提高渲染效率的技术。 它用于避免当前正在显示的图像被修改,保持屏幕画面的稳定性。 在每次渲染结束后,绘制的图像都会保存在一个离屏的缓存中,并在下一次渲染时将其加载到屏幕上。这样,用户就能够看到完整的渲染效果,而不是一个不断刷新的图像。
下面是一个基于 OpenGL 双重缓冲的实例:
#include <GL/glut.h>
void display()
{
// 清除屏幕颜色并设置背景颜色为黑色
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
// 绘制三角形,并设置颜色为红色
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(-0.5f, -0.5f);
glVertex2f( 0.5f, -0.5f);
glVertex2f( 0.0f, 0.5f);
glEnd();
// 切换双重缓冲
glutSwapBuffers();
}
int main(int argc, char** argv)
{
// 初始化 GLUT 库
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowSize(400, 400);