XXX - Not complete yet!!!

Name

    EXT_index_texture

Name Strings

    GL_EXT_index_texture

Version

    $Date: 2005/06/02 18:11:10 $ $Revision: 1.1 $

Number

    93

Dependencies

    EXT_paletted_texture is required

Overview

    This extends the definition of texturing so that it is supported
    in color index mode.  This extension builds on the notion of
    texture images which have color index internal formats which was
    introduced in EXT_paletted_texture.

    This extension also introduces a new texture environment function
    ADD which is useful for combining lighting and texturing in
    color index mode.

Issues

    * EXT_paletted_texture should probably have defined
        TEXTURE_BORDER_INDEX
        TEXTURE_INDEX_SIZE
      Should we go ahead and introduce them in this extension?

    * ADD is defined differently for RGBA mode in SGIX_texture_add_env
      Should we add TEXTURE_ENV_SHIFT and TEXTURE_ENV_OFFSET parameters
      so that the environment functions works similarly?  Probably not.

New Procedures and Functions

    None

New Tokens

    None

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

    None

Additions to Chapter 3 of the 1.1 Specification (Rasterization)

    In Section 3.8, the sentence "Texturing is specified only for RGBA
    mode; its use in color index mode is undefined." is deleted.  And
    the sentence "These details include specification of the image to
    be texture mapped, the means by which the image is filtered when
    applied to the primitive, and the function that determines what
    RGBA value is produced given a fragment color and an image value."
    is modified to read "...determine what RGBA or color index value
    is produced given a fragment color or index...".

    The remaining discussion of texturing is modified as per
    EXT_paletted_texture with the following modifications:

    The discussion of restrictions on the <internalFormat> parameter
    for CopyTexImage1D and CopyTexImage2D is modifies to read: "...except
    that <internalFormat> may not be specified as 1, 2, 3, or 4 nor may
    <internalFormat> be specified using one of the color index internal
    formats unless the GL is in color index mode."

    Use of texture palettes is supported in both RGBA mode and color
    index mode.  The texture palette is applied to color indexes extracted
    from the texture array only when the texture palette has a Luminance,
    Alpha, Luminance Alpha, Intensity, RGB, or RGBA internal format and
    the GL is in RGBA mode or when the texture palette has a color index
    internal format and the GL is in color index mode.  If both the
    texture image and the texture palette have color index internal
    formats and the GL is in RGBA mode, then the texture is inconsistent.

    In Section 3.8.5 "Texture Environments and Texture Functions", the
    sentence discussing possible environment parameters is modified to
    say: "...TEXTURE_ENV_MODE may be set to one of REPLACE, MODULATE,
    DECAL, BLEND, or ADD...".   Also Tables 3.10 and 3.11 are extended
    to include the following new row and column

        Cf is the index from the incoming fragment
        Ct is the filtered texture index
        Cv is the index computed by the texture environment function

    Base            REPLACE   MODULATE  DECAL     BLEND     ADD
    Internal Format Tex Func  Tex Func  Tex Func  Tex Func  Tex Func
    --------------- --------  --------  --------  --------  --------
    .               .         .         .         .         .
    .               .         .         .         .         undef
    .               .         .         .         .         .
    COLOR_INDEX     Cv=Ct     Cv=Cf*Ct  undef     undef     Cv=Cf+Ct
    .               .         .         .         .         .
    .               .         .         .         .         undef
    .               .         .         .         .         .

    In Section 3.8.6 "Texture Application", is modified to include
    a description of what happens in color index mode.  "In RGBA
    mode this function replaces the incoming fragment's R, G, B, and A
    values.  These are the color values passed to subsequent operations.
    In color index mode the resulting index is first masked (bitwise
    ANDed) with 2^n - 1, where n is the number of bits in a color in
    the color index buffer and then passed on to subsequent operations."

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

Dependencies on EXT_paletted_texture

    EXT_paletted_texture is required.  This extension depends on the
    notion of color index internal formats for texture images as introduced
    by EXT_paletted_texture.

    EXT_paletted_texture is modified by this extension by allowing texture
    palettes to be used in color index mode.

Errors

    None

New State

    None

New Implementation Dependent State

    None
