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