Light | Dark

glBlendEquation

Name

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

C Specification

void glBlendEquation(GLenum mode);

Parameters

mode

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

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.

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

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

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.

Errors

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

Associated Gets

glGet with an argument of GL_BLEND_EQUATION_RGB

glGet with an argument of GL_BLEND_EQUATION_ALPHA

Think you can improve this page? Edit this page on GitHub.