15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_texture_env_crossbar
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_texture_env_crossbar
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Bimal Poddar, Intel (bimal.poddar 'at' intel.com)
125bd8deadSopenharmony_ci    Jack Middleton, Sun (Jack.Middleton 'at' Eng.Sun.COM)
135bd8deadSopenharmony_ci    Rick Hammerstone, AMD (rick.hammerstone 'at' amd.com)
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ciNotice
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ci    Copyright (c) 2001-2013 The Khronos Group Inc. Copyright terms at
185bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciSpecification Update Policy
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
235bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
245bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
255bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
265bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
275bd8deadSopenharmony_ci    described in more detail at
285bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciStatus
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    Complete. Approved by ARB on February 16, 2001.
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ciVersion
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    Last modified date: 2006/11/04
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ciNumber
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    ARB Extension #18
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ciDependencies
435bd8deadSopenharmony_ci
445bd8deadSopenharmony_ci    This extension is written against the OpenGL 1.2.1 Specification.
455bd8deadSopenharmony_ci    OpenGL 1.1, ARB_multitexture and ARB_texture_env_combine are required 
465bd8deadSopenharmony_ci    by this extension.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciOverview
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    This extension adds the capability to use the texture color from
515bd8deadSopenharmony_ci    other texture units as sources to the COMBINE_ARB enviornment
525bd8deadSopenharmony_ci    function. The ARB_texture_env_combine extension defined texture 
535bd8deadSopenharmony_ci    enviornment functions which could use the color from the 
545bd8deadSopenharmony_ci    current texture unit as a source. This extension adds
555bd8deadSopenharmony_ci    the ability to use the color from any texture unit as a source.
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ciIssues
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ci 1. Should only "upstream" textures be allowed as inputs to a
605bd8deadSopenharmony_ci    given texture unit? (Texture inputs to unit <m> are restricted to
615bd8deadSopenharmony_ci    the range TEXTURE0_ARB to TEXTURE<m>_ARB).
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    - RESOLVED: No. Most vendors support this functionality.
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci 2. Do we still need TEXTURE as a source if we allow TEXTURE<n>_ARB?
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    - RESOLVED: Yes, since this allows backwards compatibility.
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci 3. What should be the behavior when the texture environment 
715bd8deadSopenharmony_ci    references a texture unit that is not enabled or does not have a
725bd8deadSopenharmony_ci    valid texture object bound to it?
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    - RESOLVED: Texture blending should be disabled on the texture 
755bd8deadSopenharmony_ci      unit that is referencing the invalid or disabled texture. This 
765bd8deadSopenharmony_ci      seems to be a reasonable compromise between disabling all 
775bd8deadSopenharmony_ci      texturing and generating "default" texel values. Also, this 
785bd8deadSopenharmony_ci      behavior is more easily forward compatible to an extension 
795bd8deadSopenharmony_ci      which separates the texture lookup and texture blend units.
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ciNew Procedures and Functions
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci    None
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ciNew Tokens
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
885bd8deadSopenharmony_ci    and TexEnviv when the <pname> parameter value is SOURCE0_RGB_ARB,
895bd8deadSopenharmony_ci    SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
905bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB, or SOURCE2_ALPHA_ARB
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci        TEXTURE<n>_ARB                        0x84C0+<n>
935bd8deadSopenharmony_ci
945bd8deadSopenharmony_ci    where <n> is in the range 0 to MAX_TEXTURE_UNITS_ARB.
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ciAdditions to Chapter 2 of the GL Specification (OpenGL Operation)
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    None
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ciAdditions to Chapter 3 of the GL Specification (Rasterization)
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    Modify paragraph describing tables 3.21 and 3.22 in the 
1035bd8deadSopenharmony_ci    ARB_texture_env_combine spec to read:
1045bd8deadSopenharmony_ci
1055bd8deadSopenharmony_ci    The arguments Arg0, Arg1 and Arg2 are determined by the values of
1065bd8deadSopenharmony_ci    SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB, OPERAND<n>_RGB_ARB and
1075bd8deadSopenharmony_ci    OPERAND<n>_ALPHA_ARB. In the following two tables, Ct and At are
1085bd8deadSopenharmony_ci    the filtered texture RGB and alpha values; Ct<n> and At<n> are the
1095bd8deadSopenharmony_ci    filtered texture RGB and alpha values from the texture bound to
1105bd8deadSopenharmony_ci    texture unit <n>; Cc and Ac are the texture environment RGB and
1115bd8deadSopenharmony_ci    alpha values; Cf and Af are the RGB and alpha of the primary color
1125bd8deadSopenharmony_ci    of the incoming fragment; and Cp and Ap are the RGB and alpha
1135bd8deadSopenharmony_ci    values resulting from the previous texture environment. On texture
1145bd8deadSopenharmony_ci    environment 0, Cp and Ap are identical to Cf and Af, respectively.
1155bd8deadSopenharmony_ci    The relationship is described in tables 3.21 and 3.22.
1165bd8deadSopenharmony_ci    Added to table 3.21 of the ARB_texture_env_combine spec:
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci        SOURCE<n>_RGB_ARB       OPERAND<n>_RGB_ARB      Argument
1195bd8deadSopenharmony_ci        -----------------       --------------          --------
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ci        TEXTURE<n>_ARB          SRC_COLOR               Ct<n>
1225bd8deadSopenharmony_ci                                ONE_MINUS_SRC_COLOR     (1-Ct<n>)
1235bd8deadSopenharmony_ci                                SRC_ALPHA               At<n>
1245bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At<n>)
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ci        Table 3.21: Arguments for COMBINE_RGB_ARB functions
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    Added to table 3.22 of the ARB_texture_env_combine spec:
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ci        SOURCE<n>_ALPHA_ARB     OPERAND<n>_ALPHA_ARB    Argument
1315bd8deadSopenharmony_ci        -----------------       --------------          --------
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci        TEXTURE<n>_ARB          SRC_ALPHA               At<n>
1345bd8deadSopenharmony_ci                                ONE_MINUS_SRC_ALPHA     (1-At<n>)
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci        Table 3.22: Arguments for COMBINE_ALPHA_ARB functions
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ciAdditions to Chapter 4 of the GL Specification (Per-Fragment Operations
1395bd8deadSopenharmony_ciand the Framebuffer)
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci    None
1425bd8deadSopenharmony_ci
1435bd8deadSopenharmony_ciAdditions to Chapter 5 of the GL Specification (Special Functions)
1445bd8deadSopenharmony_ci
1455bd8deadSopenharmony_ci    None
1465bd8deadSopenharmony_ci
1475bd8deadSopenharmony_ciAdditions to Chapter 6 of the GL Specification (State and State Requests)
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ci    None
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ciAdditions to Appendix F of the GL Specification (ARB Extensions)
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ci    Inserted after the second paragraph of F.2.12:
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci    If the value of TEXTURE_ENV_MODE is COMBINE_ARB, the texture
1565bd8deadSopenharmony_ci    function associated with a given texture unit is computed using
1575bd8deadSopenharmony_ci    the values specified by SOURCE<n>_RGB_ARB, SOURCE<n>_ALPHA_ARB,
1585bd8deadSopenharmony_ci    OPERAND<n>_RGB_ARB and OPERAND<n>_ALPHA_ARB. If TEXTURE<n>_ARB is
1595bd8deadSopenharmony_ci    specified as SOURCE<n>_RGB_ARB or SOURCE<n>_ALPHA_ARB, the texture
1605bd8deadSopenharmony_ci    value from texture unit <n> will be used in computing the texture
1615bd8deadSopenharmony_ci    function for this texture unit.
1625bd8deadSopenharmony_ci
1635bd8deadSopenharmony_ci    Inserted after the third paragraph of F.2.12:
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci    If a texture environment for a given texture unit references a
1665bd8deadSopenharmony_ci    texture unit that is disabled or does not have a valid texture
1675bd8deadSopenharmony_ci    object bound to it, then it is as if texture blending is disabled 
1685bd8deadSopenharmony_ci    for the given texture unit. Every texture unit implicitly 
1695bd8deadSopenharmony_ci    references the texture object that is bound to it, regardless 
1705bd8deadSopenharmony_ci    of the texture function specified by COMBINE_RGB_ARB or COMBINE_ALPHA_ARB.
1715bd8deadSopenharmony_ci
1725bd8deadSopenharmony_ciAdditions to the GLX Specification
1735bd8deadSopenharmony_ci
1745bd8deadSopenharmony_ci    None
1755bd8deadSopenharmony_ci
1765bd8deadSopenharmony_ciGLX Protocol
1775bd8deadSopenharmony_ci
1785bd8deadSopenharmony_ci    None
1795bd8deadSopenharmony_ci
1805bd8deadSopenharmony_ciErrors
1815bd8deadSopenharmony_ci
1825bd8deadSopenharmony_ci    INVALID_ENUM is generated if <params> value for SOURCE0_RGB_ARB,
1835bd8deadSopenharmony_ci    SOURCE1_RGB_ARB, SOURCE2_RGB_ARB, SOURCE0_ALPHA_ARB,
1845bd8deadSopenharmony_ci    SOURCE1_ALPHA_ARB or SOURCE2_ALPHA_ARB is not one of TEXTURE,
1855bd8deadSopenharmony_ci    CONSTANT_ARB, PRIMARY_COLOR_ARB, PREVIOUS_ARB, or TEXTURE<n>_ARB,
1865bd8deadSopenharmony_ci    where <n> is in the range 0 to MAX_TEXTURE_UNITS_ARB.
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ciNew State
1895bd8deadSopenharmony_ci
1905bd8deadSopenharmony_ci    None
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ciRevision History
1935bd8deadSopenharmony_ci    06/11/04    benj        Updated contact info after ATI/AMD merger.
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci    01/02/02    bpoddar     Added original EXT/ARB contributors to the contact
1965bd8deadSopenharmony_ci                            list
1975bd8deadSopenharmony_ci
1985bd8deadSopenharmony_ci    00/12/06    bpoddar     Added comments from the ARB meeting.
1995bd8deadSopenharmony_ci                            Changed texturing disable to texture blending
2005bd8deadSopenharmony_ci                            disable. Added description of table 3.21
2015bd8deadSopenharmony_ci                            and 3.22 to define Ct<n> and At<n>.
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci    00/12/01    bpoddar     Added clarification regarding disabling of
2045bd8deadSopenharmony_ci                            texture blend unit when it references a
2055bd8deadSopenharmony_ci                            disabled texture.
2065bd8deadSopenharmony_ci                            Removed some changes which were already
2075bd8deadSopenharmony_ci                            specified in ARB_texture_env_combine spec.
2085bd8deadSopenharmony_ci
2095bd8deadSopenharmony_ci    00/10/31    jmiddleton  First version of the spec
210