OES_draw_buffers_indexed: colorMaskiOES() 方法

Baseline 已广泛支持

此功能已成熟,可跨多个设备和浏览器版本使用。自 2022 年 12 月起,所有浏览器均已提供此功能。

OES_draw_buffers_indexed WebGL 扩展的 colorMaskiOES() 方法用于为特定的绘图缓冲区设置启用或禁用哪些颜色分量,以便进行绘制或渲染。它是 WebGL 1 的 WebGLRenderingContext.colorMask() 方法的索引版本。

语法

js
colorMaskiOES(buf, r, g, b, a)

参数

buf

一个整数 i,指定与常量 gl.DRAW_BUFFERi 关联的绘制缓冲区。请参阅 WebGL 绘制缓冲区常量

r

一个 GLboolean,指定是否应将红色颜色分量写入绘图缓冲区。

g

一个 GLboolean,指定是否应将绿色颜色分量写入绘图缓冲区。

b

一个 GLboolean,指定是否应将蓝色颜色分量写入绘图缓冲区。

a

一个 GLboolean,指定是否应将红色 Alpha(透明度)分量写入绘图缓冲区。

返回值

无(undefined)。

异常

  • 如果 bufrbga 的值无效,则会抛出 gl.INVALID_VALUE 错误。

示例

设置和获取颜色蒙版

您可以像这样为 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 绘图缓冲区设置颜色蒙版:

js
const ext = gl.getExtension("OES_draw_buffers_indexed");

ext.colorMaskiOES(0, 1, 0, 0, 0);
ext.colorMaskiOES(1, 0, 1, 0, 0);

要获取 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 绘图缓冲区的颜色蒙版,请使用 WebGL2RenderingContext.getIndexedParameter() 查询 COLOR_WRITEMASK 常量。

js
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 0);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 1);

规范

规范
WebGL OES_draw_buffers_indexed 扩展规范

浏览器兼容性

另见