OES_draw_buffers_indexed: blendEquationSeparateiOES() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2022.
Note: This feature is available in Web Workers.
The blendEquationSeparateiOES() method of the OES_draw_buffers_indexed WebGL extension sets the RGB and alpha blend equations separately for a particular draw buffer.
See OES_draw_buffers_indexed.blendEquationiOES() for setting RGB and alpha together and WebGLRenderingContext.blendEquationSeparate() for the WebGL 1 version of this method.
Syntax
blendEquationSeparateiOES(buf, modeRGB, modeAlpha)
Parameters
buf-
An integer
ispecifying the draw buffer associated with the constantgl.DRAW_BUFFERi, see WebGL draw buffer constants. modeRGB-
A
GLenumspecifying how source and destination RGB color components are combined. Accepts the same enums as themodeRGBparameter inWebGLRenderingContext.blendEquationSeparate(). modeAlpha-
A
GLenumspecifying how source and destination alpha color components are combined. Accepts the same enums as themodeAlphaparameter inWebGLRenderingContext.blendEquationSeparate().
Return value
None (undefined).
Exceptions
- If
bufis not a valid value, agl.INVALID_VALUEerror is thrown. - If
modeRGBormodeAlphaare not set to one of the possible values, agl.INVALID_ENUMerror is thrown.
Examples
>Setting and getting blend equations
The following sets the blend equations for the draw buffers gl.DRAW_BUFFER0 (call where buf is 0) and gl.DRAW_BUFFER1 (call where buf is 1).
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendEquationSeparateiOES(0, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
ext.blendEquationSeparateiOES(1, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
To get the blend equations for gl.DRAW_BUFFER0 and gl.DRAW_BUFFER1, query the BLEND_EQUATION_RGB and BLEND_EQUATION_ALPHA constants using WebGL2RenderingContext.getIndexedParameter():
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 0);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 0);
// for gl.DRAW_BUFFER1
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 1);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 1);
Specifications
| Specification |
|---|
| WebGL OES_draw_buffers_indexed Extension Specification> |