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