
https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glClear.xhtml
名称
glClear ---- 清理指定的缓存。
原型
void glClear(GLbitfield mask);
参数
mask
按位的“或”(OR) 的掩码来代表要清理的缓存。有三个掩码 GL_COLOR_BUFFER_BIT
, GL_DEPTH_BUFFER_BIT
, 和 GL_STENCIL_BUFFER_BIT
。
描述
glClear 设置window 窗口的 bitplane 区域值,根据 mask 来用 glClearColor,glClearDepth 和 glClearStencil 函数设置的值来设置缓存。要同时清理多个缓存通过 glDrawBuffer 来选择多个缓存。
像素的 ownership 测试,scissor 测试,dithering(抖动),与写缓存掩码都影响 glClear 操作。scissor 框的绑定可以设置清理的区域。
glClear 通过单个参数的 bit 位的“或”(OR)位运算来取掩码,取到的掩码值代表要清理的缓存:
掩码值有如下:
- GL_COLOR_BUFFER_BIT
代表当前启用的写入颜色缓存。 - GL_DEPTH_BUFFER_BIT
代表深度缓存。 - GL_STENCIL_BUFFER_BIT
代表模板缓存。
注意
如果某个缓存没有内容,那么 glClear
清理这个缓存是没有效果的。
错误
如果如果 bit 都是不前面说的三个定义的 mask 掩码 bits 定义,那么生成 GL_INVALID_VALUE
错误。