2011-03-29 116 views

回答

9

GL_COLOR_BUFFER_BITGL_DEPTH_BUFFER_BIT不是函数,它们是常数。您可以使用它们告诉glClear()您希望清除哪些缓冲区 - 在您的示例中,深度缓冲区和“当前启用彩色写入的缓冲区”。您也可以通过GL_ACCUM_BUFFER_BIT来清除累积缓冲区和/或GL_STENCIL_BUFFER_BIT以清除模板缓冲区。

当使用库时,常量的实际值对你无关紧要 - 重要的实现细节是每个常量的二进制表示不相互重叠。正是这种特性使您可以将多个常量的按位或运算结果传递给glClear()

查看glClear() documention了解更多详情。

+4

我在问这些常量为什么我们使用它们我想了解更多关于它们的信息! – 2011-03-29 23:08:19

+0

@穆罕默德 - 你是什么意思更多的信息?文档中有你需要知道的一切。你有更具体的问题吗? – 2011-03-29 23:09:19

+1

文档告诉我GL_COLOR_BUFFER_BIT 指示当前为写入颜色 启用的缓冲区。 GL_DEPTH_BUFFER_BIT 指示深度缓冲区。 – 2011-03-29 23:12:38

0

调用glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)将清除OpenGL颜色和深度缓冲区(或任何其他缓冲区或缓冲区组合)。 OpenGL是一个状态机,所以用干净的平板开始每个帧是一个好习惯。