web api instance method
OES_draw_buffers_indexed: blendFunciOES() method
The blendFunciOES() method of the OES_draw_buffers_indexed WebGL extension defines which function is used when blending pixels for a particular draw buffer.
See blendFuncSeparateiOES() for setting RGB and alpha components separately and blendFunc() for the WebGL 1 version of this method.
Syntax
blendFunciOES(buf, src, dst)
Parameters
buf- : An integer
ispecifying the draw buffer associated with the constantgl.DRAW_BUFFERi, see WebGL draw buffer constants.
- : An integer
src- : A
GLenumspecifying a multiplier for the source blending factors. Accepts the same enums as thesfactorparameter inblendFunc().
- : A
dst- : A
GLenumspecifying a multiplier for the destination blending factors. Accepts the same enums as thedfactorparameter inblendFunc().
- : A
Return value
None (undefined).
Exceptions
- If
bufis not a valid value, agl.INVALID_VALUEerror is thrown. - If
srcordstare not one of the possible values, agl.INVALID_ENUMerror is thrown. - The same blending limitations as for
blendFunc()apply: If a constant color and a constant alpha value are used together as source and destination factors, agl.INVALID_ENUMerror is thrown.
Examples
Setting and getting blend functions
You can set the blend functions for the gl.DRAW_BUFFER0 and gl.DRAW_BUFFER1 draw buffers like this:
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendFunciOES(0, gl.ONE, gl.ONE);
ext.blendFunciOES(1, gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
To get the blend functions for the gl.DRAW_BUFFER0 and gl.DRAW_BUFFER1 draw buffers, query the BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB, and BLEND_DST_ALPHA constants using getIndexedParameter():
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 0);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 0);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 0);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 0);
// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 1);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 1);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 1);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 1);
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.