Provided by: opengl-4-man-doc_1.0~svn33624-1_all bug

NAME

       glBlendFunc - specify pixel arithmetic

C SPECIFICATION

       void glBlendFunc(GLenum sfactor, GLenum dfactor);

       void glBlendFunci(GLuint buf, GLenum sfactor, GLenum dfactor);

PARAMETERS

       buf
           For glBlendFunci, specifies the index of the draw buffer for which to set the blend
           function.

       sfactor
           Specifies how the red, green, blue, and alpha source blending factors are computed.
           The initial value is GL_ONE.

       dfactor
           Specifies how the red, green, blue, and alpha destination blending factors are
           computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE,
           GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR,
           GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA.
           GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and
           GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.

DESCRIPTION

       Pixels can be drawn using a function that blends the incoming (source) RGBA values with
       the RGBA values that are already in the frame buffer (the destination values). Blending is
       initially disabled. Use glEnable() and

       glDisable with argument GL_BLEND to enable and disable blending.

       glBlendFunc defines the operation of blending for all draw buffers when it is enabled.
       glBlendFunci defines the operation of blending for a single draw buffer specified by buf
       when enabled for that draw buffer.  sfactor specifies which method is used to scale the
       source color components.  dfactor specifies which method is used to scale the destination
       color components. Both parameters must be one of the following symbolic constants:
       GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR,
       GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA,
       GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA,
       GL_ONE_MINUS_CONSTANT_ALPHA, GL_SRC_ALPHA_SATURATE, GL_SRC1_COLOR,
       GL_ONE_MINUS_SRC1_COLOR, GL_SRC1_ALPHA, and GL_ONE_MINUS_SRC1_ALPHA. The possible methods
       are described in the following table. Each method defines four scale factors, one each for
       red, green, blue, and alpha. In the table and in subsequent equations, first source,
       second source and destination color components are referred to as R s0 G s0 B s0 A s0, R
       s1 G s1 B s1 A s1 and R d G d B d A d, respectively. The color specified by glBlendColor()
       is referred to as R c G c B c A c. They are understood to have integer values between 0
       and k R k G k B k A, where

       k c = 2 m c - 1

       and m R m G m B m A is the number of red, green, blue, and alpha bitplanes.

       Source and destination scale factors are referred to as s R s G s B s A and d R d G d B d
       A. The scale factors described in the table, denoted f R f G f B f A, represent either
       source or destination factors. All scale factors have range 0 1.

       ┌────────────────────────────┬────────────────────────────────────────────┐
       │ Parameterf                                          │
       │                            │                                     R      │
       │                            │                                            │
       │                            │                                     f      │
       │                            │                                     G      │
       │                            │                                            │
       │                            │                                     f      │
       │                            │                                     B      │
       │                            │                                            │
       │                            │                                     f      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ZERO                     │ 0                                          │
       │                            │                                 0          │
       │                            │                                 0          │
       │                            │                                 0          │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE                      │ 1                                          │
       │                            │                                 1          │
       │                            │                                 1          │
       │                            │                                 1          │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_SRC_COLOR                │ R                                          │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     R      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     G      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     G      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     B      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     B      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_SRC_COLOR      │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         R  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         R  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         G  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         G  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         B  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         B  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_DST_COLOR                │ R                                          │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     R      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     G      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     G      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     B      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     B      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_DST_COLOR      │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         R  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         R  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         G  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         G  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         B  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         B  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_SRC_ALPHA                │ A                                          │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s0     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_SRC_ALPHA      │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s0 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_DST_ALPHA                │ A                                          │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     d      │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_DST_ALPHA      │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         d  │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_CONSTANT_COLOR           │ R                                          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 G          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 B          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 A          │
       │                            │                                 c          │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_CONSTANT_COLOR │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                     R      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     G      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     B      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     c      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_CONSTANT_ALPHA           │ A                                          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 A          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 A          │
       │                            │                                 c          │
       │                            │                                            │
       │                            │                                 A          │
       │                            │                                 c          │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_CONSTANT_ALPHA │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     c      │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     c      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_SRC_ALPHA_SATURATE       │ i                                          │
       │                            │                                 i          │
       │                            │                                 i          │
       │                            │                                 1          │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_SRC1_COLOR               │ R                                          │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     R      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     G      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     G      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     B      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     B      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_SRC1_COLOR     │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         R  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         R  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         G  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         G  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         B  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         B  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_SRC1_ALPHA               │ A                                          │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                     A      │
       │                            │                                     s1     │
       │                            │                                            │
       │                            │                                     k      │
       │                            │                                     A      │
       ├────────────────────────────┼────────────────────────────────────────────┤
       │GL_ONE_MINUS_SRC1_ALPHA     │ 1                                          │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                     1      │
       │                            │                                            │
       │                            │                                 -          │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       │                            │                                            │
       │                            │                                            │
       │                            │                                            │
       │                            │                                         A  │
       │                            │                                         s1 │
       │                            │                                            │
       │                            │                                         k  │
       │                            │                                         A  │
       └────────────────────────────┴────────────────────────────────────────────┘

       In the table,

       i = min ⁡ A s k A - A d k A

       To determine the blended RGBA values of a pixel, the system uses the following equations:

       R d = min ⁡ k R R s ⁢ s R + R d ⁢ d R G d = min ⁡ k G G s ⁢ s G + G d ⁢ d G B d = min ⁡ k
       B B s ⁢ s B + B d ⁢ d B A d = min ⁡ k A A s ⁢ s A + A d ⁢ d A

       Despite the apparent precision of the above equations, blending arithmetic is not exactly
       specified, because blending operates with imprecise integer color values. However, a blend
       factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend
       factor equal to 0 reduces its multiplicand to 0. For example, when sfactor is
       GL_SRC_ALPHA, dfactor is GL_ONE_MINUS_SRC_ALPHA, and A s is equal to k A, the equations
       reduce to simple replacement:

       R d = R s G d = G s B d = B s A d = A s

