glBlendEquationSeparate(3) set the RGB blend equation and the alpha blend equation separately

C SPECIFICATION

void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
void glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);

PARAMETERS

buf

for glBlendEquationSeparatei, specifies the index of the draw buffer for which to set the blend equations.

modeRGB

specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.

modeAlpha

specifies the alpha blend equation, how the alpha component of the 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 determines how a new pixel (the ''source'' color) is combined with a pixel already in the framebuffer (the ''destination'' color). These functions specifie one blend equation for the RGB-color components and one blend equation for the alpha component. glBlendEquationSeparatei specifies the blend equations for a single draw buffer whereas glBlendEquationSeparate sets the blend equations for all draw buffers.

The blend 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 <div>
                            
                            
                                Rr
                                =
                                                                                                         R
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        R
                                                                        
                                                                        +
                                                                        R
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        R
                                                                        

                                
                            
                        </div>
                        <div>
                            
                            
                                Gr
                                =
                                                                                                         G
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        G
                                                                        
                                                                        +
                                                                        G
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        G
                                                                        

                                
                            
                        </div>
                        <div>
                            
                            
                                Br
                                =
                                                                                                         B
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        B
                                                                        
                                                                        +
                                                                        B
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        B
                                                                        

                                
                            
                        </div>
<div>
                            
                            
                                Ar
                                =
                                                                                                         A
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        A
                                                                        
                                                                        +
                                                                        A
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        A
                                                                        

                                
                            
                        </div>
GL_FUNC_SUBTRACT <div>
                            
                            
                                Rr
                                =
                                                                                                         R
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        R
                                                                        
                                                                        -
                                                                        R
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        R
                                                                        

                                
                            
                        </div>
                        <div>
                            
                            
                                Gr
                                =
                                                                                                         G
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        G
                                                                        
                                                                        -
                                                                        G
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        G
                                                                        

                                
                            
                        </div>
                        <div>
                            
                            
                                Br
                                =
                                                                                                         B
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        B
                                                                        
                                                                        -
                                                                        B
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        B
                                                                        

                                
                            
                        </div>
<div>
                            
                            
                                Ar
                                =
                                                                                                         A
                                                                        s
                                                                        
                                                                        
                                                                        s
                                                                        A
                                                                        
                                                                        -
                                                                        A
                                                                        d
                                                                        
                                                                        
                                                                        d
                                                                        A
                                                                        

                                
                            
                        </div>
GL_FUNC_REVERSE_SUBTRACT <div>
                                
                                
                                    Rr
                                    =
                                                                                                                     R
                                                                                d
                                                                                
                                                                                
                                                                                d
                                                                                R
                                                                                
                                                                                -
                                                                                R
                                                                                s
                                                                                
                                                                                
                                                                                s
                                                                                R
                                                                                

                                    
                                
                            </div>
                            <div>
                                
                                
                                    Gr
                                    =
                                                                                                                     G
                                                                                d
                                                                                
                                                                                
                                                                                d
                                                                                G
                                                                                
                                                                                -
                                                                                G
                                                                                s
                                                                                
                                                                                
                                                                                s
                                                                                G
                                                                                

                                    
                                
                            </div>
                            <div>
                                
                                
                                    Br
                                    =
                                                                                                                     B
                                                                                d
                                                                                
                                                                                
                                                                                d
                                                                                B
                                                                                
                                                                                -
                                                                                B
                                                                                s
                                                                                
                                                                                
                                                                                s
                                                                                B
                                                                                

                                    
                                
                            </div>
<div>
                                
                                
                                    Ar
                                    =
                                                                                                                     A
                                                                                d
                                                                                
                                                                                
                                                                                d
                                                                                A
                                                                                
                                                                                -
                                                                                A
                                                                                s
                                                                                
                                                                                
                                                                                s
                                                                                A
                                                                                

                                    
                                
                            </div>
GL_MIN <div>
                                
                                
                                    Rr
                                    =
                                    
                                        min
                                        ⁡
                                        
                                            
                                                R
                                                s
                                                
                                            
                                            
                                                R
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
                            <div>
                                
                                
                                    Gr
                                    =
                                    
                                        min
                                        ⁡
                                        
                                            
                                                G
                                                s
                                                
                                            
                                            
                                                G
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
                            <div>
                                
                                
                                    Br
                                    =
                                    
                                        min
                                        ⁡
                                        
                                            
                                                B
                                                s
                                                
                                            
                                            
                                                B
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
<div>
                                
                                
                                    Ar
                                    =
                                    
                                        min
                                        ⁡
                                        
                                            
                                                A
                                                s
                                                
                                            
                                            
                                                A
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
GL_MAX <div>
                                
                                
                                    Rr
                                    =
                                    
                                        max
                                        ⁡
                                        
                                            
                                                R
                                                s
                                                
                                            
                                            
                                                R
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
                            <div>
                                
                                
                                    Gr
                                    =
                                    
                                        max
                                        ⁡
                                        
                                            
                                                G
                                                s
                                                
                                            
                                            
                                                G
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
                            <div>
                                
                                
                                    Br
                                    =
                                    
                                        max
                                        ⁡
                                        
                                            
                                                B
                                                s
                                                
                                            
                                            
                                                B
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>
<div>
                                
                                
                                    Ar
                                    =
                                    
                                        max
                                        ⁡
                                        
                                            
                                                A
                                                s
                                                
                                            
                                            
                                                A
                                                d
                                                
                                            
                                        
                                    
                                
                            </div>

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 either modeRGB or modeAlpha 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 glBlendEquationSeparatei 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

COPYRIGHT

Copyright © 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. m[blue]http://opencontent.org/openpub/m[].