15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_texture_env_combine
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_texture_env_combine
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Bimal Poddar, Intel (bimal.poddar 'at' intel.com)
125bd8deadSopenharmony_ci    Michael Gold, NVIDIA (gold 'at' nvidia.com)
135bd8deadSopenharmony_ci    Tom Frisinger, AMD (tom.frisinger 'at' amd.com)
145bd8deadSopenharmony_ci    Rick Hammerstone, AMD (rick.hammerstone 'at' amd.com)
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ciNotice
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ci    Copyright (c) 2001-2013 The Khronos Group Inc. Copyright terms at
195bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciSpecification Update Policy
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
245bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
255bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
265bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
275bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
285bd8deadSopenharmony_ci    described in more detail at
295bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciStatus
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    Complete. Approved by ARB on February 16, 2001.
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciVersion
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Last modified date: 2006/11/04
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciNumber
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    ARB Extension #17
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ciDependencies
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci    This extension is written against the OpenGL 1.2.1 Specification.
465bd8deadSopenharmony_ci    OpenGL 1.1 and ARB_multitexture are required for this extension.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciOverview
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    New texture environment function COMBINE_ARB allows programmable
515bd8deadSopenharmony_ci    texture combiner operations, including:
525bd8deadSopenharmony_ci
535bd8deadSopenharmony_ci        REPLACE                 Arg0
545bd8deadSopenharmony_ci        MODULATE                Arg0 * Arg1
555bd8deadSopenharmony_ci        ADD                     Arg0 + Arg1
565bd8deadSopenharmony_ci        ADD_SIGNED_ARB          Arg0 + Arg1 - 0.5
575bd8deadSopenharmony_ci        SUBTRACT_ARB            Arg0 - Arg1
585bd8deadSopenharmony_ci        INTERPOLATE_ARB         Arg0 * (Arg2) + Arg1 * (1-Arg2)
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    where Arg0, Arg1 and Arg2 are derived from
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       primary color of incoming fragment
635bd8deadSopenharmony_ci        TEXTURE                 texture color of corresponding texture unit
645bd8deadSopenharmony_ci        CONSTANT_ARB            texture environment constant color
655bd8deadSopenharmony_ci        PREVIOUS_ARB            result of previous texture environment; on
665bd8deadSopenharmony_ci                                texture unit 0, this maps to PRIMARY_COLOR_ARB
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    In addition, the result may be scaled by 1.0, 2.0 or 4.0.
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciIssues
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci 1. Should the explicit bias be removed in favor of an implcit bias as
735bd8deadSopenharmony_ci    part of a ADD_SIGNED_ARB function?
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ci    - RESOLVED: Yes. This pre-scale bias is a special case and will 
765bd8deadSopenharmony_ci      be treated as such.
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci 2. Should the primary color of the incoming fragment be available to
795bd8deadSopenharmony_ci    all texture environments?  Currently it is only available to the
805bd8deadSopenharmony_ci    texture environment of texture unit 0.
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    - RESOLVED: Yes. PRIMARY_COLOR_ARB has been added as an input 
835bd8deadSopenharmony_ci      source.
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci 3. Should textures from other texture units be allowed as sources?
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    - RESOLVED: NO. Even though this adds a lot of flexibility that 
885bd8deadSopenharmony_ci      folks can use today, there is not enough support amonst the
895bd8deadSopenharmony_ci      ARB participants to add it to the base spec.
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci 4. All of the 1.2 modes except BLEND can be expressed in terms of
925bd8deadSopenharmony_ci    this extension. Should texture color be allowed as a source for
935bd8deadSopenharmony_ci    Arg2, so all of the 1.2 modes can be expressed?  If so, should all
945bd8deadSopenharmony_ci    color sources be allowed, to maintain orthogonality?
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    - RESOLVED: Yes. This seems to be a reasonable area to expand 
975bd8deadSopenharmony_ci      functionality and remain backwards compatible with the EXT 
985bd8deadSopenharmony_ci      version of the extension.
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci 5. If the texture environment for a given texture unit does not 
1015bd8deadSopenharmony_ci    reference the texture object that is bound to that texture unit,
1025bd8deadSopenharmony_ci    does a valid texture object need to be bound that unit?
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    - RESOLVED: Yes. Each texture unit implicitly references the
1055bd8deadSopenharmony_ci      texture object that is bound to that unit, regardless of the
1065bd8deadSopenharmony_ci      texture environment function. This may require that 
1075bd8deadSopenharmony_ci      applications bind a dummy texture to the texture unit.
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ci 6. Should we allow the secondary color to take part in texture blending?
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci    - RESOLVED: Not in this extension. Secondary color was defined
1125bd8deadSopenharmony_ci      as a specular part of the lit color and does not have associated
1135bd8deadSopenharmony_ci      alpha. In order to do this right, the secondary color extension
1145bd8deadSopenharmony_ci      needs to be fixed first to allow a full featured color and clearly
1155bd8deadSopenharmony_ci      state the interaction of how it interacts with the color sum stage. 
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci 7. How exactly is this ARB extension different from the EXT version?
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci    -  RESOLVED:
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci       1) This extension adds the GL_SUBTRACT_ARB mode
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci       2) OPERAND2_RGB_ARB can use SRC_COLOR, ONE_MINUS_SRC_COLOR,
1245bd8deadSopenharmony_ci          SRC_ALPHA, and ONE_MINUS_SRC_ALPHA instead of just SRC_ALPHA
1255bd8deadSopenharmony_ci          (NV_texture_env_combine4 already provides this).
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ci       3) OPERAND2_ALPHA_ARB can use SRC_ALPHA and ONE_MINUS_SRC_ALPHA
1285bd8deadSopenharmony_ci          instead of just SRC_ALPHA (NV_texture_env_combine4 already
1295bd8deadSopenharmony_ci          provides this).
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ciNew Procedures and Functions
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci    None
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ciNew Tokens
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
1385bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is TEXTURE_ENV_MODE
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci        COMBINE_ARB                                     0x8570
1415bd8deadSopenharmony_ci
1425bd8deadSopenharmony_ci    Accepted by the <pname> parameter of TexEnvf, TexEnvi, TexEnvfv,
1435bd8deadSopenharmony_ci    and TexEnviv when the <target> parameter value is TEXTURE_ENV
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci        COMBINE_RGB_ARB                                 0x8571
1465bd8deadSopenharmony_ci        COMBINE_ALPHA_ARB                               0x8572
1475bd8deadSopenharmony_ci        SOURCE0_RGB_ARB                                 0x8580
1485bd8deadSopenharmony_ci        SOURCE1_RGB_ARB                                 0x8581
1495bd8deadSopenharmony_ci        SOURCE2_RGB_ARB                                 0x8582
1505bd8deadSopenharmony_ci        SOURCE0_ALPHA_ARB                               0x8588
1515bd8deadSopenharmony_ci        SOURCE1_ALPHA_ARB                               0x8589
1525bd8deadSopenharmony_ci        SOURCE2_ALPHA_ARB                               0x858A
1535bd8deadSopenharmony_ci        OPERAND0_RGB_ARB                                0x8590
1545bd8deadSopenharmony_ci        OPERAND1_RGB_ARB                                0x8591
1555bd8deadSopenharmony_ci        OPERAND2_RGB_ARB                                0x8592
1565bd8deadSopenharmony_ci        OPERAND0_ALPHA_ARB                              0x8598
1575bd8deadSopenharmony_ci        OPERAND1_ALPHA_ARB                              0x8599
1585bd8deadSopenharmony_ci        OPERAND2_ALPHA_ARB                              0x859A
1595bd8deadSopenharmony_ci        RGB_SCALE_ARB                                   0x8573
1605bd8deadSopenharmony_ci        ALPHA_SCALE
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
1635bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is COMBINE_RGB_ARB
1645bd8deadSopenharmony_ci    or COMBINE_ALPHA_ARB
1655bd8deadSopenharmony_ci
1665bd8deadSopenharmony_ci        REPLACE
1675bd8deadSopenharmony_ci        MODULATE
1685bd8deadSopenharmony_ci        ADD
1695bd8deadSopenharmony_ci        ADD_SIGNED_ARB                                  0x8574
1705bd8deadSopenharmony_ci        INTERPOLATE_ARB                                 0x8575
1715bd8deadSopenharmony_ci        SUBTRACT_ARB                                    0x84E7
1725bd8deadSopenharmony_ci
1735bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
1745bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is SOURCE0_RGB_ARB,
1755bd8deadSopenharmony_ci    SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
1765bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB, or SOURCE2_ALPHA_ARB
1775bd8deadSopenharmony_ci
1785bd8deadSopenharmony_ci        TEXTURE
1795bd8deadSopenharmony_ci        CONSTANT_ARB                                    0x8576
1805bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB                               0x8577
1815bd8deadSopenharmony_ci        PREVIOUS_ARB                                    0x8578
1825bd8deadSopenharmony_ci
1835bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
1845bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is
1855bd8deadSopenharmony_ci    OPERAND0_RGB_ARB, OPERAND1_RGB_ARB, or OPERAND2_RGB_ARB
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci        SRC_COLOR
1885bd8deadSopenharmony_ci        ONE_MINUS_SRC_COLOR
1895bd8deadSopenharmony_ci        SRC_ALPHA
1905bd8deadSopenharmony_ci        ONE_MINUS_SRC_ALPHA     
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
1935bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is
1945bd8deadSopenharmony_ci    OPERAND0_ALPHA_ARB, OPERAND1_ALPHA_ARB, or OPERAND2_ALPHA_ARB
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci        SRC_ALPHA
1975bd8deadSopenharmony_ci        ONE_MINUS_SRC_ALPHA     
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
2005bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is RGB_SCALE_ARB or
2015bd8deadSopenharmony_ci    ALPHA_SCALE
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci        1.0
2045bd8deadSopenharmony_ci        2.0
2055bd8deadSopenharmony_ci        4.0     
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ciAdditions to Chapter 2 of the GL Specification (OpenGL Operation)
2085bd8deadSopenharmony_ci
2095bd8deadSopenharmony_ci    None
2105bd8deadSopenharmony_ci
2115bd8deadSopenharmony_ciAdditions to Chapter 3 of the GL Specification (Rasterization)
2125bd8deadSopenharmony_ci
2135bd8deadSopenharmony_ci    Added to subsection 3.8.9, before the paragraph describing the
2145bd8deadSopenharmony_ci    state requirements:
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci    If the value of TEXTURE_ENV_MODE is COMBINE_ARB, the form of the
2175bd8deadSopenharmony_ci    texture function depends on the values of COMBINE_RGB_ARB and
2185bd8deadSopenharmony_ci    COMBINE_ALPHA_ARB, according to table 3.20. The RGB and ALPHA
2195bd8deadSopenharmony_ci    results of the texture function are then multiplied by the values
2205bd8deadSopenharmony_ci    of RGB_SCALE_ARB and ALPHA_SCALE, respectively. The results are
2215bd8deadSopenharmony_ci    clamped to [0,1].
2225bd8deadSopenharmony_ci
2235bd8deadSopenharmony_ci        COMBINE_RGB_ARB         Texture Function
2245bd8deadSopenharmony_ci        ------------------      ----------------
2255bd8deadSopenharmony_ci        REPLACE                 Arg0
2265bd8deadSopenharmony_ci        MODULATE                Arg0 * Arg1
2275bd8deadSopenharmony_ci        ADD                     Arg0 + Arg1
2285bd8deadSopenharmony_ci        ADD_SIGNED_ARB          Arg0 + Arg1 - 0.5
2295bd8deadSopenharmony_ci        INTERPOLATE_ARB         Arg0 * (Arg2) + Arg1 * (1-Arg2)
2305bd8deadSopenharmony_ci        SUBTRACT_ARB            Arg0 - Arg1
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci        COMBINE_ALPHA_ARB       Texture Function
2335bd8deadSopenharmony_ci        ------------------      ----------------
2345bd8deadSopenharmony_ci        REPLACE                 Arg0
2355bd8deadSopenharmony_ci        MODULATE                Arg0 * Arg1
2365bd8deadSopenharmony_ci        ADD                     Arg0 + Arg1
2375bd8deadSopenharmony_ci        ADD_SIGNED_ARB          Arg0 + Arg1 - 0.5
2385bd8deadSopenharmony_ci        INTERPOLATE_ARB         Arg0 * (Arg2) + Arg1 * (1-Arg2)
2395bd8deadSopenharmony_ci        SUBTRACT_ARB            Arg0 - Arg1
2405bd8deadSopenharmony_ci
2415bd8deadSopenharmony_ci        Table 3.20: COMBINE_ARB texture functions
2425bd8deadSopenharmony_ci
2435bd8deadSopenharmony_ci    The arguments Arg0, Arg1 and Arg2 are determined by the values of
2445bd8deadSopenharmony_ci    SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB, OPERAND<n>_RGB_ARB and
2455bd8deadSopenharmony_ci    OPERAND<n>_ALPHA_ARB. In the following two tables, Ct and At are
2465bd8deadSopenharmony_ci    the filtered texture RGB and alpha values; Cc and Ac are the 
2475bd8deadSopenharmony_ci    texture environment RGB and alpha values; Cf and Af are the RGB 
2485bd8deadSopenharmony_ci    and alpha of the primary color of the incoming fragment; and Cp 
2495bd8deadSopenharmony_ci    and Ap are the RGB and alpha values resulting from the previous 
2505bd8deadSopenharmony_ci    texture environment. On texture environment 0, Cp and Ap are 
2515bd8deadSopenharmony_ci    identical to Cf and Af, respectively. The relationship is 
2525bd8deadSopenharmony_ci    described in tables 3.21 and 3.22.
2535bd8deadSopenharmony_ci
2545bd8deadSopenharmony_ci        SOURCE<n>_RGB_ARB       OPERAND<n>_RGB_ARB      Argument
2555bd8deadSopenharmony_ci        -----------------       --------------          --------
2565bd8deadSopenharmony_ci        TEXTURE                 SRC_COLOR               Ct
2575bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Ct)
2585bd8deadSopenharmony_ci                                SRC_ALPHA               At
2595bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At)
2605bd8deadSopenharmony_ci        CONSTANT_ARB            SRC_COLOR               Cc
2615bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cc)
2625bd8deadSopenharmony_ci                                SRC_ALPHA               Ac
2635bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ac)
2645bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       SRC_COLOR               Cf
2655bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cf)
2665bd8deadSopenharmony_ci                                SRC_ALPHA               Af
2675bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Af)
2685bd8deadSopenharmony_ci        PREVIOUS_ARB            SRC_COLOR               Cp
2695bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Cp)
2705bd8deadSopenharmony_ci                                SRC_ALPHA               Ap
2715bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ap)
2725bd8deadSopenharmony_ci
2735bd8deadSopenharmony_ci        Table 3.21: Arguments for COMBINE_RGB_ARB functions
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci        SOURCE<n>_ALPHA_ARB     OPERAND<n>_ALPHA_ARB    Argument
2765bd8deadSopenharmony_ci        -----------------       --------------          --------
2775bd8deadSopenharmony_ci        TEXTURE                 SRC_ALPHA               At
2785bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At)
2795bd8deadSopenharmony_ci        CONSTANT_ARB            SRC_ALPHA               Ac
2805bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ac)
2815bd8deadSopenharmony_ci        PRIMARY_COLOR_ARB       SRC_ALPHA               Af
2825bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Af)
2835bd8deadSopenharmony_ci        PREVIOUS_ARB            SRC_ALPHA               Ap
2845bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-Ap)
2855bd8deadSopenharmony_ci
2865bd8deadSopenharmony_ci        Table 3.22: Arguments for COMBINE_ALPHA_ARB functions
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ci    The mapping of texture components to source components is
2895bd8deadSopenharmony_ci    summarized in Table 3.23. In the following table, At, Lt, It, Rt,
2905bd8deadSopenharmony_ci    Gt and Bt are the filtered texel values.
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci        Base Internal Format            RGB Values      Alpha Value
2935bd8deadSopenharmony_ci        --------------------            ----------      -----------
2945bd8deadSopenharmony_ci        ALPHA                           0,  0,  0       At
2955bd8deadSopenharmony_ci        LUMINANCE                       Lt, Lt, Lt      1
2965bd8deadSopenharmony_ci        LUMINANCE_ALPHA                 Lt, Lt, Lt      At
2975bd8deadSopenharmony_ci        INTENSITY                       It, It, It      It
2985bd8deadSopenharmony_ci        RGB                             Rt, Gt, Bt      1
2995bd8deadSopenharmony_ci        RGBA                            Rt, Gt, Bt      At
3005bd8deadSopenharmony_ci        
3015bd8deadSopenharmony_ci        Table 3.23: Correspondence of texture components to source
3025bd8deadSopenharmony_ci        components for COMBINE_RGB_ARB and COMBINE_ALPHA_ARB arguments
3035bd8deadSopenharmony_ci
3045bd8deadSopenharmony_ciAdditions to Chapter 4 of the GL Specification (Per-Fragment Operations
3055bd8deadSopenharmony_ciand the Framebuffer)
3065bd8deadSopenharmony_ci
3075bd8deadSopenharmony_ci    None
3085bd8deadSopenharmony_ci
3095bd8deadSopenharmony_ciAdditions to Chapter 5 of the GL Specification (Special Functions)
3105bd8deadSopenharmony_ci
3115bd8deadSopenharmony_ci    None
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ciAdditions to Chapter 6 of the GL Specification (State and State Requests)
3145bd8deadSopenharmony_ci
3155bd8deadSopenharmony_ci    None
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ciAdditions to Appendix F of the GL Specification (ARB Extensions)
3185bd8deadSopenharmony_ci
3195bd8deadSopenharmony_ci    Inserted after the second paragraph of F.2.12:
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ci    If the value of TEXTURE_ENV_MODE is COMBINE_ARB, the texture
3225bd8deadSopenharmony_ci    function associated with a given texture unit is computed using
3235bd8deadSopenharmony_ci    the values specified by SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB,
3245bd8deadSopenharmony_ci    OPERAND<n>_RGB_ARB and OPERAND<n>_ALPHA_ARB. If TEXTURE<n>_ARB is
3255bd8deadSopenharmony_ci    specified as SOURCE<n>_RGB_ARB or SOURCE<n>_ALPHA_ARB, the texture
3265bd8deadSopenharmony_ci    value from texture unit <n> will be used in computing the texture
3275bd8deadSopenharmony_ci    function for this texture unit.
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci    Inserted after the third paragraph of F.2.12:
3305bd8deadSopenharmony_ci
3315bd8deadSopenharmony_ci    If a texture environment for a given texture unit references a
3325bd8deadSopenharmony_ci    texture unit that is disabled or does not have a valid texture
3335bd8deadSopenharmony_ci    object bound to it, then it is as if texture is disabled for the
3345bd8deadSopenharmony_ci    given texture unit. Every texture unit implicitly references the 
3355bd8deadSopenharmony_ci    texture object that is bound to it, regardless of the texture 
3365bd8deadSopenharmony_ci    function specified by COMBINE_RGB_ARB or COMBINE_ALPHA_ARB.
3375bd8deadSopenharmony_ci
3385bd8deadSopenharmony_ciAdditions to the GLX Specification
3395bd8deadSopenharmony_ci
3405bd8deadSopenharmony_ci    None
3415bd8deadSopenharmony_ci
3425bd8deadSopenharmony_ciGLX Protocol
3435bd8deadSopenharmony_ci
3445bd8deadSopenharmony_ci    None
3455bd8deadSopenharmony_ci
3465bd8deadSopenharmony_ciErrors
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci    INVALID_ENUM is generated if <params> value for COMBINE_RGB_ARB or
3495bd8deadSopenharmony_ci    COMBINE_ALPHA_ARB is not one of REPLACE, MODULATE, ADD,
3505bd8deadSopenharmony_ci    ADD_SIGNED_ARB, INTERPOLATE_ARB, or SUBTRACT_ARB
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci    INVALID_ENUM is generated if <params> value for SOURCE0_RGB_ARB,
3535bd8deadSopenharmony_ci    SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
3545bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB or SOURCE2_ALPHA_ARB is not one of TEXTURE,
3555bd8deadSopenharmony_ci    CONSTANT_ARB, PRIMARY_COLOR_ARB, or PREVIOUS_ARB.
3565bd8deadSopenharmony_ci
3575bd8deadSopenharmony_ci    INVALID_ENUM is generated if <params> value for OPERAND0_RGB_ARB,
3585bd8deadSopenharmony_ci    OPERAND1_RGB_ARB, or OPERAND2_RGB_ARB is not one of SRC_COLOR,
3595bd8deadSopenharmony_ci    ONE_MINUS_SRC_COLOR, SRC_ALPHA or ONE_MINUS_SRC_ALPHA.
3605bd8deadSopenharmony_ci
3615bd8deadSopenharmony_ci    INVALID_ENUM is generated if <params> value for OPERAND0_ALPHA_ARB,
3625bd8deadSopenharmony_ci    OPERAND1_ALPHA_ARB, or OPERAND2_ALPHA_ARB is not one of SRC_ALPHA 
3635bd8deadSopenharmony_ci    or ONE_MINUS_SRC_ALPHA.
3645bd8deadSopenharmony_ci
3655bd8deadSopenharmony_ci    INVALID_VALUE is generated if <params> value for RGB_SCALE_ARB or
3665bd8deadSopenharmony_ci    ALPHA_SCALE is not one of 1.0, 2.0, or 4.0.
3675bd8deadSopenharmony_ci
3685bd8deadSopenharmony_ciNew State
3695bd8deadSopenharmony_ci
3705bd8deadSopenharmony_ci    Get Value           Get Command    Type     Initial Value   Attribute
3715bd8deadSopenharmony_ci    ---------           -----------    ----     -------------   ---------
3725bd8deadSopenharmony_ci    COMBINE_RGB_ARB     GetTexEnviv    n x Z4   MODULATE        texture
3735bd8deadSopenharmony_ci    COMBINE_ALPHA_ARB   GetTexEnviv    n x Z4   MODULATE        texture
3745bd8deadSopenharmony_ci    SOURCE0_RGB_ARB     GetTexEnviv    n x Z3   TEXTURE         texture
3755bd8deadSopenharmony_ci    SOURCE1_RGB_ARB     GetTexEnviv    n x Z3   PREVIOUS_ARB    texture
3765bd8deadSopenharmony_ci    SOURCE2_RGB_ARB     GetTexEnviv    n x Z3   CONSTANT_ARB    texture
3775bd8deadSopenharmony_ci    SOURCE0_ALPHA_ARB   GetTexEnviv    n x Z3   TEXTURE         texture
3785bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB   GetTexEnviv    n x Z3   PREVIOUS_ARB    texture
3795bd8deadSopenharmony_ci    SOURCE2_ALPHA_ARB   GetTexEnviv    n x Z3   CONSTANT_ARB    texture
3805bd8deadSopenharmony_ci    OPERAND0_RGB_ARB    GetTexEnviv    n x Z6   SRC_COLOR       texture
3815bd8deadSopenharmony_ci    OPERAND1_RGB_ARB    GetTexEnviv    n x Z6   SRC_COLOR       texture
3825bd8deadSopenharmony_ci    OPERAND2_RGB_ARB    GetTexEnviv    n x Z1   SRC_ALPHA       texture
3835bd8deadSopenharmony_ci    OPERAND0_ALPHA_ARB  GetTexEnviv    n x Z4   SRC_ALPHA       texture
3845bd8deadSopenharmony_ci    OPERAND1_ALPHA_ARB  GetTexEnviv    n x Z4   SRC_ALPHA       texture
3855bd8deadSopenharmony_ci    OPERAND2_ALPHA_ARB  GetTexEnviv    n x Z1   SRC_ALPHA       texture
3865bd8deadSopenharmony_ci    RGB_SCALE_ARB       GetTexEnvfv    n x R3   1.0             texture
3875bd8deadSopenharmony_ci    ALPHA_SCALE         GetTexEnvfv    n x R3   1.0             texture
3885bd8deadSopenharmony_ci
3895bd8deadSopenharmony_ciNew Implementation Dependent State
3905bd8deadSopenharmony_ci
3915bd8deadSopenharmony_ci    None
3925bd8deadSopenharmony_ci
3935bd8deadSopenharmony_ciRevision History
3945bd8deadSopenharmony_ci
3955bd8deadSopenharmony_ci    06/11/04  benj      Updated contact info after ATI/AMD merger.
3965bd8deadSopenharmony_ci
3975bd8deadSopenharmony_ci    01/05/21  mjk       Added ARB versus EXT differences issue
3985bd8deadSopenharmony_ci
3995bd8deadSopenharmony_ci    01/02/02  bpoddar   Added original EXT/ARB contributors to the contact
4005bd8deadSopenharmony_ci                        list
4015bd8deadSopenharmony_ci
4025bd8deadSopenharmony_ci    00/12/13  bpoddar   Added enum value for SUBTRACT_ARB
4035bd8deadSopenharmony_ci
4045bd8deadSopenharmony_ci    00/12/06  bpoddar   Moved references to Ct<n> and At<n> to 
4055bd8deadSopenharmony_ci                        ARB_texture_env_crossbar spec.
4065bd8deadSopenharmony_ci
4075bd8deadSopenharmony_ci    00/12/01  bpoddar   Removed TEXTURE<n>_ARB since several companies
4085bd8deadSopenharmony_ci                        had problems with this addition in the base spec.
4095bd8deadSopenharmony_ci
4105bd8deadSopenharmony_ci    00/11/13  bpoddar   Recreated 6/20 spec with language for dealing
4115bd8deadSopenharmony_ci                        with inconsistent textures moved to appendix F.
4125bd8deadSopenharmony_ci
4135bd8deadSopenharmony_ci    00/06/20  rhammers  Changed behavior when dealing with references 
4145bd8deadSopenharmony_ci                        do disabled and inconsistent textures.
4155bd8deadSopenharmony_ci
4165bd8deadSopenharmony_ci    00/05/23  rhammers  Cleaned up for first draft of ARB version.
4175bd8deadSopenharmony_ci                        Added issue -- TEXTURE with TEXTURE<n>_ARB
4185bd8deadSopenharmony_ci                        Added issue .. "upstream" textures
4195bd8deadSopenharmony_ci                        Listed get functions with description of 
4205bd8deadSopenharmony_ci                        enumerants.
4215bd8deadSopenharmony_ci                        Added 1.1 and multitexture to dependencies
4225bd8deadSopenharmony_ci
4235bd8deadSopenharmony_ci    00/05/18  rhammers  First rev of ARB version of the spec. Based on
4245bd8deadSopenharmony_ci                        EXT_texture_env_combine.
4255bd8deadSopenharmony_ci                        Relaxed restriction on Arg2.
4265bd8deadSopenharmony_ci                        Added support for TEXTURE<n>_ARB.
4275bd8deadSopenharmony_ci                        Added SUBTRACT_ARB combiner function.
4285bd8deadSopenharmony_ci                        do disabled and inconsistent textures.
429