EXAMPLES

       Transparency is best implemented using blend function (GL_SRC_ALPHA,
       GL_ONE_MINUS_SRC_ALPHA) with primitives sorted from farthest to nearest. Note that this
       transparency calculation does not require the presence of alpha bitplanes in the frame
       buffer.

       Blend function (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) is also useful for rendering
       antialiased points and lines in arbitrary order.

       Polygon antialiasing is optimized using blend function (GL_SRC_ALPHA_SATURATE, GL_ONE)
       with polygons sorted from nearest to farthest. (See the glEnable(),

       glDisable reference page and the GL_POLYGON_SMOOTH argument for information on polygon
       antialiasing.) Destination alpha bitplanes, which must be present for this blend function
       to operate correctly, store the accumulated coverage.

NOTES

       Incoming (source) alpha is correctly thought of as a material opacity, ranging from 1.0 (K
       A), representing complete opacity, to 0.0 (0), representing complete transparency.

       When more than one color buffer is enabled for drawing, the GL performs blending
       separately for each enabled buffer, using the contents of that buffer for destination
       color. (See glDrawBuffer().)

       When dual source blending is enabled (i.e., one of the blend factors requiring the second
       color input is used), the maximum number of enabled draw buffers is given by
       GL_MAX_DUAL_SOURCE_DRAW_BUFFERS, which may be lower than GL_MAX_DRAW_BUFFERS.

ERRORS

       GL_INVALID_ENUM is generated if either sfactor or dfactor is not an accepted value.

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

ASSOCIATED GETS

       glGet() with argument GL_BLEND_SRC_RGB

       glGet() with argument GL_BLEND_SRC_ALPHA

       glGet() with argument GL_BLEND_DST_RGB

       glGet() with argument GL_BLEND_DST_ALPHA

       glIsEnabled() with argument GL_BLEND

VERSION SUPPORT

       ┌─────────────┬───────────────────────────────────────────────────────────────────────┐
       │             │                OpenGL Version                                         │
       ├─────────────┼─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┤
       │Function2.02.13.03.13.23.34.04.14.24.34.44.5 │
       │/            │     │     │     │     │     │     │     │     │     │     │     │     │
       │Feature      │     │     │     │     │     │     │     │     │     │     │     │     │
       │Name         │     │     │     │     │     │     │     │     │     │     │     │     │
       ├─────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glBlendFunc  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       ├─────────────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
       │glBlendFunci │  -  │  -  │  -  │  -  │  -  │  -  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │  ✔  │
       └─────────────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘

SEE ALSO

       glBlendColor(), glBlendEquation(), glBlendFuncSeparate(), glClear(), glDrawBuffer(),
       glEnable(), glLogicOp(), glStencilFunc()

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

COPYRIGHT

       Copyright © 1991-2006 Silicon Graphics, Inc.
       Copyright © 2010-2014 Khronos Group

[FIXME: source]                             01/03/2018                            GLBLENDFUNC(3G)