文章目录
- 名称
- 原型
- 参数
- 描述
- 注意
- 错误

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glClear.xhtml
OpenGL API - 笔记汇总
名称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
错误。