## Name

glBlendEquation — specify the equation used for both the RGB blend equation and the Alpha blend equation

## C Specification

`void glBlendEquation(` | GLenum mode`)`;

`void glBlendEquationi(` | GLuint buf,
| GLenum mode`)`;

## Parameters

`buf`

  for `glBlendEquationi`, specifies the index of the draw buffer for which to set the blend equation.

`mode`

  specifies how source and destination colors are combined. It must be `GL_FUNC_ADD`, `GL_FUNC_SUBTRACT`, `GL_FUNC_REVERSE_SUBTRACT`, `GL_MIN`, `GL_MAX`.

## Description

The blend equations determine how a new pixel (the ''source'' color) is combined with a pixel already in the framebuffer (the ''destination'' color). This function sets both the RGB blend equation and the alpha blend equation to a single equation. `glBlendEquationi` specifies the blend equation for a single draw buffer whereas `glBlendEquation` sets the blend equation for all draw buffers.

These equations use the source and destination blend factors specified by either glBlendFunc or glBlendFuncSeparate. See glBlendFunc or glBlendFuncSeparate for a description of the various blend factors.

In the equations that follow, source and destination color components are referred to as R s G s B s A s and R d G d B d A d , respectively. The result color is referred to as R r G r B r A r . The source and destination blend factors are denoted s R s G s B s A and d R d G d B d A , respectively. For these equations all color components are understood to have values in the range 0 1 .

Mode | RGB Components | Alpha Component
--- | --- | ---
`GL_FUNC_ADD` | Rr = R s ⁢ s R + R d ⁢ d R Gr = G s ⁢ s G + G d ⁢ d G Br = B s ⁢ s B + B d ⁢ d B | Ar = A s ⁢ s A + A d ⁢ d A
`GL_FUNC_SUBTRACT` | Rr = R s ⁢ s R - R d ⁢ d R Gr = G s ⁢ s G - G d ⁢ d G Br = B s ⁢ s B - B d ⁢ d B | Ar = A s ⁢ s A - A d ⁢ d A
`GL_FUNC_REVERSE_SUBTRACT` | Rr = R d ⁢ d R - R s ⁢ s R Gr = G d ⁢ d G - G s ⁢ s G Br = B d ⁢ d B - B s ⁢ s B | Ar = A d ⁢ d A - A s ⁢ s A
`GL_MIN` | Rr = min ⁡ R s R d Gr = min ⁡ G s G d Br = min ⁡ B s B d | Ar = min ⁡ A s A d
`GL_MAX` | Rr = max ⁡ R s R d Gr = max ⁡ G s G d Br = max ⁡ B s B d | Ar = max ⁡ A s A d

The results of these equations are clamped to the range 0 1 .

The `GL_MIN` and `GL_MAX` equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The `GL_FUNC_ADD` equation is useful for antialiasing and transparency, among other things.

Initially, both the RGB blend equation and the alpha blend equation are set to `GL_FUNC_ADD`.

## Notes

The `GL_MIN`, and `GL_MAX` equations do not use the source or destination factors, only the source and destination colors.

## Errors

`GL_INVALID_ENUM` is generated if `mode` is not one of `GL_FUNC_ADD`, `GL_FUNC_SUBTRACT`, `GL_FUNC_REVERSE_SUBTRACT`, `GL_MAX`, or `GL_MIN`.

`GL_INVALID_VALUE` is generated by `glBlendEquationi` if `buf` is greater than or equal to the value of `GL_MAX_DRAW_BUFFERS`.

## Associated Gets

glGet with an argument of `GL_BLEND_EQUATION_RGB`

glGet with an argument of `GL_BLEND_EQUATION_ALPHA`

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glBlendEquation` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔
`glBlendEquationi` | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔ | ✔ | ✔

## See Also

glBlendColor, glBlendFunc glBlendFuncSeparate

## Copyright

Copyright © 1991-2006 Silicon Graphics, Inc. Copyright © 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.