WebGLRenderingContext: clear() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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

WebGLRenderingContext.clear() 方法是 WebGL API 的一部分,用于将缓冲区清除为预设值。

预设值可以通过 clearColor()clearDepth()clearStencil() 来设置。

剪刀盒 (scissor box)、抖动 (dithering) 和缓冲区写入掩码 (buffer writemasks) 会影响 clear() 方法。例如,如果通过 colorMask()depthMask()stencilMask() 禁用了缓冲区写入,则 clear() 对相应的缓冲区没有影响。

语法

js
clear(mask)

参数

mask

一个 GLbitfield 位掩码,指示要清除的缓冲区。可能的值为:

  • gl.COLOR_BUFFER_BIT
  • gl.DEPTH_BUFFER_BIT
  • gl.STENCIL_BUFFER_BIT

返回值

无(undefined)。

异常

如果 mask 不是列出的可能值之一,则会抛出 gl.INVALID_ENUM 错误。

示例

clear() 方法接受多个值。

js
gl.clear(gl.DEPTH_BUFFER_BIT);
gl.clear(gl.DEPTH_BUFFER_BIT | gl.COLOR_BUFFER_BIT);

要获取当前的清除值,请查询 COLOR_CLEAR_VALUEDEPTH_CLEAR_VALUESTENCIL_CLEAR_VALUE 常量。

js
gl.getParameter(gl.COLOR_CLEAR_VALUE);
gl.getParameter(gl.DEPTH_CLEAR_VALUE);
gl.getParameter(gl.STENCIL_CLEAR_VALUE);

规范

规范
WebGL 规范
# 5.14.11

浏览器兼容性

另见