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