Back to the OpenGL extension cross reference

GL_EXT_blend_func_separate


Name


    EXT_blend_func_separate

Name Strings


    GL_EXT_blend_func_separate

Version


    Date: 04/06/1999  Version 1.3

Number


    173

Dependencies


    None

Overview


    Blending capability is extended by defining a function that allows
independent setting of the RGB and alpha blend factors for blend
operations that require source and destination blend factors. It
is not always desired that the blending used for RGB is also applied
to alpha.

New Procedures and Functions


    void BlendFuncSeparateEXT(enum sfactorRGB,
enum dfactorRGB,
enum sfactorAlpha,
enum dfactorAlpha);

New Tokens


    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:

BLEND_DST_RGB_EXT 0x80C8
BLEND_SRC_RGB_EXT 0x80C9
BLEND_DST_ALPHA_EXT 0x80CA
BLEND_SRC_ALPHA_EXT 0x80CB


Additions to Chapter 2 of the 1.2 GL Specification (OpenGL Operation)


    None

Additions to Chapter 3 of the 1.2 GL Specification (Rasterization)


    None

Additions to Chapter 4 of the 1.2 GL Specification (Per-Fragment Operations and the Framebuffer)


    The RGB and alpha blend factors are separate.  The function
BlendFuncSeparateEXT allows the specification of the four factors.
Table 4.1 and Table 4.2 are modified as follows:

Value RGB Factors Alpha Factors
------------------ ---------------------------- -------------
ZERO (0, 0, 0) 0
ONE (1, 1, 1) 1
DST_COLOR (Rd/Kr, Gd/Kg, Bd/Kb) Ad/Ka
ONE_MINUS_DST_COLOR (1-Rd/Kr, 1-Gd/Kg, 1-Bd/Kb) 1-Ad/Ka
SRC_ALPHA (As/Ka, As/Ka, As/Ka) As/Ka
ONE_MINUS_SRC_ALPHA (1-As/Ka, 1-As/Ka, 1-As/Ka) 1-As/Ka
DST_ALPHA (Ad/Ka, Ad/Ka, Ad/Ka) Ad/Ka
ONE_MINUS_DST_ALPHA (1-Ad/Ka, 1-Ad/Ka, 1-Ad/Ka) 1-Ad/Ka
CONSTANT_COLOR (Rc, Gc, Bc) Ac
ONE_MINUS_CONSTANT_COLOR (1-Rc, 1-Gc, 1-Bc) 1-Ac
CONSTANT_ALPHA (Ac, Ac, Ac) Ac
ONE_MINUS_CONSTANT_ALPHA (1-Ac, 1-Ac, 1-Ac) 1-Ac
SRC_ALPHA_SATURATE (f, f, f) 1

Value RGB Factors Alpha Factors
------------------ ---------------------------- -------------
ZERO (0, 0, 0) 0
ONE (1, 1, 1) 1
SRC_COLOR (Rs/Kr, Gs/Kg, Bs/Kb) As/Ka
ONE_MINUS_SRC_COLOR (1-Rs/Kr, 1-Gs/Kg, 1-Bs/Kb) 1-As/Ka
SRC_ALPHA (As/Ka, As/Ka, As/Ka) As/Ka
ONE_MINUS_SRC_ALPHA (1-As/Ka, 1-As/Ka, 1-As/Ka) 1-As/Ka
DST_ALPHA (Ad/Ka, Ad/Ka, Ad/Ka) Ad/Ka
ONE_MINUS_DST_ALPHA (1-Ad/Ka, 1-Ad/Ka, 1-Ad/Ka) 1-Ad/Ka
CONSTANT_COLOR (Rc, Gc, Bc) Ac
ONE_MINUS_CONSTANT_COLOR (1-Rc, 1-Gc, 1-Bc) 1-Ac
CONSTANT_ALPHA (Ac, Ac, Ac) Ac
ONE_MINUS_CONSTANT_ALPHA (1-Ac, 1-Ac, 1-Ac) 1-Ac
SRC_ALPHA_SATURATE (f, f, f) 1

The commands that control blending are

void BlendFunc(enum src, enum dst)
void BlendFuncSeparateEXT(enum sfactorRGB, enum dfactorRGB,
enum sfactorAlpha, enum dfactorAlpha);

The BlendFunc command sets both source factors (RGB and alpha) and
destination factors (RGB and alpha) while BlendFuncSeparateEXT sets
the RGB factors independently from the alpha factors.

Additions to Chapter 5 of the 1.2 GL Specification (Special Functions)


    None

Additions to Chapter 6 of the 1.2 GL Specification (State and State Requests)


    The state required is four integers indicating the source and
destination blending functions for RGB and alpha. The initial state
for both source functions is ONE. The initial state for both
destination functions is ZERO.

Additions to the GLX Specification


    None

GLX Protocol


    A new GL rendering command is added. The following command is sent
to the server as part of a glXRender request:

BlendFuncSeperateEXT
2 20 rendering command length
2 4134 rendering command opcode
4 ENUM sfactorRGB
4 ENUM dfactorRGB
4 ENUM sfactorAlpha
4 ENUM dfactorAlpha

Errors


    GL_INVALID_ENUM is generated if either sfactorRGB, dfactorRGB,
sfactorAlpha, or dfactorAlpha is not an accepted value.

GL_INVALID_OPERATION is generated if glBlendFunc is executed between
the execution of glBegin and the corresponding execution of glEnd.

New State


    The get values BLEND_SRC and BLEND_DST return the RGB source and
destination factor, respectively.

Initial
Get Value Get Command Type Value Attribute
--------- ----------- ---- ------- ------------
BLEND_SRC_RGB_EXT GetFloatv Z ONE color-buffer
BLEND_DST_RGB_EXT GetFloatv Z ZERO color-buffer
BLEND_SRC_ALPHA_EXT GetFloatv Z ONE color-buffer
BLEND_DST_ALPHA_EXT GetFloatv Z ZERO color-buffer

New Implementation Dependent State


    None

Implementation Support


   List of OpenGL implementations supporting the GL_EXT_blend_func_separate extension

Original File


   Original text file for the GL_EXT_blend_func_separate extension


Page generated on Sun Nov 20 18:37:48 2005