OES_draw_buffers_indexed:blendEquationiOES() 方法

Baseline 已广泛支持

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

OES_draw_buffers_indexed WebGL 扩展的 blendEquationiOES() 方法用于为特定的绘图缓冲区设置 RGB 混合方程和 alpha 混合方程。

请参阅 OES_draw_buffers_indexed.blendEquationSeparateiOES() 来单独设置 RGB 和 alpha,以及 WebGLRenderingContext.blendEquation() 来获取此方法的 WebGL 1 版本。

语法

js
blendEquationiOES(buf, mode)

参数

buf

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

模式

一个 GLenum,指定如何组合源颜色和目标颜色。接受与 WebGLRenderingContext.blendEquation()mode 参数相同的枚举值。

返回值

无(undefined)。

异常

  • 如果 buf 不是有效值,则会抛出 gl.INVALID_VALUE 错误。
  • 如果 mode 不是可能值之一,则会抛出 gl.INVALID_ENUM 错误。

示例

设置和获取混合方程

你可以像这样设置 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 绘图缓冲区的混合方程:

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

ext.blendEquationiOES(0, gl.FUNC_ADD);
ext.blendEquationiOES(1, gl.FUNC_SUBTRACT);

要获取 gl.DRAW_BUFFER0gl.DRAW_BUFFER1 绘图缓冲区的混合方程,请使用 WebGL2RenderingContext.getIndexedParameter() 查询 BLEND_EQUATION_RGBBLEND_EQUATION_ALPHA 常量。

js
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 0);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 0);

// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 1);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 1);

规范

规范
WebGL OES_draw_buffers_indexed 扩展规范

浏览器兼容性

另见