15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_light_texture
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_light_texture
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Last Modified Date: September 26, 1998
125bd8deadSopenharmony_ci    Author Revision: $Header: //depot/main/doc/registry/extensions/EXT/light_texture.spec#15 $
135bd8deadSopenharmony_ci
145bd8deadSopenharmony_ciNumber
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ci    117
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ciDependencies
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ci    OpenGL 1.1 is required.
215bd8deadSopenharmony_ci    EXT_fragment_lighting is required.
225bd8deadSopenharmony_ci    EXT_multitexture affects the definition of this extension.
235bd8deadSopenharmony_ci    SGIX_shadow affects the definition of this extension.
245bd8deadSopenharmony_ci    SGIX_color_range affects the definition of this extension.
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciOverview
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    This extension defines a general mechanism for substituting the
295bd8deadSopenharmony_ci    fragment color computed during texture environment processing in
305bd8deadSopenharmony_ci    place of other fragment attributes such as the fragment normal, or
315bd8deadSopenharmony_ci    as sources for some of the computations in the fragment processing
325bd8deadSopenharmony_ci    pipeline, for example as material or light parameters in the
335bd8deadSopenharmony_ci    fragment lighting computations.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    Cf ----------------------+
375bd8deadSopenharmony_ci                             |                 +-> to lighting parameters
385bd8deadSopenharmony_ci                             v                 |
395bd8deadSopenharmony_ci    +------------+        +--------+     +-------------+
405bd8deadSopenharmony_ci    |            |        |        |     |             |
415bd8deadSopenharmony_ci    | texel      |------->| texenv |-----| texture     |---> Cf' (to Light Environment
425bd8deadSopenharmony_ci    | generation |        |        |     | application |          or Fog)
435bd8deadSopenharmony_ci    |            |        |        |     |             |
445bd8deadSopenharmony_ci    +------------+        +--------+     +-------------+
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ciPatent Note
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci    To the extent that SGI has patent rights that are unavoidably
505bd8deadSopenharmony_ci    infringed by all implementations of this extension, SGI will, upon
515bd8deadSopenharmony_ci    request, grant a license under such patent rights to the requesting
525bd8deadSopenharmony_ci    party subject to reasonable terms and conditions, and without
535bd8deadSopenharmony_ci    incremental charge or fee. Such license shall be non-exclusive, and
545bd8deadSopenharmony_ci    non-transferable, and shall be limited to implementations of the
555bd8deadSopenharmony_ci    extension in combination with any conformance certified
565bd8deadSopenharmony_ci    implementation of the OpenGL API. Such license is expressly
575bd8deadSopenharmony_ci    contingent upon a grant back of a non-exclusive, royalty-free,
585bd8deadSopenharmony_ci    perpetual, worldwide license to SGI and its OpenGL licensees under
595bd8deadSopenharmony_ci    the requesting party's patent rights that are unavoidably infringed
605bd8deadSopenharmony_ci    by all implementations of this extension or OpenGL.
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciIssues
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    *  normal3 rather than normal?
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    *  other parameters, spotlight fall off, ...
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    *  implications of extended range colors. (do we clamp to [0,1]?)
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    *  TexturePath or DirectTexture rather than ApplyTexture?
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    *  special handling for alpha or luminance textures? (colormask?)
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    *  more tokens for driving multiple inputs, e.g. AMBIENT_DIFFUSE_AND_SPECULAR
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    *  normals need to be in the range [-1,1]
775bd8deadSopenharmony_ci        
785bd8deadSopenharmony_ci        when a texture is used as a normal, its components are scaled
795bd8deadSopenharmony_ci        and biased to the range [-1,1].
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ciNew Procedures and Functions
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    void ApplyTextureEXT(enum mode);
855bd8deadSopenharmony_ci    void TextureLightEXT(enum pname)
865bd8deadSopenharmony_ci    void TextureMaterialEXT(enum face, enum mode);
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ciNew Tokens
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    Accepted by the <mode> parameter of ApplyTextureEXT:
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    FRAGMENT_MATERIAL_EXT                       0x8349
935bd8deadSopenharmony_ci    FRAGMENT_NORMAL_EXT                         0x834A
945bd8deadSopenharmony_ci    FRAGMENT_DEPTH_EXT                          0x8452
955bd8deadSopenharmony_ci    FRAGMENT_COLOR_EXT                          0x834C
965bd8deadSopenharmony_ci
975bd8deadSopenharmony_ci    (*note*: FRAGMENT_DEPTH_EXT value changed from 0x834B on promotion
985bd8deadSopenharmony_ci    from SGIX, to avoid collision with EXT_fog_coord).
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci    Accepted by the <pname> parameter of TextureLightEXT:
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    ATTENUATION_EXT                             0x834D
1035bd8deadSopenharmony_ci    SHADOW_ATTENUATION_EXT                      0x834E
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv,
1065bd8deadSopenharmony_ci    and GetDoublev:
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    TEXTURE_APPLICATION_MODE_EXT                0x834F
1095bd8deadSopenharmony_ci    TEXTURE_LIGHT_EXT                           0x8350
1105bd8deadSopenharmony_ci    TEXTURE_MATERIAL_FACE_EXT                   0x8351
1115bd8deadSopenharmony_ci    TEXTURE_MATERIAL_PARAMETER_EXT              0x8352
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci    None
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization)
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci    Immediately before section 3.9 Fog:
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    Section 3.X Texture Application
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    The command
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci    ApplyTextureEXT(enum mode);
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    determines how the color produced as a result of texture
1295bd8deadSopenharmony_ci    environment processing is used for subsequent fragment
1305bd8deadSopenharmony_ci    operations. Table 3.X.1 summarizes the interpretation of color
1315bd8deadSopenharmony_ci    values for the values of the <mode> parameter.
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ci    --
1355bd8deadSopenharmony_ci    FRAGMENT_COLOR_EXT      color is used as fragment color value
1365bd8deadSopenharmony_ci    FRAGMENT_DEPTH_EXT      color is used as fragment depth value
1375bd8deadSopenharmony_ci    FRAGMENT_LIGHT0_EXT     color is specified parameter for fragment light 0
1385bd8deadSopenharmony_ci    ...
1395bd8deadSopenharmony_ci    FRAGMENT_LIGHTn_EXT     color is specified parameter for fragment light n
1405bd8deadSopenharmony_ci    FRAGMENT_MATERIAL_EXT   color is specified material parameter(s)
1415bd8deadSopenharmony_ci    FRAGMENT_NORMAL_EXT     color is used as fragment normal
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ci    Table 3.X.1 ApplyTextureEXT
1445bd8deadSopenharmony_ci    --
1455bd8deadSopenharmony_ci
1465bd8deadSopenharmony_ci    If <mode> is FRAGMENT_COLOR_EXT then the post-texture-environment
1475bd8deadSopenharmony_ci    color is used as the fragment color during later fragment
1485bd8deadSopenharmony_ci    computations.  This is the default behavior.  If <mode> is not
1495bd8deadSopenharmony_ci    FRAGMENT_COLOR_EXT then the fragment color is the
1505bd8deadSopenharmony_ci    pre-texture-environment color.
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ci    If <mode> is FRAGMENT_DEPTH_EXT then the red component of the
1535bd8deadSopenharmony_ci    post-texture-environment color replaces the depth value for the
1545bd8deadSopenharmony_ci    fragment.
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ci    If <mode> is FRAGMENT_NORMAL_EXT then the R, G, and B components
1575bd8deadSopenharmony_ci    of the post-texture-environment color are used to compute the 
1585bd8deadSopenharmony_ci    components nx, ny, and nz of the fragment normal vector as follows:
1595bd8deadSopenharmony_ci    
1605bd8deadSopenharmony_ci            nx = 2*R-1
1615bd8deadSopenharmony_ci            ny = 2*G-1
1625bd8deadSopenharmony_ci            nz = 2*B-1
1635bd8deadSopenharmony_ci    
1645bd8deadSopenharmony_ci    In effect, the post-texture-environment color components are scaled
1655bd8deadSopenharmony_ci    and biased so that their range is [-1,1].
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci    If <mode> is one of FRAGMENT_LIGHT0_EXT .. FRAGMENT_LIGHTn_EXT
1685bd8deadSopenharmony_ci    then the post-texture-environment color substitutes a fragment
1695bd8deadSopenharmony_ci    lighting parameter of the light indicated by <mode> during the
1705bd8deadSopenharmony_ci    lighting computation for that fragment.  The substututed lighting
1715bd8deadSopenharmony_ci    parameter is specified by the TextureLightEXT command described
1725bd8deadSopenharmony_ci    in Section 3.X.2.
1735bd8deadSopenharmony_ci
1745bd8deadSopenharmony_ci    If <mode> is FRAGMENT_MATERIAL_EXT then the
1755bd8deadSopenharmony_ci    post-texture-environment color substitutes a fragment material
1765bd8deadSopenharmony_ci    parameter during the lighting computation for that fragment.  The
1775bd8deadSopenharmony_ci    fragment material parameter substituted is specified by the
1785bd8deadSopenharmony_ci    TextureMaterialEXT command described in Section 3.X.3.
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ci    If <mode> is changed from FRAGMENT_MATERIAL_EXT or
1815bd8deadSopenharmony_ci    FRAGMENT_LIGHT0_EXT .. FRAGMENT_LIGHTn_EXT to another value, the
1825bd8deadSopenharmony_ci    corresponding material or light parameter reverts back to the
1835bd8deadSopenharmony_ci    current state value for that parameter, i.e., the value most
1845bd8deadSopenharmony_ci    recently specified with one of the FragmentMaterial{T}[v]EXT or
1855bd8deadSopenharmony_ci    FragmentLight{T}[v]EXT commands.  In particular, the state
1865bd8deadSopenharmony_ci    parameters corresponding to the portions of the fragment lighting
1875bd8deadSopenharmony_ci    computations being substituted by the texture application mode
1885bd8deadSopenharmony_ci    continue to track the values specified by the
1895bd8deadSopenharmony_ci    FragmentMaterial{T}[v]EXT and FragmentLight{T}[v]EXT commands.
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    Section 3.X.2 Texture Applied to Light Parameters
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ci    The command
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci    TextureLightEXT(enum pname);
1975bd8deadSopenharmony_ci    
1985bd8deadSopenharmony_ci    determines which fragment light parameter is substituted with the
1995bd8deadSopenharmony_ci    post-texture-environment color when the texture application mode
2005bd8deadSopenharmony_ci    is one of the fragment lights. <pname> is one of AMBIENT, DIFFUSE,
2015bd8deadSopenharmony_ci    SPECULAR, or ATTENUATION_EXT. If <pname> is AMBIENT, DIFFUSE, or
2025bd8deadSopenharmony_ci    SPECULAR then the ambient, diffuse, or specular intensity
2035bd8deadSopenharmony_ci    parameter is substituted.  If <pname> is ATTENUATION_EXT, then
2045bd8deadSopenharmony_ci    the attenuation term att_i from equation (2.4) is subsituted with
2055bd8deadSopenharmony_ci    the value of the red component of the post-texture-environment
2065bd8deadSopenharmony_ci    color.  If <pname> is SHADOW_ATTENUATION_EXT then the fragment
2075bd8deadSopenharmony_ci    lighting equation is augmented with an additional attenuation term
2085bd8deadSopenharmony_ci    Shad_i:
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci    Cl =  Em
2115bd8deadSopenharmony_ci       + Am*As
2125bd8deadSopenharmony_ci       SUM{_i = 0 through Nf-1} {
2135bd8deadSopenharmony_ci       + Shad_i*Atten_i*SpotL_i*{
2145bd8deadSopenharmony_ci            + Am*Al_i
2155bd8deadSopenharmony_ci            + Dm*Dl_i*(N.L_i)
2165bd8deadSopenharmony_ci            + Sm*Sl_i*(N.H_i)^n
2175bd8deadSopenharmony_ci          }
2185bd8deadSopenharmony_ci        }
2195bd8deadSopenharmony_ci    
2205bd8deadSopenharmony_ci    with Shad_i coming from the red component of the post-texture-environment
2215bd8deadSopenharmony_ci    color.  If a post-environment texture color is not applied to
2225bd8deadSopenharmony_ci    SHADOW_ATTENUATION_EXT for fragment light <i>, then Shad_i is effectively
2235bd8deadSopenharmony_ci    1.0.
2245bd8deadSopenharmony_ci
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci    Section 3.X.3 Texture Applied to Material Parameters
2275bd8deadSopenharmony_ci
2285bd8deadSopenharmony_ci    The command
2295bd8deadSopenharmony_ci
2305bd8deadSopenharmony_ci    TextureMaterialEXT(enum face, enum mode);
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci    determines which fragment material parameter is substituted with
2335bd8deadSopenharmony_ci    the post-texture-environment color when the texture application
2345bd8deadSopenharmony_ci    mode is FRAGMENT_MATERIAL_EXT.  <face> is one of FRONT, BACK, or
2355bd8deadSopenharmony_ci    FRONT_AND_BACK, indicating whether the front material, back
2365bd8deadSopenharmony_ci    material, or both are affected by the current color.  <mode> is on
2375bd8deadSopenharmony_ci    of EMISSION, AMBIENT, DIFFUSE, SPECULAR, SHININESS, or
2385bd8deadSopenharmony_ci    AMBIENT_AND_DIFFUSE and specifies which material property or
2395bd8deadSopenharmony_ci    properties are substituted with the post-texture-environment
2405bd8deadSopenharmony_ci    color.  If <mode> is EMISSION, AMBIENT, DIFFUSE, or SPECULAR, then
2415bd8deadSopenharmony_ci    the value of e_cm, a_cm, d_cm, or s_cm from the fragment lighting
2425bd8deadSopenharmony_ci    equations, respectively, will be substituted with the
2435bd8deadSopenharmony_ci    post-texture-environment color.  If <mode> is AMBIENT_AND_DIFFUSE,
2445bd8deadSopenharmony_ci    both a_cm and d_cm will be substituted.  If <mode> is SHININESS,
2455bd8deadSopenharmony_ci    then s_rm will be substituted with 128.0*r, where r is the value
2465bd8deadSopenharmony_ci    of the red component of the post-texture-environment color.
2475bd8deadSopenharmony_ci
2485bd8deadSopenharmony_ci    Section 3.X.4 Interactions with multiple textures
2495bd8deadSopenharmony_ci
2505bd8deadSopenharmony_ci    The color computed during texture environment processing for each
2515bd8deadSopenharmony_ci    active texture can be independently controlled using
2525bd8deadSopenharmony_ci    ApplyTextureEXT.  In the initial state all texture application
2535bd8deadSopenharmony_ci    modes are FRAGMENT_COLOR_EXT and the logical flow of fragment
2545bd8deadSopenharmony_ci    information through the OpenGL pipeline is shown in figure 3.X.5
2555bd8deadSopenharmony_ci    with the result color of each texture environment stage serving as
2565bd8deadSopenharmony_ci    input for the following stage.
2575bd8deadSopenharmony_ci
2585bd8deadSopenharmony_ci
2595bd8deadSopenharmony_ci             Ct0        Ct1                Ctn
2605bd8deadSopenharmony_ci              |          |                  |
2615bd8deadSopenharmony_ci          +------+   +------+           +------+
2625bd8deadSopenharmony_ci          |      |   |      |           |      |
2635bd8deadSopenharmony_ci      Cf -| TE0  |-->| TE1  |--> ... -->| TEn  |--> Cf' (to fragment lighting/fog)
2645bd8deadSopenharmony_ci          |      |   |      |           |      |
2655bd8deadSopenharmony_ci          +------+   +------+           +------+
2665bd8deadSopenharmony_ci
2675bd8deadSopenharmony_ci    Figure 3.X.5
2685bd8deadSopenharmony_ci
2695bd8deadSopenharmony_ci    If the application mode for texture <i> is set to something other
2705bd8deadSopenharmony_ci    than FRAGMENT_COLOR_EXT, then the input for texture environment
2715bd8deadSopenharmony_ci    <i+1> becomes the original pre-texturing fragment color Cf.  If
2725bd8deadSopenharmony_ci    the application mode for texture <i> is returned to
2735bd8deadSopenharmony_ci    FRAGMENT_COLOR_EXT, then the input for texture environment <i+1>
2745bd8deadSopenharmony_ci    reverts back to the result from texture environment <i>.  If i is
2755bd8deadSopenharmony_ci    the last texture in the chain, then the pre-texturing fragment
2765bd8deadSopenharmony_ci    color Cf is used for all subsequent fragment processing.  Figure
2775bd8deadSopenharmony_ci    3.X.6 illustrates the case for the application mode for texture 1
2785bd8deadSopenharmony_ci    set to something other than FRAGMENT_COLOR_EXT.
2795bd8deadSopenharmony_ci
2805bd8deadSopenharmony_ci             Ct0        Ct1          Ct2             Ctn
2815bd8deadSopenharmony_ci              |          |    ^       |               |
2825bd8deadSopenharmony_ci          +------+   +------+ |   +------+        +------+
2835bd8deadSopenharmony_ci          |      |   |      | |   |      |        |      |
2845bd8deadSopenharmony_ci      Cf -| TE0  |-->| TE1  |-+ +-| TE2  | ... -->| TEn  |--> Cf'
2855bd8deadSopenharmony_ci       |  |      |   |      |   | |      |        |      |
2865bd8deadSopenharmony_ci       |  +------+   +------+   | +------+        +------+
2875bd8deadSopenharmony_ci       +------------------------+
2885bd8deadSopenharmony_ci
2895bd8deadSopenharmony_ci    Figure 3.X.6
2905bd8deadSopenharmony_ci
2915bd8deadSopenharmony_ci    It is possible for the application mode for more than one texture
2925bd8deadSopenharmony_ci    to refer to the identical parameter, for example, the FRONT
2935bd8deadSopenharmony_ci    DIFFUSE material color.  Such conflicts are resolved by having the
2945bd8deadSopenharmony_ci    lowest numbered, enabled, texture provide the color value and any
2955bd8deadSopenharmony_ci    higher numbered textures are ignored.  Note that when the
2965bd8deadSopenharmony_ci    application mode is FRAGMENT_LIGHTi_EXT, the TextureLightEXT
2975bd8deadSopenharmony_ci    <pname> parameter must be considered and when the application mode
2985bd8deadSopenharmony_ci    is FRAGMENT_MATERIAL_EXT that the <face> and <mode> parameters
2995bd8deadSopenharmony_ci    for TextureMaterialEXT must be considered.  A partial overlap
3005bd8deadSopenharmony_ci    with the TextureMaterialEXT <face> and <mode> parameter (e.g.,
3015bd8deadSopenharmony_ci    FRONT,DIFFUSE and FRONT_AND_BACK,DIFFUSE) is treated as a
3025bd8deadSopenharmony_ci    conflict.
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ci    If there is a conflict between a material parameter being substituted
3055bd8deadSopenharmony_ci    through FragmentColorMaterialEXT and TextureMaterialEXT, then the color
3065bd8deadSopenharmony_ci    value assocaiated with the texture is ignored and the pre-texture fragment
3075bd8deadSopenharmony_ci    color value is substituted.
3085bd8deadSopenharmony_ci
3095bd8deadSopenharmony_ci
3105bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
3115bd8deadSopenharmony_ciand the Framebuffer)
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests)
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ciAdditions to the GLX Specification
3185bd8deadSopenharmony_ci
3195bd8deadSopenharmony_ci    None
3205bd8deadSopenharmony_ci    
3215bd8deadSopenharmony_ciGLX Protocol
3225bd8deadSopenharmony_ci
3235bd8deadSopenharmony_ci    TBD
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ciDependencies on EXT_fragment_lighting
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    EXT_fragment_lighting is required since this extension pertains to how
3285bd8deadSopenharmony_ci    fragment lighting computations are performed and this extension makes no
3295bd8deadSopenharmony_ci    sense without fragment lighting.
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ciDependencies on SGIX_color_range
3325bd8deadSopenharmony_ci
3335bd8deadSopenharmony_ci    <this is a note, not a true dependency -db>
3345bd8deadSopenharmony_ci    The scale and bias of performed on colors when converting them
3355bd8deadSopenharmony_ci    to fragment normals is done regardless of whether SGIX_color_range is
3365bd8deadSopenharmony_ci    supported.
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ciDependencies on EXT_multitexture
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci    If EXT_multitexture is not supported only the single
3415bd8deadSopenharmony_ci    post-texture-environment color is available for substitution and the
3425bd8deadSopenharmony_ci    discussion of multiple textures in section 3.X.4 is void.
3435bd8deadSopenharmony_ci
3445bd8deadSopenharmony_ciDependencies on SGIX_shadow
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ci    If SGIX_shadow is not supported then this extension does not define
3475bd8deadSopenharmony_ci    the attenuation multiplier term SHADOW_ATTENUATION_EXT.  All discussion
3485bd8deadSopenharmony_ci    of this attenuation term is void.
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ciErrors
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci    INVALID_ENUM is generated if ApplyTextureEXT parameter <mode> is
3535bd8deadSopenharmony_ci    not FRAGMENT_MATERIAL_EXT, FRAGMENT_LIGHT0_EXT
3545bd8deadSopenharmony_ci    .. FRAGMENT_LIGHTn_EXT (where n is the value returned by querying
3555bd8deadSopenharmony_ci    MAX_FRAGMENT_LIGHTS_EXT), FRAGMENT_NORMAL_EXT,
3565bd8deadSopenharmony_ci    FRAGMENT_DEPTH_EXT, or FRAGMENT_COLOR_EXT.
3575bd8deadSopenharmony_ci
3585bd8deadSopenharmony_ci    INVALID_ENUM is generated if TextureLightEXT parameter <pname> is
3595bd8deadSopenharmony_ci    not AMBIENT, DIFFUSE, SPECULAR, ATTENUATION_EXT, or
3605bd8deadSopenharmony_ci    SHADOW_ATTENUATION_EXT.
3615bd8deadSopenharmony_ci
3625bd8deadSopenharmony_ci    INVALID_ENUM is generated if TextureMaterialEXT parameter <face>
3635bd8deadSopenharmony_ci    is not FRONT, BACK, or FRONT_AND_BACK or if parameter <mode> is
3645bd8deadSopenharmony_ci    not EMISSION, AMBIENT, DIFFUSE, SPECULAR, SHININESS, or
3655bd8deadSopenharmony_ci    AMBIENT_AND_DIFFUSE.
3665bd8deadSopenharmony_ci
3675bd8deadSopenharmony_ci    INVALID_OPERATION is generated if ApplyTextureEXT,
3685bd8deadSopenharmony_ci    TextureLightEXT, or TextureMaterialEXT is executed between
3695bd8deadSopenharmony_ci    execution of Begin and the corresponding execution of End.
3705bd8deadSopenharmony_ci
3715bd8deadSopenharmony_ciNew State
3725bd8deadSopenharmony_ci
3735bd8deadSopenharmony_ci    Get Value                           Get Command     Type    Initial Value       Attribute
3745bd8deadSopenharmony_ci    ---------                           -----------     ----    -------------       ---------
3755bd8deadSopenharmony_ci    TEXTURE_APPLICATION_MODE_EXT        GetIntegerv     Z10     FRAGMENT_COLOR_EXT  texture
3765bd8deadSopenharmony_ci    TEXTURE_LIGHT_EXT                   GetIntegerv     Z5      DIFFUSE             texture
3775bd8deadSopenharmony_ci    TEXTURE_MATERIAL_FACE_EXT           GetIntegerv     Z3      FRONT_AND_BACK      texture
3785bd8deadSopenharmony_ci    TEXTURE_MATERIAL_PARAMETER_EXT      GetIntegerv     Z6      AMBIENT_AND_DIFFUSE texture
3795bd8deadSopenharmony_ci
3805bd8deadSopenharmony_ciNew Implementation Dependent State
3815bd8deadSopenharmony_ci
3825bd8deadSopenharmony_ci    None
383