名称
glClearBuffer — 清除当前绑定的绘制帧缓冲区的各个缓冲区
C规范
void glClearBufferiv( GLenum buffer, GLint drawBuffer, const GLint * value);
void glClearBufferuiv( GLenum buffer, GLint drawBuffer, const GLuint * value);
void glClearBufferfv( GLenum buffer, GLint drawBuffer, const GLfloat * value);
void glClearBufferfi( GLenum buffer, GLint drawBuffer, GLfloat depth, GLint stencil);
参数
buffer
指定要清除的缓冲区。
drawBuffer
指定要清除的特定绘图缓冲区。
value
对于彩色缓冲区,指向四元素向量的指针,该向量指定R,G,B和A值以清除缓冲区。 对于深度缓冲区,是指向要清除缓冲区的单个深度值的指针。 对于模板缓冲区,是指向单个模板值以清除缓冲区的指针。
depth
清除深度渲染缓冲区的值。
stencil
清除模板渲染缓冲区的值。
描述
glClearBuffer *将指定的缓冲区清除为指定的值。如果buffer是GL_COLOR,则通过将i作为drawBuffer来指定特定的绘制缓冲区GL_DRAWBUFFERi。在这种情况下,值指向一个指定R,G,B和A颜色的四元素矢量,以清除绘制缓冲区。 glClearBufferfv,glClearBufferiv和glClearBufferuiv命令应分别用于清除定点和浮点,有符号整数和无符号整数颜色缓冲区。定点颜色缓冲区的钳位和转换以与glClearColor相同的方式执行。
如果buffer为GL_DEPTH,则drawBuffer必须为零,并且值指向单个值以清除深度缓冲区。仅应使用glClearBufferfv清除深度缓冲区。定点深度缓冲区的钳位和转换以与glClearDepthf相同的方式执行。
如果buffer为GL_STENCIL,则drawBuffer必须为零,并且值指向单个值以清除模板缓冲区。仅应使用glClearBufferiv清除模板缓冲区。屏蔽和类型转换以与glClearStencil相同的方式执行。
glClearBufferfi可用于清除深度和模板缓冲区。 buffer必须为GL_DEPTH_STENCIL,drawBuffer必须为零。深度和模板分别是深度和模板值。
如果未定义值类型和要清除的缓冲区之间的转换,则glClearBuffer的结果不确定。但是,这不是错误。
错误
如果缓冲区不是GL_COLOR或GL_STENCIL,则glClearBufferiv会生成GL_INVALID_ENUM。
如果缓冲区不是GL_COLOR或GL_DEPTH,则glClearBufferfv会生成GL_INVALID_ENUM。
如果缓冲区不是GL_COLOR,则glClearBufferuiv会生成GL_INVALID_ENUM。
如果缓冲区不是GL_DEPTH_STENCIL,则glClearBufferfi会生成GL_INVALID_ENUM。
如果buffer为GL_COLOR并且drawBuffer大于或等于GL_MAX_DRAW_BUFFERS,则生成GL_INVALID_VALUE。
如果缓冲区为GL_DEPTH,GL_STENCIL或GL_DEPTH_STENCIL并且drawBuffer不为零,则生成GL_INVALID_VALUE。
API支持版本
函数名称 | 2.0 | 3.0 |
---|---|---|
glClearBufferiv | - | ✔ |
glClearBufferuiv | - | ✔ |
glClearBufferfv | - | ✔ |
glClearBufferfi | - | ✔ |
另见
glClearColor, glClearDepthf, glClearStencil, glClear
版本
https://www.khronos.org/registry/OpenGL-Refpages/es3.0/html/glClearBuffer.xhtml
Copyright © 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.