Name

    SGIX_impact_pixel_texture

Name Strings

    GL_SGIX_impact_pixel_texture

Version

    $Date: 1997/03/27 18:08:54 $ $Revision: 1.2 $

Number

    126

Dependencies

    GL_SGIX_pixel_texture

Overview

    This extension allows the Impact Graphics system to perform pixel texture
    operations with 4D textures, and accomplish the fourth interpolation with
    a two-pass operation, using the frame-buffer blend. This involves two
    new filter functions for the "q" dimension only, ceiling and floor, in
    addition to the nearest function, the default on Impact Graphics.  Also,
    there is an "alpha-shifting" function which prevents loss of precision in
    the alpha value used in the frame-buffer blend.

Issues

    *	Will this extension be needed/utilized by other platforms?

New Procedures and Functions

    None

New Tokens

    Accepted by the <mode> parameter of PixelTexGenSGIX:

	PIXEL_TEX_GEN_Q_CEILING_SGIX
	PIXEL_TEX_GEN_Q_FLOOR_SGIX
	PIXEL_TEX_GEN_Q_ROUND_SGIX
	PIXEL_TEX_GEN_ALPHA_LS_SGIX
	PIXEL_TEX_GEN_ALPHA_MS_SGIX

Additions to Chapter 3 of the 1.1 Specification (Rasterization)

    This extension, similar to the pixel_texture.spec modifies the
    "Conversion to Fragments" subsection of section 3.6.3 (Rasterization
    of Pixel Rectangles) of the GL Specification. Immediately following
    the text added by the pixel_texture.spec, insert the following:

    If the PixelTexGenSGIX mode is RGBA, the Impact graphics system cannot
    perform the "q" interpolation, so the correct result can be obtained
    by a two-pass operation using the frame-buffer blend to interpolate
    the two passes. The two passes use ceiling and floor functions,
    specified by calling TexParameter with the minfilter and maxfilter
    set to PIXEL_TEX_GEN_Q_CEILING_SGIX and PIXEL_TEX_GEN_Q_FLOOR_SGIX.
    These functions can be disabled by calling TexParameter with
    PIXEL_TEX_GEN_Q_ROUND_SGIX, the default.  To produce the correct
    fragment alpha for interpolation, the alpha-replace mode (see above)
    is used to replace the texture alpha by the pixel group's alpha
    component. This alpha needs to be shifted (scaled) by a value based
    on the texture "q" size; this can be done with the texture color table.
    For large values an additional shift is possible by calling
    PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_LS_SGIX. This will send the
    least significant 8 bits of a 12-bit alpha to the texture color table.
    The default is to send the most significant 8 bits by calling
    PixelTexGenSGIX with PIXEL_TEX_GEN_ALPHA_MS_SGIX.

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

    None

Errors

    None

New State

    Get Value			 Get Command	 Type Initial Value Attrib
    ---------			 -----------	 ---- ------------- ------
    PIXEL_TEX_GEN_Q_CEILING_SGIX GetTexParameter  Z3     NONE	     pixel
    PIXEL_TEX_GEN_Q_FLOOR_SGIX   GetTexParameter  Z3     NONE	     pixel
    PIXEL_TEX_GEN_Q_ROUND_SGIX   GetTexParameter  Z3     NONE	     pixel

New Implementation Dependent State

    None
