WebGL2RenderingContext: clearBuffer[fiuv]() 方法

Baseline 广泛可用 *

此功能已成熟,并可在多种设备和浏览器版本上运行。自 2021 年 9 月起,所有浏览器均已支持此功能。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

WebGL2RenderingContext.clearBuffer[fiuv]() 方法属于 WebGL 2 API,用于清除当前绑定的帧缓冲区的缓冲区。

语法

js
clearBufferfv(buffer, drawbuffer, values)
clearBufferfv(buffer, drawbuffer, values, srcOffset)

clearBufferiv(buffer, drawbuffer, values)
clearBufferiv(buffer, drawbuffer, values, srcOffset)

clearBufferuiv(buffer, drawbuffer, values)
clearBufferuiv(buffer, drawbuffer, values, srcOffset)

clearBufferfi(buffer, drawbuffer, depth, stencil)

参数

buffer

一个 GLenum,指定要清除的缓冲区。可能的值包括:

  • gl.COLOR: 颜色缓冲区。
  • gl.DEPTH: 深度缓冲区。
  • gl.STENCIL: 模板缓冲区。
  • gl.DEPTH_STENCIL: 清除深度和模板缓冲区(与 clearBufferfi 一起使用)。
drawBuffer

一个 GLint,指定要清除的绘制缓冲区。

一个 Array,包含 GLintGLuintGLfloat 值,或者一个 Int32ArrayUint32ArrayFloat32Array,指定要清除到的值。

depth

一个 GLfloat,指定要将深度渲染缓冲区清除到的值。

stencil

一个 GLint,指定要将模板渲染缓冲区清除到的值。

返回值

无(undefined)。

示例

js
gl.clearBufferiv(gl.COLOR, 0, new Int32Array([r, g, b, a]));
gl.clearBufferuiv(gl.COLOR, 0, new Uint32Array([r, g, b, a]));
gl.clearBufferfv(gl.COLOR, 0, new Float32Array([r, g, b, a]));
gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 0.0]);
gl.clearBufferfi(gl.DEPTH_STENCIL, 0, 1.0, 0);

规范

规范
WebGL 2.0 规范
# 3.7.11

浏览器兼容性

另见