Back to the OpenGL extension cross reference

GL_SUN_global_alpha


Name


    SUN_global_alpha


Name Strings


    GL_SUN_global_alpha

Contact


    Jack Middleton, Sun (Jack.Middleton 'at' eng.sun.com)

Status


    Shipping

Version


    $Date: 1999/12/28 01:40:37 $ $Revision: 1.4 $
SUN Date: 99/06/25 13:05:48 Revision: 1.7

Number


   164

Dependencies


    OpenGL 1.2 is required


Overview


    Transparency is done in OpenGL using alpha blending. An alpha value
of 0.0 is used for fully transparent objects, while an alpha value
of 1.0 is used for fully opaque objects. A value of 0.25 is 75%
transparent, and so on.

OpenGL defines alpha as a component of the vertex color state.
Whenever a color is set, the alpha component is set along with the
red, green, and blue components. This means that transparency
can't be changed for primitives with per-vertex colors without
modifying the color of each vertex, replacing the old alpha
component with the new alpha component. This can be very expensive
for objects that are drawn using vertex arrays; it all but
precludes the use of display lists.

This extension defines a new global alpha attribute that can be
used to specify an alpha factor that is independent from the alpha
component of the color value. The global alpha factor is
multiplied by the fragment's alpha value after primitive
rasterization and prior to texture mapping, replacing the
fragment's alpha value. The global alpha extension is only
specified in RGBA mode and must be applied prior to any texture
mapping operation. It is enabled by a new GLOBAL_ALPHA flag.


New Procedures and Functions


    void GlobalAlphaFactorbSUN(byte factor);

void GlobalAlphaFactorsSUN(short factor);

void GlobalAlphaFactoriSUN(int factor);

void GlobalAlphaFactorfSUN(float factor);

void GlobalAlphaFactordSUN(double factor);

void GlobalAlphaFactorubSUN(ubyte factor);

void GlobalAlphaFactorusSUN(ushort factor);

void GlobalAlphaFactoruiSUN(uint factor);


New Tokens


    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled:

GLOBAL_ALPHA_SUN 0x81D9

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

GLOBAL_ALPHA_FACTOR_SUN 0x81DA


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


    None


Additions to Chapter 3 of the GL Specification (Rasterization)


    Global alpha processing is a new stage in the rasterization
pipeline that occurs after primitive rasterization (including
pixel rectangles and bitmaps) and before any texture mapping
operations. Global alpha processing is only done in RGBA mode.
It has no effect in color index mode.

Global alpha processing is enabled or disabled with the Enable and
Disable commands using the symbolic constant GLOBAL_ALPHA_SUN.
The global alpha factor is set using one of the GlobalAlphaFactor*SUN
commands listed above.

If global alpha processing is enabled, then the global alpha factor
is multiplied by the incoming fragment's alpha value. This
product replaces the fragment's alpha value and is passed to
subsequent stages in the pipeline.

Note that for geometric primitives, a functionally equivalent
method to that of performing a multiplication for each
fragment is to multiply the alpha values at each vertex of the
primitive by the global alpha factor prior to the primitive
rasterization step.


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


    None


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 / WGL / AGL Specifications


    None


GLX Protocol


    Eight rendering commands are sent to the server as part of
the glXRender request:

GlobalAlphaFactorbSUN
2 8 rendering command length
2 16391 rendering command opcode
1 INT8 code
1 INT8 pad
2 INT16 pad

GlobalAlphaFactorsSUN
2 8 rendering command length
2 16392 rendering command opcode
2 INT16 code
2 INT16 pad

GlobalAlphaFactoriSUN
2 8 rendering command length
2 16393 rendering command opcode
4 INT32 code

GlobalAlphaFactorfSUN
2 8 rendering command length
2 16394 rendering command opcode
4 FLOAT32 code

GlobalAlphaFactordSUN
2 12 rendering command length
2 16395 rendering command opcode
8 FLOAT64 code

GlobalAlphaFactorubSUN
2 8 rendering command length
2 16396 rendering command opcode
1 CARD8 code
1 CARD8 pad
2 CARD16 pad

GlobalAlphaFactorusSUN
2 8 rendering command length
2 16397 rendering command opcode
2 CARD16 code
2 CARD16 pad

GlobalAlphaFactoruiSUN
2 8 rendering command length
2 16398 rendering command opcode
4 CARD32 code


Errors


    None


New State


    Get Value				Get Command	Type	Initial Value
--------- ----------- ---- -------------
GLOBAL_ALPHA_FACTOR_SUN GetIntegerv, C 1
GetFloatv
GLOBAL_ALPHA_SUN IsEnabled B False

Get Value Attribute
--------- ---------
GLOBAL_ALPHA_FACTOR_SUN color-buffer
GLOBAL_ALPHA_SUN color-buffer/enable


Revision History


    6/25/99 Added fields from the new extension template.

Implementation Support


   List of OpenGL implementations supporting the GL_SUN_global_alpha extension

Original File


   Original text file for the GL_SUN_global_alpha extension


Page generated on Sun Nov 20 18:39:03 2005