15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_texture_rectangle 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_texture_rectangle 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNotice 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci Copyright NVIDIA Corporation, 2000, 2001, 2002, 2003, 2004. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciStatus 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci Implemented in NVIDIA's Release 10 drivers. 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciVersion 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci NVIDIA Date: March 5, 2004 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciNumber 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci 229 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciDependencies 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci Written based on the OpenGL 1.2.1 specification including 325bd8deadSopenharmony_ci ARB_texture_cube_map wording. 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci IBM_mirrored_repeat affects the definition of this extension. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci ARB_texture_border_clamp affects the definition of this extension. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci EXT_paletted_texture affects the definition of this extension. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ci This extension affects the definition of the NV_texture_shader 415bd8deadSopenharmony_ci extension. 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ciOverview 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ci OpenGL texturing is limited to images with power-of-two dimensions 465bd8deadSopenharmony_ci and an optional 1-texel border. NV_texture_rectangle extension 475bd8deadSopenharmony_ci adds a new texture target that supports 2D textures without requiring 485bd8deadSopenharmony_ci power-of-two dimensions. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci Non-power-of-two dimensioned textures are useful for storing 515bd8deadSopenharmony_ci video images that do not have power-of-two dimensions. Re-sampling 525bd8deadSopenharmony_ci artifacts are avoided and less texture memory may be required by using 535bd8deadSopenharmony_ci non-power-of-two dimensioned textures. Non-power-of-two dimensioned 545bd8deadSopenharmony_ci textures are also useful for shadow maps and window-space texturing. 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci However, non-power-of-two dimensioned (NPOTD) textures have 575bd8deadSopenharmony_ci limitations that do not apply to power-of-two dimensioned (POT) 585bd8deadSopenharmony_ci textures. NPOTD textures may not use mipmap filtering; POTD 595bd8deadSopenharmony_ci textures support both mipmapped and non-mipmapped filtering. 605bd8deadSopenharmony_ci NPOTD textures support only the GL_CLAMP, GL_CLAMP_TO_EDGE, 615bd8deadSopenharmony_ci and GL_CLAMP_TO_BORDER_ARB wrap modes; POTD textures support 625bd8deadSopenharmony_ci GL_CLAMP_TO_EDGE, GL_REPEAT, GL_CLAMP, GL_MIRRORED_REPEAT_IBM, 635bd8deadSopenharmony_ci and GL_CLAMP_TO_BORDER. NPOTD textures do not support an optional 645bd8deadSopenharmony_ci 1-texel border; POTD textures do support an optional 1-texel border. 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci NPOTD textures are accessed by non-normalized texture coordinates. 675bd8deadSopenharmony_ci So instead of thinking of the texture image lying in a [0..1]x[0..1] 685bd8deadSopenharmony_ci range, the NPOTD texture image lies in a [0..w]x[0..h] range. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci This extension adds a new texture target and related state (proxy, 715bd8deadSopenharmony_ci binding, max texture size). 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ciIssues 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci Should rectangular textures simply be an extension to the 2D texture 765bd8deadSopenharmony_ci target that allows non-power-of-two widths and heights? 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci RESOLUTION: No. The rectangular texture is an entirely new texture 795bd8deadSopenharmony_ci target type called GL_TEXTURE_RECTANGLE_NV. This is because while 805bd8deadSopenharmony_ci the texture rectangle target relaxes the power-of-two dimensions 815bd8deadSopenharmony_ci requirements of the texture 2D target, it also has limitations 825bd8deadSopenharmony_ci such as the absence of both mipmapping and the GL_REPEAT and 835bd8deadSopenharmony_ci GL_MIRRORED_REPEAT_IBM wrap modes. Additionally, rectangular 845bd8deadSopenharmony_ci textures do not use [0..1] normalized texture coordinates. 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci How is the image of a rectangular texture specified? 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci RESOLUTION: Using the standard OpenGL API for specifying a 2D 895bd8deadSopenharmony_ci texture image: glTexImage2D, glSubTexImage2D, glCopyTexImage2D, 905bd8deadSopenharmony_ci and glCopySubTexImage2D. The target for these commands is 915bd8deadSopenharmony_ci GL_TEXTURE_RECTANGLE_NV though. 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ci This is similar to how the ARB_texture_cube_map extension uses 945bd8deadSopenharmony_ci the 2D texture image specification API though with its own texture 955bd8deadSopenharmony_ci target. 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci Should 3D textures be allowed to be NPOTD? 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ci RESOLUTION: No. That should be left to another extension. 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Should cube map textures be allowed to be NPOTD? 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci RESOLUTION: No. Probably not particularly interesting for 1045bd8deadSopenharmony_ci cube maps. If it becomes important, another extension should 1055bd8deadSopenharmony_ci provide NPOTD cube maps. 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci Should 1D textures be allowed to be NPOTD? 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci RESOLUTION: No. Rectangular textures are always considered 2D 1105bd8deadSopenharmony_ci by this extension. You can always simulate a 1D NPOTD textures 1115bd8deadSopenharmony_ci by using a 2D Wx1 or 1xH dimensioned rectangular texture. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci Should anything be said about performance? 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci RESOLUTION: No, but developers should not be surprised if 1165bd8deadSopenharmony_ci conventional POTD textures will render slightly faster than NPOTD 1175bd8deadSopenharmony_ci textures. This is particularly likely to be true when NPOTD 1185bd8deadSopenharmony_ci textures are minified leading to texture cache thrashing. 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci How are rectangular textures enabled? 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci RESOLUTION: Since rectangular textures add a new texture target, 1235bd8deadSopenharmony_ci you enable rectangular textures by enabling this target. Example: 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci glEnable(GL_TEXTURE_RECTANGLE_NV); 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci What is the priority of the rectangular texture target enable relative to 1285bd8deadSopenharmony_ci existing texture enables? 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci RESOLUTION: The texture rectangle target is like a 2D texture in 1315bd8deadSopenharmony_ci many ways so its enable priority is just above GL_TEXTURE_2D. From 1325bd8deadSopenharmony_ci lowest priority to highest priority: GL_TEXTURE_1D, GL_TEXTURE_2D, 1335bd8deadSopenharmony_ci GL_TEXTURE_RECTANGLE_NV, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_ARB. 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci What is the default wrap state for a texture rectangle? 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci RESOLUTION: GL_CLAMP_TO_EDGE. The normal default wrap state is 1385bd8deadSopenharmony_ci GL_REPEAT, but that mode is not allowed for rectangular textures? 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci What is the default minification filter for a texture rectangle? 1415bd8deadSopenharmony_ci 1425bd8deadSopenharmony_ci RESOLUTION: GL_LINEAR. The normal default minification filter 1435bd8deadSopenharmony_ci state is GL_NEAREST_MIPMAP_LINEAR, but that mode is not allowed 1445bd8deadSopenharmony_ci for rectangular textures because mipmapping is not supported. 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci Do paletted textures work with rectangular textures? 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci RESOLUTION: No. Similar (but not identical) functionality can 1495bd8deadSopenharmony_ci be accomplished using dependent texture shader operations (see 1505bd8deadSopenharmony_ci NV_texture_shader). 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci The difference between paletted texture accesses and dependent 1535bd8deadSopenharmony_ci texture accesses is that paletted texture lookups are 1545bd8deadSopenharmony_ci "pre-filtering" while dependent texture shader operations are 1555bd8deadSopenharmony_ci "post-filtering". 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ci Can compressed texture images be specified for a rectangular texture? 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci RESOLUTION: The generic texture compression internal formats 1605bd8deadSopenharmony_ci introduced by ARB_texture_compression are supported for rectangular 1615bd8deadSopenharmony_ci textures because the image is not presented as compressed data and 1625bd8deadSopenharmony_ci the ARB_texture_compression extension always permits generic texture 1635bd8deadSopenharmony_ci compression internal formats to be stored in uncompressed form. 1645bd8deadSopenharmony_ci Implementations are free to support generic compression internal 1655bd8deadSopenharmony_ci formats for rectangular textures if supported but such support is 1665bd8deadSopenharmony_ci not required. 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ci This extensions makes a blanket statement that specific compressed 1695bd8deadSopenharmony_ci internal formats for use with CompressedTexImage<n>DARB are NOT 1705bd8deadSopenharmony_ci supported for rectangular textures. This is because several 1715bd8deadSopenharmony_ci existing hardware implementations of texture compression formats 1725bd8deadSopenharmony_ci such as S3TC are not designed for compressing rectangular textures. 1735bd8deadSopenharmony_ci This does not preclude future texture compression extensions from 1745bd8deadSopenharmony_ci supporting compressed internal formats that do work with rectangular 1755bd8deadSopenharmony_ci extensions (by relaxing the current blanket error condition). 1765bd8deadSopenharmony_ci 1775bd8deadSopenharmony_ci Does this extension work with SGIX_shadow-style shadow mapping? 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci RESOLUTION: Yes. The one non-obvious allowance to support 1805bd8deadSopenharmony_ci SGIX_shadow-style shadow mapping is that the R texture coordinate 1815bd8deadSopenharmony_ci wrap mode remains UNCHANGED for rectangular textures. Clamping of 1825bd8deadSopenharmony_ci the R texture coordinate for rectangular textures uses the standard 1835bd8deadSopenharmony_ci [0,1] interval rather than the [0,ws] or [0,hs] intervals as in 1845bd8deadSopenharmony_ci the case of S and T. This is because R represents a depth value 1855bd8deadSopenharmony_ci in the [0,1] range whether using a 2D or rectangular texture. 1865bd8deadSopenharmony_ci 1875bd8deadSopenharmony_ciNew Procedures and Functions 1885bd8deadSopenharmony_ci 1895bd8deadSopenharmony_ci None 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ciNew Tokens 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, IsEnabled, and 1945bd8deadSopenharmony_ci by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 1955bd8deadSopenharmony_ci and GetDoublev, and by the <target> parameter of BindTexture, 1965bd8deadSopenharmony_ci GetTexParameterfv, GetTexParameteriv, TexParameterf, TexParameteri, 1975bd8deadSopenharmony_ci TexParameterfv, and TexParameteriv: 1985bd8deadSopenharmony_ci 1995bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV 0x84F5 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 2025bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 2035bd8deadSopenharmony_ci 2045bd8deadSopenharmony_ci TEXTURE_BINDING_RECTANGLE_NV 0x84F6 2055bd8deadSopenharmony_ci 2065bd8deadSopenharmony_ci Accepted by the <target> parameter of GetTexImage, 2075bd8deadSopenharmony_ci GetTexLevelParameteriv, GetTexLevelParameterfv, TexImage2D, 2085bd8deadSopenharmony_ci CopyTexImage2D, TexSubImage2D, and CopySubTexImage2D: 2095bd8deadSopenharmony_ci 2105bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ci Accepted by the <target> parameter of GetTexLevelParameteriv, 2135bd8deadSopenharmony_ci GetTexLevelParameterfv, GetTexParameteriv, and TexImage2D: 2145bd8deadSopenharmony_ci 2155bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_NV 0x84F7 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetDoublev, 2185bd8deadSopenharmony_ci GetIntegerv, and GetFloatv: 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 2215bd8deadSopenharmony_ci 2225bd8deadSopenharmony_ciAdditions to Chapter 2 of the GL Specification (OpenGL Operation) 2235bd8deadSopenharmony_ci 2245bd8deadSopenharmony_ci None 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ciAdditions to Chapter 3 of the GL Specification (Rasterization) 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci -- Section 3.6.3 "Pixel Transfer Modes" under "Color Table 2295bd8deadSopenharmony_ci Specification" or the ColorTableEXT description in the 2305bd8deadSopenharmony_ci EXT_paletted_texture specification (rev 1.2) 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci Add the following statement after introducing ColorTableEXT: 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target to ColorTable (or 2355bd8deadSopenharmony_ci ColorTableEXT or the various ColorTable and ColorTableEXT alternative 2365bd8deadSopenharmony_ci commands) is TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV." 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci -- Section 3.8.1 "Texture Image Specification" 2395bd8deadSopenharmony_ci 2405bd8deadSopenharmony_ci Change the second sentence through the rest of the paragraph 2415bd8deadSopenharmony_ci describing TexImage2D on page 116 to: 2425bd8deadSopenharmony_ci 2435bd8deadSopenharmony_ci "<target> must be one of TEXTURE_2D for a 2D texture, or one 2445bd8deadSopenharmony_ci of TEXTURE_RECTANGLE_NV for a rectangle texture, or one of 2455bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_X_ARB, TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 2465bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 2475bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, or TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 2485bd8deadSopenharmony_ci for a cube map texture. Additionally, <target> can be either 2495bd8deadSopenharmony_ci PROXY_TEXTURE_2D for a 2D proxy texture or PROXY_TEXTURE_RECTANGLE_NV 2505bd8deadSopenharmony_ci for a rectangle proxy texture or PROXY_TEXTURE_CUBE_MAP_ARB for a 2515bd8deadSopenharmony_ci cube map proxy texture as discussed in section 3.8.7. 2525bd8deadSopenharmony_ci The other parameters match the corresponding parameters of TexImage3D." 2535bd8deadSopenharmony_ci 2545bd8deadSopenharmony_ci Add a following paragraph reading: 2555bd8deadSopenharmony_ci 2565bd8deadSopenharmony_ci "Rectangular textures do not support paletted formats. The error 2575bd8deadSopenharmony_ci INVALID_ENUM is generated if the target is TEXTURE_RECTANGLE_NV 2585bd8deadSopenharmony_ci or PROXY_TEXTURE_RECTANGLE_NV and the format is COLOR_INDEX or 2595bd8deadSopenharmony_ci the internalformat is COLOR_INDEX or one of the COLOR_INDEX<n>_EXT 2605bd8deadSopenharmony_ci internal formats." 2615bd8deadSopenharmony_ci 2625bd8deadSopenharmony_ci Change the 14th paragraph (page 116) to read: 2635bd8deadSopenharmony_ci 2645bd8deadSopenharmony_ci "In a similar fashion, the maximum allowable width of a rectangular 2655bd8deadSopenharmony_ci texture image, and the maximum allowable height of a rectangular 2665bd8deadSopenharmony_ci texture image, must be at least the implementation-dependent value 2675bd8deadSopenharmony_ci of MAX_RECTANGLE_TEXTURE_SIZE_NV." 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci Add the following paragraph after the paragraph introducing 2705bd8deadSopenharmony_ci TexImage2D (page 116): 2715bd8deadSopenharmony_ci 2725bd8deadSopenharmony_ci "When the target is TEXTURE_RECTANGLE_NV, the INVALID_VALUE error is 2735bd8deadSopenharmony_ci generated if border is any value other than zero or the level is any 2745bd8deadSopenharmony_ci value other than zero. Also when the target is TEXTURE_RECTANGLE_NV, 2755bd8deadSopenharmony_ci the texture dimension restrictions specified by equations 3.11, 2765bd8deadSopenharmony_ci 3.12, and 3.13 are ignored; however, if the width is less than zero or 2775bd8deadSopenharmony_ci the height is less than zero, the error INVALID_VALUE is generated. 2785bd8deadSopenharmony_ci In the case of a rectangular texture, ws and hs equal the specified 2795bd8deadSopenharmony_ci width and height respectively of the rectangular texture image 2805bd8deadSopenharmony_ci while ds is 1." 2815bd8deadSopenharmony_ci 2825bd8deadSopenharmony_ci Amend the following paragraph that was added by the 2835bd8deadSopenharmony_ci ARB_texture_cube_map specification after the first paragraph on 2845bd8deadSopenharmony_ci page 117: 2855bd8deadSopenharmony_ci 2865bd8deadSopenharmony_ci "A 2D texture consists of a single 2D texture image. A rectangle 2875bd8deadSopenharmony_ci texture consists of a single 2D texture image. A cube map texture 2885bd8deadSopenharmony_ci is a set of six 2D texture images. The six cube map texture 2895bd8deadSopenharmony_ci targets form a single cube map texture though each target names 2905bd8deadSopenharmony_ci a distinct face of the cube map. The TEXTURE_CUBE_MAP_*_ARB 2915bd8deadSopenharmony_ci targets listed above update their appropriate cube map face 2D 2925bd8deadSopenharmony_ci texture image. Note that the six cube map 2D image tokens such as 2935bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_X_ARB are used when specifying, updating, 2945bd8deadSopenharmony_ci or querying one of a cube map's six 2D image, but when enabling cube 2955bd8deadSopenharmony_ci map texturing or binding to a cube map texture object (that is when 2965bd8deadSopenharmony_ci the cube map is accessed as a whole as opposed to a particular 2D 2975bd8deadSopenharmony_ci image), the TEXTURE_CUBE_MAP_ARB target is specified." 2985bd8deadSopenharmony_ci 2995bd8deadSopenharmony_ci Append to the end of the third to the last paragraph in the section 3005bd8deadSopenharmony_ci (page 118): 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci "A rectangular texture array has depth dt=1, with height ht and width 3035bd8deadSopenharmony_ci wt defined by the specified image height and width parameters." 3045bd8deadSopenharmony_ci 3055bd8deadSopenharmony_ci -- Section 3.8.2 "Alternate Texture Image Specification Commands" 3065bd8deadSopenharmony_ci 3075bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_NV to the second paragraph (page 120) to say: 3085bd8deadSopenharmony_ci 3095bd8deadSopenharmony_ci ... "Currently, <target> must be TEXTURE_2D, 3105bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV, TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 3115bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 3125bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 3135bd8deadSopenharmony_ci or TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB." ... 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_NV to the fourth paragraph (page 121) to say: 3165bd8deadSopenharmony_ci 3175bd8deadSopenharmony_ci ... "Currently the target arguments of TexSubImage1D and 3185bd8deadSopenharmony_ci CopyTexSubImage1D must be TEXTURE_1D, the <target> arguments of 3195bd8deadSopenharmony_ci TexSubImage2D and CopyTexSubImage2D must be one of TEXTURE_2D, 3205bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV, TEXTURE_CUBE_MAP_POSITIVE_X_ARB, 3215bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, 3225bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, 3235bd8deadSopenharmony_ci or TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, and the <target> arguments of 3245bd8deadSopenharmony_ci TexSubImage3D and CopyTexSubImage3D must be TEXTURE_3D." ... 3255bd8deadSopenharmony_ci 3265bd8deadSopenharmony_ci Also add to the end of the fourth paragraph (121): 3275bd8deadSopenharmony_ci 3285bd8deadSopenharmony_ci "If target is TEXTURE_RECTANGLE_NV and level is not zero, the error 3295bd8deadSopenharmony_ci INVALID_VALUE is generated." 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ci -- Section "Compressed Texture Images" in the ARB_texture_compression 3325bd8deadSopenharmony_ci specification 3335bd8deadSopenharmony_ci 3345bd8deadSopenharmony_ci Add the following paragraph after introducing the 3355bd8deadSopenharmony_ci CompressedTexImage<n>DARB commands: 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target parameter to one 3385bd8deadSopenharmony_ci of the CompressedTexImage<n>DARB commands is TEXTURE_RECTANGLE_NV." 3395bd8deadSopenharmony_ci 3405bd8deadSopenharmony_ci Add the following paragraph after introducing the 3415bd8deadSopenharmony_ci CompressedTexSubImage<n>DARB commands: 3425bd8deadSopenharmony_ci 3435bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target parameter 3445bd8deadSopenharmony_ci to one of the CompressedTexSubImage<n>DARB commands is 3455bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV." 3465bd8deadSopenharmony_ci 3475bd8deadSopenharmony_ci -- Section 3.8.3 "Texture Parameters" 3485bd8deadSopenharmony_ci 3495bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_NV to paragraph one (page 124) to say: 3505bd8deadSopenharmony_ci 3515bd8deadSopenharmony_ci ... "<target> is the target, either TEXTURE_1D, TEXTURE_2D, 3525bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV, TEXTURE_3D, or TEXTURE_CUBE_MAP_ARB." ... 3535bd8deadSopenharmony_ci 3545bd8deadSopenharmony_ci Add the following paragraph to the end of the section (page 134): 3555bd8deadSopenharmony_ci 3565bd8deadSopenharmony_ci "Certain texture parameter values may not be specified for textures 3575bd8deadSopenharmony_ci with a target of TEXTURE_RECTANGLE_NV. The error INVALID_ENUM 3585bd8deadSopenharmony_ci is generated if the target is TEXTURE_RECTANGLE_NV and the 3595bd8deadSopenharmony_ci TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R parameter is set to 3605bd8deadSopenharmony_ci REPEAT or MIRRORED_REPEAT_IBM. The error INVALID_ENUM is generated 3615bd8deadSopenharmony_ci if the target is TEXTURE_RECTANGLE_NV and the TEXTURE_MIN_FILTER is 3625bd8deadSopenharmony_ci set to a value other than NEAREST or LINEAR (no mipmap filtering 3635bd8deadSopenharmony_ci is permitted). The error INVALID_ENUM is generated if the target 3645bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_NV and TEXTURE_BASE_LEVEL is set to any value 3655bd8deadSopenharmony_ci other than zero." 3665bd8deadSopenharmony_ci 3675bd8deadSopenharmony_ci -- Section 3.8.4 "Texture Wrap Modes" 3685bd8deadSopenharmony_ci 3695bd8deadSopenharmony_ci Add this final additional paragraph: 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci "Texture coordinates are clamped differently for rectangular 3725bd8deadSopenharmony_ci textures. The r texture coordinate is wrapped as described above (as 3735bd8deadSopenharmony_ci required for shadow mapping to operate correctly). When the texture 3745bd8deadSopenharmony_ci target is TEXTURE_RECTANGLE_NV, the s and t coordinates are wrapped 3755bd8deadSopenharmony_ci as follows: CLAMP causes the s coordinate to be clamped to the range 3765bd8deadSopenharmony_ci [0,ws]. CLAMP causes the t coordinate to be clamped to the range 3775bd8deadSopenharmony_ci [0,hs]. CLAMP_TO_EDGE causes the s coordinate to be clamped to 3785bd8deadSopenharmony_ci the range [0.5,ws-0.5]. CLAMP_TO_EDGE causes the t coordinate 3795bd8deadSopenharmony_ci to be clamped to the range [0.5,hs-0.5]. CLAMP_TO_BORDER_ARB 3805bd8deadSopenharmony_ci causes the s coordinate to be clamped to the range [-0.5,ws+0.5]. 3815bd8deadSopenharmony_ci CLAMP_TO_BORDER_ARB causes the t coordinate to be clamped to the 3825bd8deadSopenharmony_ci range [-0.5,hs+0.5]." 3835bd8deadSopenharmony_ci 3845bd8deadSopenharmony_ci -- Section 3.8.5 "Texture Minification" under "Mipmapping" 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci Change the second full paragraph on page 126 to read: 3875bd8deadSopenharmony_ci 3885bd8deadSopenharmony_ci "For non-rectangular textures, let u(x,y) = 2^n*s(x,y), v(x,y) = 3895bd8deadSopenharmony_ci 2^m*t(x,y), and w(x,y) = 2^l*r(x,y), where n, m, and l are defined 3905bd8deadSopenharmony_ci by equations 3.11, 3.12, and 3.13 with ws, hs, and ds equal to 3915bd8deadSopenharmony_ci the width, height, and depth of the image array whose level is 3925bd8deadSopenharmony_ci TEXTURE_BASE_LEVEL. However, for rectangular textures let u(x,y) 3935bd8deadSopenharmony_ci = s(x,y), v(x,y) = t(x,y), and w(x,y) = r(x,y)." 3945bd8deadSopenharmony_ci 3955bd8deadSopenharmony_ci Update the last sentence in the first full paragraph on page 127 3965bd8deadSopenharmony_ci to read: 3975bd8deadSopenharmony_ci 3985bd8deadSopenharmony_ci "Depending on whether the texture's target is rectangular or 3995bd8deadSopenharmony_ci non-rectangular, this means the texel at location (i,j,k) becomes 4005bd8deadSopenharmony_ci the texture value, with i given by 4015bd8deadSopenharmony_ci 4025bd8deadSopenharmony_ci / floor(u), s < 1 4035bd8deadSopenharmony_ci / 4045bd8deadSopenharmony_ci i = { 2^n-1, s == 1, non-rectangular texture (3.17) 4055bd8deadSopenharmony_ci \ 4065bd8deadSopenharmony_ci \ ws-1, s == 1, rectangular texture 4075bd8deadSopenharmony_ci 4085bd8deadSopenharmony_ci (Recall that if TEXTURE_WRAP_S is REPEAT, then 0 <= s < 1.) Similarly, 4095bd8deadSopenharmony_ci j is found as 4105bd8deadSopenharmony_ci 4115bd8deadSopenharmony_ci / floor(v), t < 1 4125bd8deadSopenharmony_ci / 4135bd8deadSopenharmony_ci j = { 2^m-1, t == 1, non-rectangular texture (3.18) 4145bd8deadSopenharmony_ci \ 4155bd8deadSopenharmony_ci \ hs-1, t == 1, rectangular texture 4165bd8deadSopenharmony_ci 4175bd8deadSopenharmony_ci and k is found as 4185bd8deadSopenharmony_ci 4195bd8deadSopenharmony_ci / floor(w), r < 1 4205bd8deadSopenharmony_ci / 4215bd8deadSopenharmony_ci k = { 2^l-1, r == 1, non-rectangular texture (3.19) 4225bd8deadSopenharmony_ci \ 4235bd8deadSopenharmony_ci \ 0, r == 1, rectangular texture" 4245bd8deadSopenharmony_ci 4255bd8deadSopenharmony_ci Change the last sentence in the partial paragraph after equation 4265bd8deadSopenharmony_ci 3.19 to read: 4275bd8deadSopenharmony_ci 4285bd8deadSopenharmony_ci "For a two-dimensional or rectangular texture, k is irrelevant; 4295bd8deadSopenharmony_ci the texel at location (i,j) becomes the texture value." 4305bd8deadSopenharmony_ci 4315bd8deadSopenharmony_ci Change the sentence preceding equation 3.20 (page 128) specifying 4325bd8deadSopenharmony_ci how to compute the value tau for a two-dimensional texture to: 4335bd8deadSopenharmony_ci 4345bd8deadSopenharmony_ci "For a two-dimensional or rectangular texture," 4355bd8deadSopenharmony_ci 4365bd8deadSopenharmony_ci Follow the first full paragraph on page 130 with: 4375bd8deadSopenharmony_ci 4385bd8deadSopenharmony_ci "Rectangular textures do not support mipmapping (it is an error to 4395bd8deadSopenharmony_ci specify a minification filter that requires mipmapping)." 4405bd8deadSopenharmony_ci 4415bd8deadSopenharmony_ci -- Section 3.8.7 "Texture State and Proxy State" 4425bd8deadSopenharmony_ci 4435bd8deadSopenharmony_ci Change the first sentence of the first paragraph (page 131) to say: 4445bd8deadSopenharmony_ci 4455bd8deadSopenharmony_ci "The state necessary for texture can be divided into two categories. 4465bd8deadSopenharmony_ci First, there are the ten sets of mipmap arrays (one each for the 4475bd8deadSopenharmony_ci one-, two-, and three-dimensional texture targets, one for the 4485bd8deadSopenharmony_ci rectangular texture target (though the rectangular texture target 4495bd8deadSopenharmony_ci has only one mipmap level), and six for the cube map texture targets) 4505bd8deadSopenharmony_ci and their number." ... 4515bd8deadSopenharmony_ci 4525bd8deadSopenharmony_ci Change the fourth and third to last sentences of the first paragraph 4535bd8deadSopenharmony_ci to say: 4545bd8deadSopenharmony_ci 4555bd8deadSopenharmony_ci "In the initial state, the value assigned to TEXTURE_MIN_FILTER 4565bd8deadSopenharmony_ci is NEAREST_MIPMAP_LINEAR, except for rectangular textures where 4575bd8deadSopenharmony_ci the initial value is LINEAR, and the value for TEXTURE_MAG_FILTER 4585bd8deadSopenharmony_ci is LINEAR. s, t, and r warp modes are all set to REPEAT, except 4595bd8deadSopenharmony_ci for rectangular textures where the initial value is CLAMP_TO_EDGE." 4605bd8deadSopenharmony_ci 4615bd8deadSopenharmony_ci Change the second paragraph (page 132) to say: 4625bd8deadSopenharmony_ci 4635bd8deadSopenharmony_ci "In addition to the one-, two-, three-dimensional, rectangular, and 4645bd8deadSopenharmony_ci the six cube map sets of image arrays, the partially instantiated 4655bd8deadSopenharmony_ci one-, two-, and three-dimensional, rectangular, and one cube map 4665bd8deadSopenharmony_ci sets of proxy image arrays are maintained." ... 4675bd8deadSopenharmony_ci 4685bd8deadSopenharmony_ci Change the third paragraph (page 132) to: 4695bd8deadSopenharmony_ci 4705bd8deadSopenharmony_ci "One- and two-dimensional and rectangular proxy arrays are operated 4715bd8deadSopenharmony_ci on in the same way when TexImage1D is executed with target specified 4725bd8deadSopenharmony_ci as PROXY_TEXTURE_1D, or TexImage2D is executed with target specified 4735bd8deadSopenharmony_ci as PROXY_TEXTURE_2D or PROXY_TEXTURE_RECTANGLE_NV." 4745bd8deadSopenharmony_ci 4755bd8deadSopenharmony_ci Change the second sentence of the fourth paragraph (page 132) to: 4765bd8deadSopenharmony_ci 4775bd8deadSopenharmony_ci "Therefore PROXY_TEXTURE_1D, PROXY_TEXTURE_2D, 4785bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_NV, PROXY_TEXTURE_3D, and 4795bd8deadSopenharmony_ci PROXY_TEXTURE_CUBE_MAP_ARB cannot be used as textures, and their 4805bd8deadSopenharmony_ci images must never be queried using GetTexImage." ... 4815bd8deadSopenharmony_ci 4825bd8deadSopenharmony_ci -- Section 3.8.8 "Texture Objects" 4835bd8deadSopenharmony_ci 4845bd8deadSopenharmony_ci Change the first sentence of the first paragraph (page 132) to say: 4855bd8deadSopenharmony_ci 4865bd8deadSopenharmony_ci "In addition to the default textures TEXTURE_1D, TEXTURE_2D, 4875bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV, TEXTURE_3D, and TEXTURE_CUBE_MAP_ARB, named 4885bd8deadSopenharmony_ci one-dimensional, two-dimensional, rectangular, and three-dimensional 4895bd8deadSopenharmony_ci texture objects and cube map texture objects can be created and 4905bd8deadSopenharmony_ci operated on." ... 4915bd8deadSopenharmony_ci 4925bd8deadSopenharmony_ci Change the second paragraph (page 132) to say: 4935bd8deadSopenharmony_ci 4945bd8deadSopenharmony_ci "A texture object is created by binding an unused name to 4955bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, or 4965bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_ARB." ... "If the new texture object is bound 4975bd8deadSopenharmony_ci to TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, or 4985bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_ARB, it remains a one-dimensional, two-dimensional, 4995bd8deadSopenharmony_ci rectangular, three-dimensional, or cube map texture until it is 5005bd8deadSopenharmony_ci deleted." 5015bd8deadSopenharmony_ci 5025bd8deadSopenharmony_ci Change the third paragraph (page 133) to say: 5035bd8deadSopenharmony_ci 5045bd8deadSopenharmony_ci "BindTexture may also be used to bind an existing texture object 5055bd8deadSopenharmony_ci to either TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, 5065bd8deadSopenharmony_ci or TEXTURE_CUBE_MAP_ARB." 5075bd8deadSopenharmony_ci 5085bd8deadSopenharmony_ci Change paragraph five (page 133) to say: 5095bd8deadSopenharmony_ci 5105bd8deadSopenharmony_ci "In the initial state, TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, 5115bd8deadSopenharmony_ci TEXTURE_3D, and TEXTURE_CUBE_MAP have one-dimensional, 5125bd8deadSopenharmony_ci two-dimensional, rectangular, three-dimensional, and cube map state 5135bd8deadSopenharmony_ci vectors associated with them respectively." ... "The initial, 5145bd8deadSopenharmony_ci one-dimensional, two-dimensional, rectangular, three-dimensional, and 5155bd8deadSopenharmony_ci cube map texture is therefore operated upon, queried, and applied 5165bd8deadSopenharmony_ci as TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, 5175bd8deadSopenharmony_ci and TEXTURE_CUBE_MAP_ARB respectively while 0 is bound to the 5185bd8deadSopenharmony_ci corresponding targets." 5195bd8deadSopenharmony_ci 5205bd8deadSopenharmony_ci Change paragraph six (page 133) to say: 5215bd8deadSopenharmony_ci 5225bd8deadSopenharmony_ci ... "If a texture that is currently bound to one of the targets 5235bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, or 5245bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_ARB is deleted, it is as though BindTexture has 5255bd8deadSopenharmony_ci been executed with the same <target> and <texture> zero." ... 5265bd8deadSopenharmony_ci 5275bd8deadSopenharmony_ci -- Section 3.8.10 "Texture Application" 5285bd8deadSopenharmony_ci 5295bd8deadSopenharmony_ci Replace the beginning sentences of the first paragraph (page 138) 5305bd8deadSopenharmony_ci with: 5315bd8deadSopenharmony_ci 5325bd8deadSopenharmony_ci "Texturing is enabled or disabled using the generic Enable and 5335bd8deadSopenharmony_ci Disable commands, respectively, with the symbolic constants 5345bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, 5355bd8deadSopenharmony_ci or TEXTURE_CUBE_MAP_ARB to enable the one-dimensional, 5365bd8deadSopenharmony_ci two-dimensional, rectangular, three-dimensional, or cube map 5375bd8deadSopenharmony_ci texturing respectively. If both two- and one-dimensional textures 5385bd8deadSopenharmony_ci are enabled, the two-dimensional texture is used. If the rectangular 5395bd8deadSopenharmony_ci and either of the two- or one-dimensional textures is enabled, the 5405bd8deadSopenharmony_ci rectangular texture is used. If the three-dimensional and any of the 5415bd8deadSopenharmony_ci rectangular, two-dimensional, or one-dimensional textures is enabled, 5425bd8deadSopenharmony_ci the three-dimensional texture is used. If the cube map texture 5435bd8deadSopenharmony_ci and any of the three-dimensional, rectangular, two-dimensional, 5445bd8deadSopenharmony_ci or one-dimensional textures is enabled, then cube map texturing is 5455bd8deadSopenharmony_ci used. 5465bd8deadSopenharmony_ci 5475bd8deadSopenharmony_ciAdditions to Chapter 4 of the GL Specification (Per-Fragment Operations 5485bd8deadSopenharmony_ciand the Framebuffer) 5495bd8deadSopenharmony_ci 5505bd8deadSopenharmony_ci None 5515bd8deadSopenharmony_ci 5525bd8deadSopenharmony_ciAdditions to Chapter 5 of the GL Specification (Special Functions) 5535bd8deadSopenharmony_ci 5545bd8deadSopenharmony_ci -- Section 5.4 "Display Lists" 5555bd8deadSopenharmony_ci 5565bd8deadSopenharmony_ci In the first paragraph (page 179), add PROXY_TEXTURE_RECTANGLE_NV 5575bd8deadSopenharmony_ci to the list of PROXY_* tokens. 5585bd8deadSopenharmony_ci 5595bd8deadSopenharmony_ciAdditions to Chapter 6 of the GL Specification (State and State Requests) 5605bd8deadSopenharmony_ci 5615bd8deadSopenharmony_ci -- Section 6.1.3 "Enumerated Queries" 5625bd8deadSopenharmony_ci 5635bd8deadSopenharmony_ci Change the fourth paragraph (page 183) to say: 5645bd8deadSopenharmony_ci 5655bd8deadSopenharmony_ci "The GetTexParameter parameter <target> may be one of 5665bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, or 5675bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_ARB, indicating the currently bound one-dimensional, 5685bd8deadSopenharmony_ci two-dimensional, rectangular, three-dimensional, or cube map 5695bd8deadSopenharmony_ci texture object. For GetTexLevelParameter, <target> may be one 5705bd8deadSopenharmony_ci of TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_NV, TEXTURE_3D, 5715bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_X_ARB, TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 5725bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 5735bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, 5745bd8deadSopenharmony_ci PROXY_TEXTURE_1D, PROXY_TEXTURE_2D, PROXY_TEXTURE_RECTANGLE_NV, 5755bd8deadSopenharmony_ci PROXY_TEXTURE_3D, or PROXY_TEXTURE_CUBE_MAP_ARB, indicating the 5765bd8deadSopenharmony_ci one-dimensional texture object, two-dimensional texture object, 5775bd8deadSopenharmony_ci rectangular texture object, three-dimensional texture object, or one 5785bd8deadSopenharmony_ci of the six distinct 2D images making up the cube map texture object 5795bd8deadSopenharmony_ci or one-dimensional, two-dimensional, rectangular, three-dimensional, 5805bd8deadSopenharmony_ci or cube map proxy state vector. Note that TEXTURE_CUBE_MAP_ARB is 5815bd8deadSopenharmony_ci not a valid <target> parameter for GetTexLevelParameter because it 5825bd8deadSopenharmony_ci does not specify a particular cube map face." 5835bd8deadSopenharmony_ci 5845bd8deadSopenharmony_ci -- Section 6.1.4 "Texture Queries" 5855bd8deadSopenharmony_ci 5865bd8deadSopenharmony_ci Change the first paragraph (page 184) to read: 5875bd8deadSopenharmony_ci 5885bd8deadSopenharmony_ci ... "It is somewhat different from the other get commands; <tex> is a 5895bd8deadSopenharmony_ci symbolic value indicating which texture (or texture face in the case 5905bd8deadSopenharmony_ci of a cube map texture target name) is to be obtained. TEXTURE_1D 5915bd8deadSopenharmony_ci indicates a one-dimensional texture, TEXTURE_2D indicates a 5925bd8deadSopenharmony_ci two-dimensional texture, TEXTURE_RECTANGLE_NV indicates a rectangular 5935bd8deadSopenharmony_ci texture, TEXTURE_3D indicates a three-dimensional texture, and 5945bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_X_ARB, TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, 5955bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, 5965bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, and TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 5975bd8deadSopenharmony_ci indicate the respective face of a cube map texture." 5985bd8deadSopenharmony_ci 5995bd8deadSopenharmony_ci Add a final sentence to the fourth paragraph: 6005bd8deadSopenharmony_ci 6015bd8deadSopenharmony_ci "Calling GetTexImage with a lod not zero when the tex is 6025bd8deadSopenharmony_ci TEXTURE_RECTANGLE_NV causes the error INVALID_VALUE." 6035bd8deadSopenharmony_ci 6045bd8deadSopenharmony_ciAdditions to the GLX Specification 6055bd8deadSopenharmony_ci 6065bd8deadSopenharmony_ci None 6075bd8deadSopenharmony_ci 6085bd8deadSopenharmony_ciGLX Protocol 6095bd8deadSopenharmony_ci 6105bd8deadSopenharmony_ci None 6115bd8deadSopenharmony_ci 6125bd8deadSopenharmony_ciDependencies on ARB_texture_border_clamp 6135bd8deadSopenharmony_ci 6145bd8deadSopenharmony_ci If ARB_texture_border_clamp is not supported, references to the 6155bd8deadSopenharmony_ci CLAMP_TO_BORDER_ARB wrap mode in this document should be ignored. 6165bd8deadSopenharmony_ci 6175bd8deadSopenharmony_ciDependencies on IBM_mirrored_repeat 6185bd8deadSopenharmony_ci 6195bd8deadSopenharmony_ci If IBM_mirrored_repeat is not supported, references to the 6205bd8deadSopenharmony_ci MIRRORED_REPEAT_IBM wrap mode in this document should be ignored. 6215bd8deadSopenharmony_ci 6225bd8deadSopenharmony_ciDependencies on EXT_paletted_texture 6235bd8deadSopenharmony_ci 6245bd8deadSopenharmony_ci If EXT_paletted_texture is not supported, references to the 6255bd8deadSopenharmony_ci COLOR_INDEX, COLOR_INDEX<n>_EXT, ColorTable, and ColorTableEXT should 6265bd8deadSopenharmony_ci be ignored. 6275bd8deadSopenharmony_ci 6285bd8deadSopenharmony_ciDependencies on EXT_texture_compression_s3tc 6295bd8deadSopenharmony_ci 6305bd8deadSopenharmony_ci If EXT_texture_compression_s3tc is not supported, references 6315bd8deadSopenharmony_ci to CompressedTexImage2DARB and CompressedTexSubImageARB and the 6325bd8deadSopenharmony_ci COMPRESSED_*_S3TC_DXT*_EXT enumerants should be ignored. 6335bd8deadSopenharmony_ci 6345bd8deadSopenharmony_ciErrors 6355bd8deadSopenharmony_ci 6365bd8deadSopenharmony_ci INVALID_ENUM is generated when ColorTable (or ColorTableEXT or the 6375bd8deadSopenharmony_ci various ColorTable and ColorTableEXT alternative commands) is called 6385bd8deadSopenharmony_ci and the target is TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV. 6395bd8deadSopenharmony_ci 6405bd8deadSopenharmony_ci INVALID_ENUM is generated when TexImage2D is called and the target 6415bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_NV or PROXY_TEXTURE_RECTANGLE_NV and the format 6425bd8deadSopenharmony_ci is COLOR_INDEX or the internalformat is COLOR_INDEX or one of the 6435bd8deadSopenharmony_ci COLOR_INDEX<n>_EXT internal formats. 6445bd8deadSopenharmony_ci 6455bd8deadSopenharmony_ci INVALID_VALUE is generated when TexImage2D is called when the target 6465bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_NV if border is any value other than zero or 6475bd8deadSopenharmony_ci the level is any value other than zero. 6485bd8deadSopenharmony_ci 6495bd8deadSopenharmony_ci INVALID_VALUE is generated when TexImage2D is called when the target 6505bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_NV if the width is less than zero or the height 6515bd8deadSopenharmony_ci is less than zero. 6525bd8deadSopenharmony_ci 6535bd8deadSopenharmony_ci INVALID_VALUE is generated when TexSubImage2D or CopyTexSubImage2D 6545bd8deadSopenharmony_ci is called when the target is TEXTURE_RECTANGLE_NV if the level is 6555bd8deadSopenharmony_ci any value other than zero. 6565bd8deadSopenharmony_ci 6575bd8deadSopenharmony_ci INVALID_ENUM is generated when one of the CompressedTexImage<n>DARB 6585bd8deadSopenharmony_ci commands is called when the target parameter is TEXTURE_RECTANGLE_NV. 6595bd8deadSopenharmony_ci 6605bd8deadSopenharmony_ci INVALID_ENUM is generated when one of the CompressedTexSubImage<n>DARB 6615bd8deadSopenharmony_ci commands is called when the target parameter is TEXTURE_RECTANGLE_NV. 6625bd8deadSopenharmony_ci 6635bd8deadSopenharmony_ci INVALID_ENUM is generated when TexParameter is called with a 6645bd8deadSopenharmony_ci target of TEXTURE_RECTANGLE_NV and the TEXTURE_WRAP_S, TEXTURE_WRAP_T, 6655bd8deadSopenharmony_ci or TEXTURE_WRAP_R parameter is set to REPEAT or MIRRORED_REPEAT_IBM. 6665bd8deadSopenharmony_ci 6675bd8deadSopenharmony_ci INVALID_ENUM is generated when TexParameter is called with a 6685bd8deadSopenharmony_ci target of TEXTURE_RECTANGLE_NV and the TEXTURE_MIN_FILTER is set to 6695bd8deadSopenharmony_ci a value other than NEAREST or LINEAR. 6705bd8deadSopenharmony_ci 6715bd8deadSopenharmony_ci INVALID_VALUE is generated when TexParameter is called with a 6725bd8deadSopenharmony_ci target of TEXTURE_RECTANGLE_NV and the TEXTURE_BASE_LEVEL is set to 6735bd8deadSopenharmony_ci any value other than zero. 6745bd8deadSopenharmony_ci 6755bd8deadSopenharmony_ci INVALID_VALUE is generated when GetTexImage is called with a lod 6765bd8deadSopenharmony_ci not zero when the tex is TEXTURE_RECTANGLE_NV. 6775bd8deadSopenharmony_ci 6785bd8deadSopenharmony_ciNew State 6795bd8deadSopenharmony_ci 6805bd8deadSopenharmony_ci(table 6.12, p202) amend/add the following entries: 6815bd8deadSopenharmony_ci 6825bd8deadSopenharmony_ciGet Value Type Get Command Initial Value Description Sec Attribute 6835bd8deadSopenharmony_ci---------------------------- ---- ----------- ------------- --------------------- ------ -------------- 6845bd8deadSopenharmony_ciTEXTURE_RECTANGULAR_NV B IsEnabled False True if rectangular 3.8.10 texture/enable 6855bd8deadSopenharmony_ci texturing is enabled 6865bd8deadSopenharmony_ciTEXTURE_BINDING_RECTANGLE_NV Z+ GetIntegerv 0 Texture object 3.8.8 texture 6875bd8deadSopenharmony_ci for texture rectangle 6885bd8deadSopenharmony_ciTEXTURE_RECTANGLE_NV I GetTexImage see 3.8 rectangular texture 3.8 - 6895bd8deadSopenharmony_ci image for lod 0 6905bd8deadSopenharmony_ci 6915bd8deadSopenharmony_ci 6925bd8deadSopenharmony_ci(table 6.13, p203) amend/add the following entries: 6935bd8deadSopenharmony_ci 6945bd8deadSopenharmony_ciGet Value Type Get Command Initial Value Description Sec Attribute 6955bd8deadSopenharmony_ci------------------ ----- --------------- --------------------- -------------------- ----- --------- 6965bd8deadSopenharmony_ciTEXTURE_MIN_FILTER 2+xZ6 GetTexparameter NEAREST_MIPMAP_LINEAR Texture minification 3.8.5 texture 6975bd8deadSopenharmony_ci except for function 6985bd8deadSopenharmony_ci rectangular which is 6995bd8deadSopenharmony_ci LINEAR 7005bd8deadSopenharmony_ciTEXTURE_WRAP_S 5+xZ5 GetTexParameter REPEAT except Texture wrap mode S 3.8 texture 7015bd8deadSopenharmony_ci for rectangular 7025bd8deadSopenharmony_ci which is 7035bd8deadSopenharmony_ci CLAMP_TO_EDGE 7045bd8deadSopenharmony_ciTEXTURE_WRAP_T 5+xZ5 GetTexParameter REPEAT except Texture wrap mode T 3.8 texture 7055bd8deadSopenharmony_ci for rectangular 7065bd8deadSopenharmony_ci which is 7075bd8deadSopenharmony_ci CLAMP_TO_EDGE 7085bd8deadSopenharmony_ciTEXTURE_WRAP_R 5+xZ5 GetTexParameter REPEAT except Texture wrap mode R 3.8 texture 7095bd8deadSopenharmony_ci for rectangular 7105bd8deadSopenharmony_ci which is 7115bd8deadSopenharmony_ci CLAMP_TO_EDGE 7125bd8deadSopenharmony_ci 7135bd8deadSopenharmony_ciNew Implementation Dependent State 7145bd8deadSopenharmony_ci 7155bd8deadSopenharmony_ci(table 6.24, p214) add the following entry: 7165bd8deadSopenharmony_ci 7175bd8deadSopenharmony_ciGet Value Type Get Command Minimum Value Description Sec Attribute 7185bd8deadSopenharmony_ci----------------------------- ---- ----------- ------------- ------------------- ----- --------- 7195bd8deadSopenharmony_ciMAX_RECTANGLE_TEXTURE_SIZE_NV Z+ GetIntegerv 64 Maximum rectangular 3.8.1 - 7205bd8deadSopenharmony_ci texture image 7215bd8deadSopenharmony_ci dimension 7225bd8deadSopenharmony_ci 7235bd8deadSopenharmony_ciRevision History 7245bd8deadSopenharmony_ci 7255bd8deadSopenharmony_ci Jan 2, 2003 - Fix typo in 4th paragraph of Overview to read: "NPOTD 7265bd8deadSopenharmony_ci textures are accessed by non-normalized texture coordinates." 7275bd8deadSopenharmony_ci 7285bd8deadSopenharmony_ci March 5, 2004 - Delete update to the convolution section because 7295bd8deadSopenharmony_ci it was bogus language in the OpenGL 1.2.1 specification saying 7305bd8deadSopenharmony_ci convolution affects glGetTexImage (it does not); this language was 7315bd8deadSopenharmony_ci deleted in OpenGL 1.3. Fix minor typo in 6.12 table. 732