The WebGLRenderingContext.blendEquationSeparate()
method of the WebGL API is used to set the RGB blend equation and alpha blend equation separately.
The blend equation determines how a new pixel is combined with a pixel already in the WebGLFramebuffer
.
Syntax
void gl.blendEquationSeparate(modeRGB, modeAlpha);
Parameters
modeRGB
- A
GLenum
specifying how the red, green and blue components of source and destination colors are combined. Must be either:gl.FUNC_ADD
: source + destination (default value),gl.FUNC_SUBTRACT
: source - destination,gl.FUNC_REVERSE_SUBTRACT
: destination - source,- When using the
EXT_blend_minmax
extension:ext.MIN_EXT
: Minimum of source and destination,ext.MAX_EXT
: Maximum of source and destination.
- When using a WebGL 2 context, the following values are available additionally:
gl.MIN
: Minimum of source and destination,gl.MAX
: Maximum of source and destination.
modeAlpha
- A
GLenum
specifying how the alpha component (transparency) of source and destination colors are combined. Must be either:gl.FUNC_ADD
: source + destination (default value),gl.FUNC_SUBTRACT
: source - destination,gl.FUNC_REVERSE_SUBTRACT
: destination - source,- When using the
EXT_blend_minmax
extension:ext.MIN_EXT
: Minimum of source and destination,ext.MAX_EXT
: Maximum of source and destination.
- When using a WebGL 2 context, the following values are available additionally:
gl.MIN
: Minimum of source and destination,gl.MAX
: Maximum of source and destination.
Return value
None.
Exceptions
If mode is not one of the three possible values, a gl.INVALID_ENUM
error is thrown.
Examples
To set the blend equations, use:
gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_SUBTRACT);
To get the current blend equations, query the BLEND_EQUATION
, BLEND_EQUATION_RGB
and BLEND_EQUATION_ALPHA
constants which return gl.FUNC_ADD
, gl.FUNC_SUBTRACT
, gl.FUNC_REVERSE_SUBTRACT
, or if the EXT_blend_minmax
is enabled: ext.MIN_EXT
or ext.MAX_EXT
.
gl.getParameter(gl.BLEND_EQUATION_RGB) === gl.FUNC_ADD; // true gl.getParameter(gl.BLEND_EQUATION_ALPHA) === gl.FUNC_ADD; // true
Specifications
Specification | Status | Comment |
---|---|---|
WebGL 1.0 The definition of 'blendEquationSeparate' in that specification. |
Recommendation | Initial definition for WebGL. |
OpenGL ES 2.0 The definition of 'glBlendEquationSeparate' in that specification. |
Standard | Man page of the OpenGL ES 2.0 API. |
OpenGL ES 3.0 The definition of 'glBlendEquationSeparate' in that specification. |
Standard | Man page of the OpenGL ES 3.0 API. |
Browser compatibility
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | 9 | 4.0 | 12 | 11 | 12 | 5.1 |
WebGL2 | 56 | 51.0 | (No) | (No) | 43 | (No) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | 25 | (Yes) | (Yes) | 11 | 12 | 8.1 |
WebGL2 | (No) | (No) | (No) | 51.0 | (No) | (No) | (No) |