Back to the OpenGL extension cross reference

GL_EXT_index_material


XXX - Not complete yet!!!

Name


    EXT_index_material

Name Strings


    GL_EXT_index_material

Version


    $Date: 1996/11/21 00:52:24 $ $Revision: 1.4 $

Number


    94

Dependencies


    None

Overview


    This extends color index lighting to include a way for the current
index to contribute to the color index produced by lighting. This
works much like ColorMaterial does for RGBA lighting by allowing
one or more color index material properties to be attached to the
current index.

The color index lighting formula is also modified so that the lit
color index may be bitwise shifted in order to allow greater control
when using lighting and fog together in color index mode.

New Procedures and Functions


    void IndexMaterialEXT (enum face, enum mode )

New Tokens


    Accepted by the <cap> parameter of Enable, Disable, IsEnabled,
and by the <pname> parameter of GetBooleanv, GetIntegerv,
GetFloatv, and GetDoublev:

INDEX_MATERIAL_EXT

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

INDEX_MATERIAL_PARAMETER_EXT
INDEX_MATERIAL_FACE_EXT

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


    In Section 2.13.5 "Color Index Lighting", the discussion of color
index lighting is continued after the computation of the final color
index as follows:

Arithmetic on Color Indexes

After a final color index is computed, the index is converted to a
fixed-point value with an unspecified number of bits to the right
of the binary point, the nearest fixed-point value is selected.
Then the fixed-point value is shifted by |index_shift| bits, left
if index_shift is > 0 and right otherwise. In either case the
shift is zero filled. Then the signed integer offset index_offset
is added to the index. index_shift and index_offset are set using
the Material Command with <pname> set to INDEX_SHIFT and
INDEX_OFFSET respectively.

Index Material

It is possible to attach one or more color index material properties
to the current index, so that they continuously track its value. This
behavior is enabled and disabled by calling Enable or Disable with
the symbolic constant INDEX_MATERIAL_EXT. The command that controls
which of these modes is selected is

void IndexMaterial (enum face, enum mode);

<face> is one of FRONT, BACK, or FRONT_AND_BACK, indicating whether
the front material, back material, or both are affected by the current
index. <mode> must be INDEX_OFFSET. The replacements made to
material properties are permanent; the replaced values remain until
changed by either sending a new index or by setting a new material
value when IndexMaterial is not currently enabled to override that
particular value. When INDEX_MATERIAL is enabled, the indicated
parameter or parameters always track the current index.

Section 2.13.6 "Clamping or Masking" is modified slightly as
follows: "For a color index, if lighting is enabled, the color index
is already in fixed-point, otherwise, the index is first converted
to fixed-point..."

Additions to Chapter 3 of the 1.1 Specification (Rasterization)


    None

Additions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations and the Frame Buffer)


    None

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


    None

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


    None

Additions to the GLX Specification


    XXX - Not complete yet!!!

GLX Protocol


    XXX - Not complete yet!!!

Errors


    INVALID_ENUM is generated if IndexMaterial parameter <face> is not FRONT,
BACK, or FRONT_AND_BACK.

INVALID_ENUM is generated if IndexMaterial parameter <mode> is not
INDEX_OFFSET.

INVALID_OPERATION is generated if IndexMaterial is called between
execution of Begin and the corresponding execution of End.

New State


								Initial
Get Value Get Command Type Value Attrib
--------- ----------- ---- ------- ------

INDEX_MATERIAL_EXT IsEnabled B False lighting/enable
INDEX_MATERIAL_PARAMETER_EXT GetIntegerv Z1 INDEX_OFFSET lighting
INDEX_MATERIAL_FACE_EXT GetIntegerv Z3 FRONT_AND_BACK lighting
INDEX_SHIFT GetMaterialfv 2 x R 0 lighting
INDEX_OFFSET GetMaterialfv 2 x R 0 lighting

New Implementation Dependent State


    None

Implementation Support


   List of OpenGL implementations supporting the GL_EXT_index_material extension

Original File


   Original text file for the GL_EXT_index_material extension


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