Back to the OpenGL extension cross reference

GL_EXT_blend_color


Name


    EXT_blend_color

Name Strings


    GL_EXT_blend_color

Version


    $Date: 1995/03/31 04:40:19 $ $Revision: 1.7 $

Number


    2

Dependencies


    None

Overview


    Blending capability is extended by defining a constant color that can
be included in blending equations. A typical usage is blending two
RGB images. Without the constant blend factor, one image must have
an alpha channel with each pixel set to the desired blend factor.

New Procedures and Functions


    void BlendColorEXT(clampf red,
clampf green,
clampf blue,
clampf alpha);

New Tokens


    Accepted by the <sfactor> and <dfactor> parameters of BlendFunc:

CONSTANT_COLOR_EXT 0x8001
ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
CONSTANT_ALPHA_EXT 0x8003
ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004

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

BLEND_COLOR_EXT 0x8005

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


    None

Additions to Chapter 3 of the GL Specification (Rasterization)


    None

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


    The commands that control blending are now BlendFunc and BlendColorEXT.
A constant color to be used in the blending equation is specified by
BlendColorEXT. The four parameters are clamped to the range [0,1]
before being stored. The default value for the constant blending color
is (0,0,0,0).

The constant color can be used in both the source and destination
blending factors. Four lines are added to table 4.1 and table 4.2:

Value Blend 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, 1, 1, 1) - (Rd/Kr,Gd/Kg,Bd/Kb,Ad/Ka)
SRC_ALPHA (As, As, As, As) / Ka
ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (As, As, As, As) / Ka
DST_ALPHA (Ad, Ad, Ad, Ad) / Ka
ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (Ad, Ad, Ad, Ad) / Ka
CONSTANT_COLOR_EXT (Rc, Gc, Bc, Ac) NEW
ONE_MINUS_CONSTANT_COLOR_EXT (1, 1, 1, 1) - (Rc, Gc, Bc, Ac) NEW
CONSTANT_ALPHA_EXT (Ac, Ac, Ac, Ac) NEW
ONE_MINUS_CONSTANT_ALPHA_EXT (1, 1, 1, 1) - (Ac, Ac, Ac, Ac) NEW
SRC_ALPHA_SATURATE (f, f, f, 1)

Table 4.1: Values controlling the source blending function and the
source blending values they compute. Ka = 2**m - 1, where m is the
number of bits in the A color component. Kr, Kg, and Kb are similarly
determined by the number of bits in the R, G, and B color components.
f = min(As, 1-Ad) / Ka.

Value Blend 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, 1, 1, 1) - (Rs/Kr,Gs/Kg,Bs/Kb,As/Ka)
SRC_ALPHA (As, As, As, As) / Ka
ONE_MINUS_SRC_ALPHA (1, 1, 1, 1) - (As, As, As, As) / Ka
DST_ALPHA (Ad, Ad, Ad, Ad) / Ka
ONE_MINUS_DST_ALPHA (1, 1, 1, 1) - (Ad, Ad, Ad, Ad) / Ka
CONSTANT_COLOR_EXT (Rc, Gc, Bc, Ac) NEW
ONE_MINUS_CONSTANT_COLOR_EXT (1, 1, 1, 1) - (Rc, Gc, Bc, Ac) NEW
CONSTANT_ALPHA_EXT (Ac, Ac, Ac, Ac) NEW
ONE_MINUS_CONSTANT_ALPHA_EXT (1, 1, 1, 1) - (Ac, Ac, Ac, Ac) NEW

Table 4.2: Values controlling the destination blending function and
the destination blending values they compute. Ka = 2**m - 1, where
m is the number of bits in the A color component. Kr, Kg, and Kb
are similarly determined by the number of bits in the R, G, and B
color components.

Rc, Gc, Bc, and Ac are the four components of the constant blending
color. These blend factors are not scaled by Kr, Kg, Kb, and Ka,
because they are already in the range [0,1].

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


    None

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


    None

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:

BlendColorEXT
2 20 rendering command length
2 4096 rendering command opcode
4 FLOAT32 red
4 FLOAT32 green
4 FLOAT32 blue
4 FLOAT32 alpha

Errors


    INVALID_OPERATION is generated if BlendColorEXT is called between
execution of Begin and the corresponding call to End.

New State


						Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------
BLEND_COLOR_EXT GetFloatv C (0,0,0,0) color-buffer

New Implementation Dependent State


    None

Implementation Support


   List of OpenGL implementations supporting the GL_EXT_blend_color extension

Original File


   Original text file for the GL_EXT_blend_color extension


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