前、后和其他缓冲区
OpenGL 在帧缓冲区中存储和操作像素数据。 帧缓冲区由一组逻辑缓冲区组成:颜色、深度、累积和模具缓冲区。 颜色缓冲区本身由一组逻辑缓冲区组成;此集可以包括前左、前-右、后-左、后-右和一些辅助缓冲区。 特定像素格式或 OpenGL 实现可能无法提供所有这些缓冲区。 例如,Microsoft 在 Windows 中 OpenGL 实现的当前版本不支持立体图像,因此像素格式不能具有左右颜色缓冲区。 此外,当前版本不支持辅助缓冲区。 有关 OpenGL 缓冲区及其上运行的 OpenGL 函数的详细信息,请参阅 OpenGL 参考手册 和 OpenGL 编程指南。
Microsoft 在 Windows 中实现 OpenGL 支持双重缓冲图像。 这是一种技术,应用程序将像素绘制到屏幕外缓冲区,然后在图像准备好显示时,将屏幕外缓冲区的内容复制到屏幕缓冲区。 双重缓冲可实现平滑的图像更改,这对于动画图像尤其重要。
使用双重缓冲的应用程序可以使用两个颜色缓冲区:一个前缓冲区和一个后缓冲区。 默认情况下,绘图命令将定向到后台缓冲区 (屏幕外缓冲区) ,而前缓冲区显示在屏幕上。 当屏幕外缓冲区准备好显示时,你将调用 SwapBuffers,Windows 会将屏幕外缓冲区的内容复制到屏幕外缓冲区。
泛型实现使用与设备无关的位图 (DIB) 作为后台缓冲区,使用屏幕显示作为前缓冲区。 硬件设备及其驱动程序可能使用不同的方法。
双缓冲是像素格式属性。 若要请求像素格式的双重缓冲,请在调用 ChoosePixelFormat时在 PIXELFORMATDESCRIPTOR 数据结构中设置PFD_DOUBLEBUFFER标志。
OpenGL 核心函数 glDrawBuffer 选择要写入和清除的缓冲区。
相关主题