WebGLRenderingContext: blendEquationSeparate() method

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

js
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 (undefined).

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:

js
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.

js
gl.getParameter(gl.BLEND_EQUATION_RGB) === gl.FUNC_ADD;
// true

gl.getParameter(gl.BLEND_EQUATION_ALPHA) === gl.FUNC_ADD;
// true

Specifications

Specification
WebGL Specification
# 5.14.3

Browser compatibility

BCD tables only load in the browser

See also