15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ARB_texture_rectangle 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ARB_texture_rectangle 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContributors 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Pat Brown 125bd8deadSopenharmony_ci Daniel Ginsburg 135bd8deadSopenharmony_ci Michael Gold 145bd8deadSopenharmony_ci Mark J. Kilgard 155bd8deadSopenharmony_ci Jon Leech 165bd8deadSopenharmony_ci Bill Licea-Kane 175bd8deadSopenharmony_ci Barthold Lichtenbelt 185bd8deadSopenharmony_ci Benjamin Lipchak 195bd8deadSopenharmony_ci Brian Paul 205bd8deadSopenharmony_ci John Rosasco 215bd8deadSopenharmony_ci Jeremy Sandmel 225bd8deadSopenharmony_ci Geoff Stahl 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ciContact 255bd8deadSopenharmony_ci 265bd8deadSopenharmony_ci Mark J. Kilgard, NVIDIA Corporation (mjk 'at' nvidia.com) 275bd8deadSopenharmony_ci Geoff Stahl, Apple Computer (gstahl 'at' apple.com) 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ciNotice 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci Copyright (c) 2004-2013 The Khronos Group Inc. Copyright terms at 325bd8deadSopenharmony_ci http://www.khronos.org/registry/speccopyright.html 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ciSpecification Update Policy 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci Khronos-approved extension specifications are updated in response to 375bd8deadSopenharmony_ci issues and bugs prioritized by the Khronos OpenGL Working Group. For 385bd8deadSopenharmony_ci extensions which have been promoted to a core Specification, fixes will 395bd8deadSopenharmony_ci first appear in the latest version of that core Specification, and will 405bd8deadSopenharmony_ci eventually be backported to the extension document. This policy is 415bd8deadSopenharmony_ci described in more detail at 425bd8deadSopenharmony_ci https://www.khronos.org/registry/OpenGL/docs/update_policy.php 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ciStatus 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci Complete. Approved by the ARB on June 8, 2004. 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci Amended language re-voted by the ARB on November 3, 2005. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci Functionally identical to EXT_texture_rectangle and 515bd8deadSopenharmony_ci NV_texture_rectangle extensions currently shipping, except for 525bd8deadSopenharmony_ci the additions to the OpenGL Shading Language. 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ciVersion 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci Date: October 4, 2005 575bd8deadSopenharmony_ci Revision: 1.21 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ciNumber 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci ARB Extension #38 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ciDependencies 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci OpenGL 1.1 is required 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci OpenGL 1.4 (or ARB_texture_mirrored_repeat) affects the definition 685bd8deadSopenharmony_ci of this extension. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci ARB_texture_non_power_of_two trivially affects the definition of 715bd8deadSopenharmony_ci this extension. 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci ATI_texture_mirror_once affects the definition of this extension. 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci EXT_paletted_texture affects the definition of this extension. 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci EXT_texture_compression_s3tc affects the definition of this 785bd8deadSopenharmony_ci extension. 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci EXT_texture_mirror_clamp affects the definition of this extension. 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci The OpenGL Shading Language specification (provided by OpenGL 2.0 835bd8deadSopenharmony_ci and/or ARB_shader_objects) interacts with this extension. 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci This extension is written against the OpenGL 2.0 specification. 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ciOverview 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci OpenGL texturing is limited to images with power-of-two dimensions 905bd8deadSopenharmony_ci and an optional 1-texel border. The ARB_texture_rectangle extension 915bd8deadSopenharmony_ci adds a new texture target that supports 2D textures without requiring 925bd8deadSopenharmony_ci power-of-two dimensions. 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci Non-power-of-two sized (NPOTS) textures are useful for storing video 955bd8deadSopenharmony_ci images that do not have power-of-two sized (POTS). Re-sampling 965bd8deadSopenharmony_ci artifacts are avoided and less texture memory may be required by 975bd8deadSopenharmony_ci using non-power-of-two sized textures. Non-power-of-two sized 985bd8deadSopenharmony_ci textures are also useful for shadow maps and window-space texturing. 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci However, non-power-of-two sized textures have limitations that 1015bd8deadSopenharmony_ci do not apply to power-of-two sized textures. NPOTS textures may 1025bd8deadSopenharmony_ci not use mipmap filtering; POTS textures support both mipmapped 1035bd8deadSopenharmony_ci and non-mipmapped filtering. NPOTS textures support only the 1045bd8deadSopenharmony_ci GL_CLAMP, GL_CLAMP_TO_EDGE, and GL_CLAMP_TO_BORDER wrap modes; 1055bd8deadSopenharmony_ci POTS textures support GL_CLAMP_TO_EDGE, GL_REPEAT, GL_CLAMP, 1065bd8deadSopenharmony_ci GL_MIRRORED_REPEAT, and GL_CLAMP_TO_BORDER (and GL_MIRROR_CLAMP_ATI 1075bd8deadSopenharmony_ci and GL_MIRROR_CLAMP_TO_EDGE_ATI if ATI_texture_mirror_once is 1085bd8deadSopenharmony_ci supported) . NPOTS textures do not support an optional 1-texel 1095bd8deadSopenharmony_ci border; POTS textures do support an optional 1-texel border. 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci NPOTS textures are accessed by dimension-dependent (aka 1125bd8deadSopenharmony_ci non-normalized) texture coordinates. So instead of thinking of 1135bd8deadSopenharmony_ci the texture image lying in a [0..1]x[0..1] range, the NPOTS texture 1145bd8deadSopenharmony_ci image lies in a [0..w]x[0..h] range. 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci This extension adds a new texture target and related state (proxy, 1175bd8deadSopenharmony_ci binding, max texture size). 1185bd8deadSopenharmony_ci 1195bd8deadSopenharmony_ciIssues 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ci 1) Should rectangular textures simply be an extension to the 2D texture 1225bd8deadSopenharmony_ci target that allows non-power-of-two widths and heights? 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci No. The rectangular texture is an entirely new texture target type 1255bd8deadSopenharmony_ci called GL_TEXTURE_RECTANGLE_ARB. This is because while the texture 1265bd8deadSopenharmony_ci rectangle target relaxes the power-of-two dimensions requirements of 1275bd8deadSopenharmony_ci the texture 2D target, it also has limitations such as the absence of 1285bd8deadSopenharmony_ci both mipmapping and the GL_REPEAT and GL_MIRRORED_REPEAT wrap modes. 1295bd8deadSopenharmony_ci Additionally, rectangular textures do not use [0..1] normalized 1305bd8deadSopenharmony_ci texture coordinates. 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci The texture rectangle is an analogue to the pixel rectangle primitive 1335bd8deadSopenharmony_ci (see section 3.6 titled "Pixel Rectangles" in the core specification) 1345bd8deadSopenharmony_ci and the framebuffer. Just as the pixel rectangle primitive and 1355bd8deadSopenharmony_ci the framebuffer are accessed by integer-ized dimension-dependent 2D 1365bd8deadSopenharmony_ci coordinates, so is the texture rectangle. Just as pixel rectangles 1375bd8deadSopenharmony_ci and the framebuffer do not have mipmaps, nor do texture rectangles. 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci 2) Should 1D, 2D, 3D, or cube map textures be allowed to be NPOTS by 1405bd8deadSopenharmony_ci this extension? 1415bd8deadSopenharmony_ci 1425bd8deadSopenharmony_ci No. The ARB_texture_non_power_of_two extension relaxes the 1435bd8deadSopenharmony_ci power-of-two restrictions for these conventional texture targets to 1445bd8deadSopenharmony_ci support NPOTS while maintaining the normalized texture coordinates. 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci 3) How is the image of a rectangular texture specified? 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci Using the standard OpenGL API for specifying a 2D texture 1495bd8deadSopenharmony_ci image: glTexImage2D, glSubTexImage2D, glCopyTexImage2D, 1505bd8deadSopenharmony_ci and glCopySubTexImage2D. The target for these commands is 1515bd8deadSopenharmony_ci GL_TEXTURE_RECTANGLE_ARB though. 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci This is similar to how the texture cube map functionality uses the 2D 1545bd8deadSopenharmony_ci texture image specification API though with its own texture target. 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci The texture target GL_TEXTURE_RECTANGLE_ARB should also 1575bd8deadSopenharmony_ci be used for glGetTexImage, glGetTexLevelParameteriv, and 1585bd8deadSopenharmony_ci glGetTexLevelParameterfv. 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci 4) Should anything be said about performance? 1615bd8deadSopenharmony_ci 1625bd8deadSopenharmony_ci No, but developers should not be surprised if conventional POTS 1635bd8deadSopenharmony_ci textures will render slightly faster than texture rectangle textures. 1645bd8deadSopenharmony_ci This is particularly likely to be true when texture rectangle 1655bd8deadSopenharmony_ci textures are minified leading to texture cache thrashing due to 1665bd8deadSopenharmony_ci lack of support for mipmaps. 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ci 5) Is mipmap filtering permitted? 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci Mipmap filtering is not permitted. Since this is the case the 1715bd8deadSopenharmony_ci default minification filter for GL_TEXTURE_RECTANGLE_ARB targets is 1725bd8deadSopenharmony_ci GL_LINEAR. 1735bd8deadSopenharmony_ci 1745bd8deadSopenharmony_ci 6) What texture wrap modes are allowed and what is the default 1755bd8deadSopenharmony_ci state? 1765bd8deadSopenharmony_ci 1775bd8deadSopenharmony_ci Only the GL_CLAMP, GL_CLAMP_TO_EDGE, and CLAMP_TO_BORDER 1785bd8deadSopenharmony_ci wrap modes are allowed. CLAMP_TO_EDGE is the default state. 1795bd8deadSopenharmony_ci GL_REPEAT and GL_MIRRORED_REPEAT are not supported with the 1805bd8deadSopenharmony_ci GL_TEXTURE_RECTANGLE_ARB texture target. 1815bd8deadSopenharmony_ci 1825bd8deadSopenharmony_ci 7) Are texture borders supported? 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci Borders are not supported. 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ci 8) Are paletted textures supported? 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci Paletted rectangular textures are not supported. 1895bd8deadSopenharmony_ci 1905bd8deadSopenharmony_ci 9) Can compressed texture images be specified for a rectangular texture? 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci The generic texture compression internal formats introduced by 1935bd8deadSopenharmony_ci ARB_texture_compression are supported for rectangular textures 1945bd8deadSopenharmony_ci because the image is not presented as compressed data and the 1955bd8deadSopenharmony_ci ARB_texture_compression extension always permits generic texture 1965bd8deadSopenharmony_ci compression internal formats to be stored in uncompressed form. 1975bd8deadSopenharmony_ci Implementations are free to support generic compression internal 1985bd8deadSopenharmony_ci formats for rectangular textures if supported but such support is 1995bd8deadSopenharmony_ci not required. 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci This extensions makes a blanket statement that specific compressed 2025bd8deadSopenharmony_ci internal formats for use with glCompressedTexImage<n>D are NOT 2035bd8deadSopenharmony_ci supported for rectangular textures. This is because several existing 2045bd8deadSopenharmony_ci hardware implementations of texture compression formats such as S3TC 2055bd8deadSopenharmony_ci are not designed for compressing rectangular textures. This does 2065bd8deadSopenharmony_ci not preclude future texture compression extensions from supporting 2075bd8deadSopenharmony_ci compressed internal formats that do work with rectangular extensions 2085bd8deadSopenharmony_ci (by relaxing the current blanket error condition). 2095bd8deadSopenharmony_ci 2105bd8deadSopenharmony_ci 10) How are rectangular textures enabled? 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ci Rectangular textures are enabled by enabling the 2135bd8deadSopenharmony_ci GL_TEXTURE_RECTANGLE_ARB texture target via glEnable 2145bd8deadSopenharmony_ci (GL_TEXTURE_RECTANGLE_ARB). This enable is prioritized above 2155bd8deadSopenharmony_ci GL_TEXTURE_2D and below GL_TEXTURE_3D. 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci From lowest priority to highest priority: GL_TEXTURE_1D, 2185bd8deadSopenharmony_ci GL_TEXTURE_2D, GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_3D, 2195bd8deadSopenharmony_ci GL_TEXTURE_CUBE_MAP. 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ci 11) How are texture coordinates addressed for rectangular textures? 2225bd8deadSopenharmony_ci 2235bd8deadSopenharmony_ci Texture coordinates are addressed without being normalized from 2245bd8deadSopenharmony_ci [0..1], instead [0..w] and [0..h] are used, where w and h are width 2255bd8deadSopenharmony_ci and height of the texture respectively. 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci 12) How should applications determine the available maximum texture 2285bd8deadSopenharmony_ci dimensions available? 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci Implementation dependent rectangular texture size limitations are 2315bd8deadSopenharmony_ci queried using the GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB parameter and 2325bd8deadSopenharmony_ci may be different that standard texture size limits. 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci 13) How does the handling of the R texture component differ from 2355bd8deadSopenharmony_ci the handling of S and T? 2365bd8deadSopenharmony_ci 2375bd8deadSopenharmony_ci The R texture coordinate for rectangular textures is handled 2385bd8deadSopenharmony_ci as it would be for standard two dimensional textures. Thus the 2395bd8deadSopenharmony_ci coordinates range from [0..1] and the wrapping mode is unchanged 2405bd8deadSopenharmony_ci from the default. 2415bd8deadSopenharmony_ci 2425bd8deadSopenharmony_ci 14) Does this extension work with OpenGL 1.4's shadow mapping? 2435bd8deadSopenharmony_ci 2445bd8deadSopenharmony_ci Yes. The one non-obvious allowance to support OpenGL 1.4's shadow 2455bd8deadSopenharmony_ci mapping is that the R texture coordinate wrap mode remains UNCHANGED 2465bd8deadSopenharmony_ci for rectangular textures. Clamping of the R texture coordinate 2475bd8deadSopenharmony_ci for rectangular textures uses the standard [0,1] interval rather 2485bd8deadSopenharmony_ci than the [0,w_s] or [0,h_s] intervals as in the case of S and T. 2495bd8deadSopenharmony_ci This is because R represents a depth value in the [0,1] range 2505bd8deadSopenharmony_ci whether using a 2D or rectangular texture. 2515bd8deadSopenharmony_ci 2525bd8deadSopenharmony_ci 15) How does this extension interact with GLSL based on the "OpenGL 2535bd8deadSopenharmony_ci Shading Language Extension Conventions"? 2545bd8deadSopenharmony_ci 2555bd8deadSopenharmony_ci Unfortunately, this extension was specified and implemented 2565bd8deadSopenharmony_ci contemporaneously with the GLSL Extension Conventions and because 2575bd8deadSopenharmony_ci of this timing does not follow its guidance for #extension and 2585bd8deadSopenharmony_ci adornment of new GLSL names. Because this extension has both an 2595bd8deadSopenharmony_ci API interaction (adding a new rectangle texture target) and a GLSL 2605bd8deadSopenharmony_ci interaction (functions and sampler types for accessing texture 2615bd8deadSopenharmony_ci rectangles), you can't practically use the GLSL texture rectangle 2625bd8deadSopenharmony_ci functionality without the API functionality. For this reason, 2635bd8deadSopenharmony_ci detecting the GL_ARB_texture_rectangle string is sufficient for 2645bd8deadSopenharmony_ci assuming the GLSL functionality is present. 2655bd8deadSopenharmony_ci 2665bd8deadSopenharmony_ci Conceptually, you can consider the declaration 2675bd8deadSopenharmony_ci #extension GL_ARB_texture_rectangle : require, to allow support 2685bd8deadSopenharmony_ci for texture rectangles, to be implicitly prepended to every 2695bd8deadSopenharmony_ci GLSL shader when ARB_texture_rectangle is advertised. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci All future GLSL extensions should follow the "OpenGL Shading Language 2725bd8deadSopenharmony_ci Extension Conventions" however. 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci 16) How can a GLSL shader tell if this extension is supported? 2755bd8deadSopenharmony_ci 2765bd8deadSopenharmony_ci "GL_ARB_texture_rectangle" preprocessor macro is predefined to be 1. 2775bd8deadSopenharmony_ci 2785bd8deadSopenharmony_ci 17) Should GL_SAMPLER_2D_RECT_ARB and GL_SAMPLER_2D_RECT_SHADOW_ARB be 2795bd8deadSopenharmony_ci returned by the "type" parameter of glGetActiveUniformARB when 2805bd8deadSopenharmony_ci returning the type of a sampler2DRect or sampler2DRectShadow sampler 2815bd8deadSopenharmony_ci uniform? 2825bd8deadSopenharmony_ci 2835bd8deadSopenharmony_ci Yes, there is already language in the ARB_shader_objects extension 2845bd8deadSopenharmony_ci saying this so there's no additional language added to this 2855bd8deadSopenharmony_ci extension. The language is missing from OpenGL 2.0 so we add the 2865bd8deadSopenharmony_ci ARB_shader_objects language as part of this specification too. 2875bd8deadSopenharmony_ci 2885bd8deadSopenharmony_ci 18) Can a shader still turn off support for this extension? 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci Yes, a shader can still include all variations of 2915bd8deadSopenharmony_ci #extension GL_ARB_texture_rectangle in its source code. This 2925bd8deadSopenharmony_ci includes #extension GL_ARB_texture_rectangle : disable, to 2935bd8deadSopenharmony_ci disable support for it. 2945bd8deadSopenharmony_ci 2955bd8deadSopenharmony_ci 2965bd8deadSopenharmony_ciNew Procedures and Functions 2975bd8deadSopenharmony_ci 2985bd8deadSopenharmony_ci None 2995bd8deadSopenharmony_ci 3005bd8deadSopenharmony_ciNew Tokens 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable and IsEnabled; 3035bd8deadSopenharmony_ci by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv 3045bd8deadSopenharmony_ci and GetDoublev; and by the <target> parameter of BindTexture, 3055bd8deadSopenharmony_ci GetTexParameterfv, GetTexParameteriv, TexParameterf, TexParameteri, 3065bd8deadSopenharmony_ci TexParameterfv and TexParameteriv: 3075bd8deadSopenharmony_ci 3085bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB 0x84F5 3095bd8deadSopenharmony_ci 3105bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 3115bd8deadSopenharmony_ci GetFloatv and GetDoublev: 3125bd8deadSopenharmony_ci 3135bd8deadSopenharmony_ci TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci Accepted by the <target> parameter of GetTexLevelParameteriv, 3165bd8deadSopenharmony_ci GetTexLevelParameterfv, GetTexParameteriv and TexImage2D: 3175bd8deadSopenharmony_ci 3185bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetDoublev, 3215bd8deadSopenharmony_ci GetIntegerv and GetFloatv: 3225bd8deadSopenharmony_ci 3235bd8deadSopenharmony_ci MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ci Accepted by the <target> parameter of GetTexImage, 3265bd8deadSopenharmony_ci GetTexLevelParameteriv, GetTexLevelParameterfv, TexImage2D, 3275bd8deadSopenharmony_ci CopyTexImage2D, TexSubImage2D and CopySubTexImage2D: 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ci Returned by <type> parameter of GetActiveUniform when the location 3325bd8deadSopenharmony_ci <index> for program object <program> is of type sampler2DRect: 3335bd8deadSopenharmony_ci 3345bd8deadSopenharmony_ci SAMPLER_2D_RECT_ARB 0x8B63 3355bd8deadSopenharmony_ci 3365bd8deadSopenharmony_ci Returned by <type> parameter of GetActiveUniform when the location 3375bd8deadSopenharmony_ci <index> for program object <program> is of type sampler2DRectShadow: 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 3405bd8deadSopenharmony_ci 3415bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 2.0 Specification (OpenGL Operation) 3425bd8deadSopenharmony_ci 3435bd8deadSopenharmony_ci - (2.15.3, pg. 80-81) "Uniform Variables" under "Shader Variables" 3445bd8deadSopenharmony_ci 3455bd8deadSopenharmony_ci Add SAMPLER_2D_RECT_ARB and SAMPLER_2D_RECT_SHADOW_ARB to the list 3465bd8deadSopenharmony_ci of returned types in the sentence starting "The type returned can 3475bd8deadSopenharmony_ci be any of ..." 3485bd8deadSopenharmony_ci 3495bd8deadSopenharmony_ci - (2.15.4, pg. 86) "Texture Access" under "Shader Execution" 3505bd8deadSopenharmony_ci 3515bd8deadSopenharmony_ci Replace the three bullets with the following language: 3525bd8deadSopenharmony_ci 3535bd8deadSopenharmony_ci "...the results of a texture lookup are undefined if: 3545bd8deadSopenharmony_ci 3555bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 3565bd8deadSopenharmony_ci sampler1D or sampler2D or sampler2DRect, and the texture object's 3575bd8deadSopenharmony_ci internal format is DEPTH_COMPONENT, and the TEXTURE_COMPARE_MODE 3585bd8deadSopenharmony_ci is not NONE. 3595bd8deadSopenharmony_ci 3605bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 3615bd8deadSopenharmony_ci sampler1DShadow or sampler2DShadow or sampler2DRectShadow, 3625bd8deadSopenharmony_ci and the texture object's internal format is DEPTH_COMPONENT, 3635bd8deadSopenharmony_ci and the TEXTURE_COMPARE_MODE is NONE. 3645bd8deadSopenharmony_ci 3655bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 3665bd8deadSopenharmony_ci sampler1DShadow or sampler2DShadow or sampler2DRectShadow, 3675bd8deadSopenharmony_ci and the texture object's internal format is not DEPTH_COMPONENT." 3685bd8deadSopenharmony_ci 3695bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci These changes describe use of the TEXTURE_RECTANGLE_ARB texture 3725bd8deadSopenharmony_ci target, supported formats, texture dimensions, and texture proxies: 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci - (3.6.3, pg. 118) "Pixel Transfer Modes" under "Color Table 3755bd8deadSopenharmony_ci Specification" or the ColorTableEXT description in the 3765bd8deadSopenharmony_ci EXT_paletted_texture specification 3775bd8deadSopenharmony_ci 3785bd8deadSopenharmony_ci If EXT_paletted_texture is supported, add the following statement 3795bd8deadSopenharmony_ci after paragraph 5 of the sub-section: 3805bd8deadSopenharmony_ci 3815bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target to ColorTable (or 3825bd8deadSopenharmony_ci ColorTableEXT or the various ColorTable and ColorTableEXT alternative 3835bd8deadSopenharmony_ci commands) is TEXTURE_RECTANGLE_ARB or PROXY_TEXTURE_RECTANGLE_ARB." 3845bd8deadSopenharmony_ci 3855bd8deadSopenharmony_ci - (3.8.1, p. 151) "Texture Image Specification" 3865bd8deadSopenharmony_ci 3875bd8deadSopenharmony_ci Change the first sentence of the fourth paragraph on this page to: 3885bd8deadSopenharmony_ci 3895bd8deadSopenharmony_ci Textures with a base internal format of DEPTH COMPONENT are supported 3905bd8deadSopenharmony_ci by texture image specification commands only if target is TEXTURE_1D, 3915bd8deadSopenharmony_ci TEXTURE_2D, TEXTURE_RECTANGLE_ARB, PROXY_TEXTURE_1D, PROXY_TEXTURE_2D 3925bd8deadSopenharmony_ci or PROXY_TEXTURE_RECTANGLE_ARB. 3935bd8deadSopenharmony_ci 3945bd8deadSopenharmony_ci - (3.8.1, pg. 156) "Texture Image Specification" 3955bd8deadSopenharmony_ci 3965bd8deadSopenharmony_ci Add a sentence to the middle of the 20th paragraph of the 3975bd8deadSopenharmony_ci section (first paragraph on the page), directly after "... for 3985bd8deadSopenharmony_ci image arrays of level 0 through k, where k is the log base 2 of 3995bd8deadSopenharmony_ci MAX_TEXTURE_SIZE." reading: 4005bd8deadSopenharmony_ci 4015bd8deadSopenharmony_ci "The maximum allowable width of a rectangular texture image, 4025bd8deadSopenharmony_ci and the maximum allowable height of a rectangular texture 4035bd8deadSopenharmony_ci image, must be at least the implementation-dependent value of 4045bd8deadSopenharmony_ci MAX_RECTANGLE_TEXTURE_SIZE_ARB." 4055bd8deadSopenharmony_ci 4065bd8deadSopenharmony_ci - (3.8.1, pg. 156) "Texture Image Specification" 4075bd8deadSopenharmony_ci 4085bd8deadSopenharmony_ci In the 22th paragraph of this section (sixth paragraph on the page), 4095bd8deadSopenharmony_ci change the sentence following "The command void TexImage2D ... a 4105bd8deadSopenharmony_ci two-dimensional texture image." through the rest of the paragraph 4115bd8deadSopenharmony_ci in the section describing two-dimensional texturing to read: 4125bd8deadSopenharmony_ci 4135bd8deadSopenharmony_ci "<target> must be one of TEXTURE_2D for a two-dimensional texture, 4145bd8deadSopenharmony_ci or one of TEXTURE_RECTANGLE_ARB for a rectangle texture, or one 4155bd8deadSopenharmony_ci of TEXTURE_CUBE_MAP_POSITIVE_X, TEXTURE_CUBE_MAP_NEGATIVE_X, 4165bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Y, TEXTURE_CUBE_MAP_NEGATIVE_Y, 4175bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Z, or TEXTURE_CUBE_MAP_NEGATIVE_Z for a cube 4185bd8deadSopenharmony_ci map texture. Additionally, <target> may be either PROXY_TEXTURE_2D 4195bd8deadSopenharmony_ci for a two-dimensional proxy texture, PROXY_TEXTURE_RECTANGLE_ARB for 4205bd8deadSopenharmony_ci a rectangle proxy texture or PROXY_TEXTURE_CUBE_MAP for a cube map 4215bd8deadSopenharmony_ci proxy texture as discussed in section 3.8.10. The other parameters 4225bd8deadSopenharmony_ci match the corresponding parameters of TexImage3D." 4235bd8deadSopenharmony_ci 4245bd8deadSopenharmony_ci Add this paragraph following the above two-dimensional texturing 4255bd8deadSopenharmony_ci introduction, reading: 4265bd8deadSopenharmony_ci 4275bd8deadSopenharmony_ci When the target is TEXTURE_RECTANGLE_ARB, the INVALID_VALUE error is 4285bd8deadSopenharmony_ci generated if border is any value other than zero or the level is any 4295bd8deadSopenharmony_ci value other than zero. In the case of a rectangular texture, ws and 4305bd8deadSopenharmony_ci hs equal the specified width and height respectively of the 4315bd8deadSopenharmony_ci rectangular texture image while ds is 1." 4325bd8deadSopenharmony_ci 4335bd8deadSopenharmony_ci If EXT_paletted_texture is supported, add this paragraph too: 4345bd8deadSopenharmony_ci 4355bd8deadSopenharmony_ci "Rectangular textures do not support paletted formats. The error 4365bd8deadSopenharmony_ci INVALID_ENUM is generated if the target is TEXTURE_RECTANGLE_ARB or 4375bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB and the format is COLOR_INDEX or the 4385bd8deadSopenharmony_ci internal format is COLOR_INDEX or one of the COLOR_INDEX<n>_EXT 4395bd8deadSopenharmony_ci internal formats." 4405bd8deadSopenharmony_ci 4415bd8deadSopenharmony_ci - (3.8.1, pg. 156) "Texture Image Specification" 4425bd8deadSopenharmony_ci 4435bd8deadSopenharmony_ci Amend the fourth paragraph on the page to read: 4445bd8deadSopenharmony_ci 4455bd8deadSopenharmony_ci "A two-dimensional texture consists of a single two-dimensional 4465bd8deadSopenharmony_ci texture image. A rectangle texture consists of a single 2D texture 4475bd8deadSopenharmony_ci image. A cube map texture is a set of six two-dimensional texture 4485bd8deadSopenharmony_ci images. The six cube map texture targets form a single cube map 4495bd8deadSopenharmony_ci texture though each target names a distinct face of the cube 4505bd8deadSopenharmony_ci map. The TEXTURE_CUBE_MAP_* targets listed above update their 4515bd8deadSopenharmony_ci appropriate cube map face 2D texture image. The six cube map 4525bd8deadSopenharmony_ci two-dimensional image tokens such as TEXTURE_CUBE_MAP_POSITIVE_X 4535bd8deadSopenharmony_ci are used when specifying, updating, or querying one of a cube map's 4545bd8deadSopenharmony_ci six two-dimensional images, but when enabling cube map texturing 4555bd8deadSopenharmony_ci or binding to a cube map texture object (that is when the cube map 4565bd8deadSopenharmony_ci is accessed as a whole as opposed to a particular two-dimensional 4575bd8deadSopenharmony_ci image), the TEXTURE_CUBE_MAP target is specified." 4585bd8deadSopenharmony_ci 4595bd8deadSopenharmony_ci - (3.8.1, pg. 157) "Texture Image Specification" 4605bd8deadSopenharmony_ci 4615bd8deadSopenharmony_ci Append to the end of the third to the last paragraph in the section: 4625bd8deadSopenharmony_ci 4635bd8deadSopenharmony_ci "A rectangular texture array has depth ds=1, with height hs and 4645bd8deadSopenharmony_ci width ws defined by the specified image height and width 4655bd8deadSopenharmony_ci parameters." 4665bd8deadSopenharmony_ci 4675bd8deadSopenharmony_ci - (3.8.2, pg. 159) "Alternate Texture Image Specification Commands" 4685bd8deadSopenharmony_ci 4695bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_ARB to the target list of the second paragraph 4705bd8deadSopenharmony_ci of the section to say: 4715bd8deadSopenharmony_ci 4725bd8deadSopenharmony_ci ... "Currently, <target> must be TEXTURE_2D, TEXTURE_RECTANGLE_ARB, 4735bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_X, TEXTURE_CUBE_MAP_NEGATIVE_X, 4745bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Y, TEXTURE_CUBE_MAP_NEGATIVE_Y, 4755bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_POSITIVE_Z, or TEXTURE_CUBE_MAP_NEGATIVE_Z." ... 4765bd8deadSopenharmony_ci 4775bd8deadSopenharmony_ci - (3.8.2, pg. 160) "Alternate Texture Image Specification Commands" 4785bd8deadSopenharmony_ci 4795bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_ARB to the target list in the fifth paragraph 4805bd8deadSopenharmony_ci of the section to say: 4815bd8deadSopenharmony_ci 4825bd8deadSopenharmony_ci ... "Currently the target arguments of TexSubImage1D and 4835bd8deadSopenharmony_ci CopyTexSubImage1D must be TEXTURE_1D, the <target> arguments of 4845bd8deadSopenharmony_ci TexSubImage2D and CopyTexSubImage2D must be one of TEXTURE_2D, 4855bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_CUBE_MAP_POSITIVE_X, 4865bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_X, TEXTURE_CUBE_MAP_POSITIVE_Y, 4875bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Y, TEXTURE_CUBE_MAP_POSITIVE_Z, or 4885bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Z, and the <target> arguments of 4895bd8deadSopenharmony_ci TexSubImage3D and CopyTexSubImage3D must be TEXTURE_3D." ... 4905bd8deadSopenharmony_ci 4915bd8deadSopenharmony_ci Also append to the end of this paragraph: 4925bd8deadSopenharmony_ci 4935bd8deadSopenharmony_ci "If target is TEXTURE_RECTANGLE_ARB and level is not zero, the error 4945bd8deadSopenharmony_ci INVALID_VALUE is generated." 4955bd8deadSopenharmony_ci 4965bd8deadSopenharmony_ci - (3.8.3, pg. 164) "Compressed Texture Images" 4975bd8deadSopenharmony_ci 4985bd8deadSopenharmony_ci Add the following paragraph after the second paragraph in the 4995bd8deadSopenharmony_ci section, which introduces the CompressedTexImage<n>D commands: 5005bd8deadSopenharmony_ci 5015bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target parameter to one 5025bd8deadSopenharmony_ci of the CompressedTexImage<n>D commands is TEXTURE_RECTANGLE_ARB or 5035bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB." 5045bd8deadSopenharmony_ci 5055bd8deadSopenharmony_ci Add the following paragraph after introducing the 5065bd8deadSopenharmony_ci CompressedTexSubImage<n>D commands: 5075bd8deadSopenharmony_ci 5085bd8deadSopenharmony_ci "The error INVALID_ENUM is generated if the target parameter to one 5095bd8deadSopenharmony_ci of the CompressedTexSubImage<n>D commands is TEXTURE_RECTANGLE_ARB 5105bd8deadSopenharmony_ci or PROXY_TEXTURE_RECTANGLE_ARB." 5115bd8deadSopenharmony_ci 5125bd8deadSopenharmony_ci - (3.8.4, pg. 166) "Texture Parameters" 5135bd8deadSopenharmony_ci 5145bd8deadSopenharmony_ci Add TEXTURE_RECTANGLE_ARB to paragraph one to say: 5155bd8deadSopenharmony_ci 5165bd8deadSopenharmony_ci ... "<target> is the target, either TEXTURE_1D, TEXTURE_2D, 5175bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or TEXTURE_CUBE_MAP." ... 5185bd8deadSopenharmony_ci 5195bd8deadSopenharmony_ci - (3.8.4, pg. 168) "Texture Parameters" 5205bd8deadSopenharmony_ci 5215bd8deadSopenharmony_ci Add the following paragraph to the end of the section: 5225bd8deadSopenharmony_ci 5235bd8deadSopenharmony_ci "Certain texture parameter values may not be specified for 5245bd8deadSopenharmony_ci textures with a target of TEXTURE_RECTANGLE_ARB. The error 5255bd8deadSopenharmony_ci INVALID_ENUM is generated if the target is TEXTURE_RECTANGLE_ARB 5265bd8deadSopenharmony_ci and the TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R 5275bd8deadSopenharmony_ci parameter is set to REPEAT, MIRRORED_REPEAT, 5285bd8deadSopenharmony_ci MIRROR_CLAMP_EXT (MIRROR_CLAMP_ATI), MIRROR_CLAMP_TO_EDGE_EXT 5295bd8deadSopenharmony_ci (MIRROR_CLAMP_TO_EDGE_ATI) or MIRROR_CLAMP_TO_BORDER_EXT. The error 5305bd8deadSopenharmony_ci INVALID_ENUM is generated if the target is TEXTURE_RECTANGLE_ARB 5315bd8deadSopenharmony_ci and the TEXTURE_MIN_FILTER is set to a value other than 5325bd8deadSopenharmony_ci NEAREST or LINEAR (no mipmap filtering is permitted). The error 5335bd8deadSopenharmony_ci INVALID_ENUM is generated if the target is TEXTURE_RECTANGLE_ARB 5345bd8deadSopenharmony_ci and TEXTURE_BASE_LEVEL is set to any value other than zero." 5355bd8deadSopenharmony_ci 5365bd8deadSopenharmony_ci - (3.8.7, pg. 170) "Texture Wrap Modes" 5375bd8deadSopenharmony_ci 5385bd8deadSopenharmony_ci Add this final additional paragraph: 5395bd8deadSopenharmony_ci 5405bd8deadSopenharmony_ci "Texture coordinates are clamped differently for rectangular 5415bd8deadSopenharmony_ci textures. The r texture coordinate is wrapped as described above. 5425bd8deadSopenharmony_ci When the texture target is TEXTURE_RECTANGLE_ARB, the s and t 5435bd8deadSopenharmony_ci coordinates are wrapped as follows: CLAMP causes the s coordinate 5445bd8deadSopenharmony_ci to be clamped to the range [0, wt]. CLAMP causes the t coordinate 5455bd8deadSopenharmony_ci to be clamped to the range [0, ht]. CLAMP_TO_EDGE causes the s 5465bd8deadSopenharmony_ci coordinate to be clamped to the range [0.5, wt-0.5]. CLAMP_TO_EDGE 5475bd8deadSopenharmony_ci causes the t coordinate to be clamped to the range [0.5, ht - 0.5]. 5485bd8deadSopenharmony_ci CLAMP_TO_BORDER causes the s coordinate to be clamped to the range 5495bd8deadSopenharmony_ci [-0.5, wt + 0.5]. CLAMP_TO_BORDER causes the t coordinate to be 5505bd8deadSopenharmony_ci clamped to the range [-0.5, ht + 0.5]." 5515bd8deadSopenharmony_ci 5525bd8deadSopenharmony_ci - (3.8.8, pg. 171) "Texture Minification" 5535bd8deadSopenharmony_ci 5545bd8deadSopenharmony_ci Under the "Scale Factor and Level of Detail" sub-section, change the 5555bd8deadSopenharmony_ci fourth paragraph in the subsection to read: 5565bd8deadSopenharmony_ci 5575bd8deadSopenharmony_ci "Let s(x,y) be the function that associates an s texture coordinate 5585bd8deadSopenharmony_ci with each set of window coordinates (x,y) that lie within a primitive; 5595bd8deadSopenharmony_ci define t(x,y) and r(x,y) analogously. For non-rectangular textures, 5605bd8deadSopenharmony_ci let u(x,y) = wt * s(x,y), v(x,y) = ht * t(x,y), and w(x,y) = dt * 5615bd8deadSopenharmony_ci r(x,y), where wt, ht, and dt are as defined by equations 3.15, 5625bd8deadSopenharmony_ci 3.16, and 3.17 with ws, hs, and ds equal to the width, height, 5635bd8deadSopenharmony_ci and depth of the image array whose level is level_base. However, 5645bd8deadSopenharmony_ci for rectangular textures let u(x, y) = s(x, y), v(x, y) = t(x, y), 5655bd8deadSopenharmony_ci and w(x, y) = r(x, y)." 5665bd8deadSopenharmony_ci 5675bd8deadSopenharmony_ci - (3.8.8, pg. 173) "Texture Minification" 5685bd8deadSopenharmony_ci 5695bd8deadSopenharmony_ci Update the last sentence in the first partial paragraph on the page 5705bd8deadSopenharmony_ci to read: 5715bd8deadSopenharmony_ci 5725bd8deadSopenharmony_ci "Depending on whether the texture's target is rectangular or 5735bd8deadSopenharmony_ci non-rectangular, this means the texel at location (i,j,k) becomes 5745bd8deadSopenharmony_ci the texture value, with i given by 5755bd8deadSopenharmony_ci 5765bd8deadSopenharmony_ci / floor (u), s < 1 and non-rectangular texture 5775bd8deadSopenharmony_ci | 5785bd8deadSopenharmony_ci i = | wt - 1, s == 1 and non-rectangular texture (3.19) 5795bd8deadSopenharmony_ci | 5805bd8deadSopenharmony_ci | floor(u) s < wt and rectangular texture 5815bd8deadSopenharmony_ci | 5825bd8deadSopenharmony_ci \ wt-1 s >= wt and rectangular texture 5835bd8deadSopenharmony_ci 5845bd8deadSopenharmony_ci (Recall that if TEXTURE_WRAP_S is REPEAT, then 0 <= s < 1.) 5855bd8deadSopenharmony_ci Similarly, j is found as 5865bd8deadSopenharmony_ci 5875bd8deadSopenharmony_ci / floor(v), t < 1 and non-rectangular texture 5885bd8deadSopenharmony_ci | 5895bd8deadSopenharmony_ci j = | ht - 1, t == 1 and non-rectangular texture (3.20) 5905bd8deadSopenharmony_ci | 5915bd8deadSopenharmony_ci | floor(v) t < ht and rectangular texture 5925bd8deadSopenharmony_ci | 5935bd8deadSopenharmony_ci \ ht-1 t >= ht and rectangular texture 5945bd8deadSopenharmony_ci 5955bd8deadSopenharmony_ci and k is found as 5965bd8deadSopenharmony_ci 5975bd8deadSopenharmony_ci / floor (w), r < 1 5985bd8deadSopenharmony_ci k = | (3.21) 5995bd8deadSopenharmony_ci \ dt - 1, r == 1" 6005bd8deadSopenharmony_ci 6015bd8deadSopenharmony_ci - (3.8.8, pg. 171) "Texture Minification" 6025bd8deadSopenharmony_ci 6035bd8deadSopenharmony_ci Change the last sentence in the first partial paragraph on the page, 6045bd8deadSopenharmony_ci directly after equation 3.21 to read: 6055bd8deadSopenharmony_ci 6065bd8deadSopenharmony_ci "For a two-dimensional or rectangular texture, k is irrelevant; the 6075bd8deadSopenharmony_ci texel at location (i,j) becomes the texture value." 6085bd8deadSopenharmony_ci 6095bd8deadSopenharmony_ci - (3.8.8, pg. 174) "Texture Minification" 6105bd8deadSopenharmony_ci 6115bd8deadSopenharmony_ci Change the sentence preceding equation 3.26: 6125bd8deadSopenharmony_ci 6135bd8deadSopenharmony_ci "For a two-dimensional or rectangular texture," 6145bd8deadSopenharmony_ci 6155bd8deadSopenharmony_ci - (3.8.8, pg. 175) "Mipmapping" 6165bd8deadSopenharmony_ci 6175bd8deadSopenharmony_ci Follow the paragraph on the page which ends with "... must be 6185bd8deadSopenharmony_ci defined, as discussed in section 3.8.10." with: 6195bd8deadSopenharmony_ci 6205bd8deadSopenharmony_ci "Rectangular textures do not support mipmapping (it is an error to 6215bd8deadSopenharmony_ci specify a minification filter that requires mipmapping)." 6225bd8deadSopenharmony_ci 6235bd8deadSopenharmony_ci - (3.8.11, pg. 178) "Texture State and Proxy State" 6245bd8deadSopenharmony_ci 6255bd8deadSopenharmony_ci Change the first sentence of the first paragraph to say: 6265bd8deadSopenharmony_ci 6275bd8deadSopenharmony_ci "The state necessary for texture can be divided into two categories. 6285bd8deadSopenharmony_ci First, there are the ten sets of mipmap arrays (one each for the 6295bd8deadSopenharmony_ci one-, two-, and three-dimensional texture targets, one for the 6305bd8deadSopenharmony_ci rectangular texture target (though the rectangular texture target 6315bd8deadSopenharmony_ci has only one mipmap level), and six for the cube map texture 6325bd8deadSopenharmony_ci targets) and their number." ... 6335bd8deadSopenharmony_ci 6345bd8deadSopenharmony_ci - (3.8.11, pg. 179) "Texture State and Proxy State" 6355bd8deadSopenharmony_ci 6365bd8deadSopenharmony_ci Change the sixth and fifth to last sentences of the first paragraph 6375bd8deadSopenharmony_ci to say: 6385bd8deadSopenharmony_ci 6395bd8deadSopenharmony_ci "In the initial state, the value assigned to TEXTURE_MIN_FILTER is 6405bd8deadSopenharmony_ci NEAREST_MIPMAP_LINEAR, except for rectangular textures where the 6415bd8deadSopenharmony_ci initial value is LINEAR, and the value for TEXTURE_MAG_FILTER is 6425bd8deadSopenharmony_ci LINEAR. s, t, and r warp modes are all set to REPEAT, except for 6435bd8deadSopenharmony_ci rectangular textures where the initial value is CLAMP_TO_EDGE." 6445bd8deadSopenharmony_ci 6455bd8deadSopenharmony_ci - (3.8.11, pg. 179) "Texture State and Proxy State" 6465bd8deadSopenharmony_ci 6475bd8deadSopenharmony_ci Change the second paragraph of the section to say: 6485bd8deadSopenharmony_ci 6495bd8deadSopenharmony_ci "In addition to the one-, two-, three-dimensional, rectangular, and 6505bd8deadSopenharmony_ci the six cube map sets of image arrays, the partially instantiated 6515bd8deadSopenharmony_ci one-, two-, and three-dimensional, rectangular, and one cube map 6525bd8deadSopenharmony_ci sets of proxy image arrays are maintained." ... 6535bd8deadSopenharmony_ci 6545bd8deadSopenharmony_ci - (3.8.11, pg. 179) "Texture State and Proxy State" 6555bd8deadSopenharmony_ci 6565bd8deadSopenharmony_ci Change the third paragraph to: 6575bd8deadSopenharmony_ci 6585bd8deadSopenharmony_ci "One- and two-dimensional and rectangular proxy arrays are operated 6595bd8deadSopenharmony_ci on in the same way when TexImage1D is executed with target specified 6605bd8deadSopenharmony_ci as PROXY_TEXTURE_1D, or TexImage2D is executed with target specified 6615bd8deadSopenharmony_ci as PROXY_TEXTURE_2D or PROXY_TEXTURE_RECTANGLE_ARB." 6625bd8deadSopenharmony_ci 6635bd8deadSopenharmony_ci - (3.8.11, pg. 180) "Texture State and Proxy State" 6645bd8deadSopenharmony_ci 6655bd8deadSopenharmony_ci Change the second sentence of the fifth paragraph of the section to: 6665bd8deadSopenharmony_ci 6675bd8deadSopenharmony_ci "Therefore PROXY_TEXTURE_1D, PROXY_TEXTURE_2D, 6685bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB, PROXY_TEXTURE_3D, and 6695bd8deadSopenharmony_ci PROXY_TEXTURE_CUBE_MAP cannot be used as textures, and their images 6705bd8deadSopenharmony_ci must never be queried using GetTexImage." ... 6715bd8deadSopenharmony_ci 6725bd8deadSopenharmony_ci - (3.8.12, pg. 156) "Texture Objects" 6735bd8deadSopenharmony_ci 6745bd8deadSopenharmony_ci Change the first sentence of the first paragraph to say: 6755bd8deadSopenharmony_ci 6765bd8deadSopenharmony_ci "In addition to the default textures TEXTURE_1D, TEXTURE_2D, 6775bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_3D, and TEXTURE_CUBE_MAP, named 6785bd8deadSopenharmony_ci one-dimensional, two-dimensional, rectangular, and three-dimensional 6795bd8deadSopenharmony_ci texture objects and cube map texture objects can be created and 6805bd8deadSopenharmony_ci operated on." ... 6815bd8deadSopenharmony_ci 6825bd8deadSopenharmony_ci - (3.8.12, pg. 180) "Texture Objects" 6835bd8deadSopenharmony_ci 6845bd8deadSopenharmony_ci Change the second paragraph in the section to say: 6855bd8deadSopenharmony_ci 6865bd8deadSopenharmony_ci "A texture object is created by binding an unused name to 6875bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or 6885bd8deadSopenharmony_ci TEXTURE_CUBE_MAP." ... "If the new texture object is bound to 6895bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or 6905bd8deadSopenharmony_ci TEXTURE_CUBE_MAP, it remains a one-dimensional, two-dimensional, 6915bd8deadSopenharmony_ci rectangular, three-dimensional, or cube map texture until it is 6925bd8deadSopenharmony_ci deleted." 6935bd8deadSopenharmony_ci 6945bd8deadSopenharmony_ci - (3.8.12, pg. 180) "Texture Objects" 6955bd8deadSopenharmony_ci 6965bd8deadSopenharmony_ci Change the third paragraph to say: 6975bd8deadSopenharmony_ci 6985bd8deadSopenharmony_ci "BindTexture may also be used to bind an existing texture object to 6995bd8deadSopenharmony_ci either TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or 7005bd8deadSopenharmony_ci TEXTURE_CUBE_MAP." 7015bd8deadSopenharmony_ci 7025bd8deadSopenharmony_ci - (3.8.12, pg. 180) "Texture Objects" 7035bd8deadSopenharmony_ci 7045bd8deadSopenharmony_ci Change paragraph five of the section to say: 7055bd8deadSopenharmony_ci 7065bd8deadSopenharmony_ci "In the initial state, TEXTURE_1D, TEXTURE_2D, 7075bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_3D, and TEXTURE_CUBE_MAP have 7085bd8deadSopenharmony_ci one-dimensional, two-dimensional, rectangular, three-dimensional, 7095bd8deadSopenharmony_ci and cube map state vectors associated with them respectively." ... 7105bd8deadSopenharmony_ci "The initial, one-dimensional, two-dimensional, rectangular, 7115bd8deadSopenharmony_ci three-dimensional, and cube map texture is therefore operated upon, 7125bd8deadSopenharmony_ci queried, and applied as TEXTURE_1D, TEXTURE_2D, 7135bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_3D, and TEXTURE_CUBE_MAP respectively 7145bd8deadSopenharmony_ci while 0 is bound to the corresponding targets." 7155bd8deadSopenharmony_ci 7165bd8deadSopenharmony_ci - (3.8.12, pg. 181) "Texture Objects" 7175bd8deadSopenharmony_ci 7185bd8deadSopenharmony_ci Change paragraph six of the section to say: 7195bd8deadSopenharmony_ci 7205bd8deadSopenharmony_ci ... "If a texture that is currently bound to one of the targets 7215bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or 7225bd8deadSopenharmony_ci TEXTURE_CUBE_MAP is deleted, it is as though BindTexture has been 7235bd8deadSopenharmony_ci executed with the same <target> and <texture> zero." ... 7245bd8deadSopenharmony_ci 7255bd8deadSopenharmony_ci - (3.8.15 pg. 189) "Texture Application" 7265bd8deadSopenharmony_ci 7275bd8deadSopenharmony_ci Replace the beginning sentences of the first paragraph with: 7285bd8deadSopenharmony_ci 7295bd8deadSopenharmony_ci "Texturing is enabled or disabled using the generic Enable and 7305bd8deadSopenharmony_ci Disable commands, respectively, with the symbolic constants 7315bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or 7325bd8deadSopenharmony_ci TEXTURE_CUBE_MAP to enable the one-dimensional, two-dimensional, 7335bd8deadSopenharmony_ci rectangular, three-dimensional, or cube map texturing respectively. 7345bd8deadSopenharmony_ci If both two- and one-dimensional textures are enabled, the 7355bd8deadSopenharmony_ci two-dimensional texture is used. If the rectangular and either of 7365bd8deadSopenharmony_ci the two- or one-dimensional textures is enabled, the rectangular 7375bd8deadSopenharmony_ci texture is used. If the three-dimensional and any of the 7385bd8deadSopenharmony_ci rectangular, two-dimensional, or one-dimensional textures is 7395bd8deadSopenharmony_ci enabled, the three-dimensional texture is used. If the cube map 7405bd8deadSopenharmony_ci texture and any of the three-dimensional, rectangular, 7415bd8deadSopenharmony_ci two-dimensional, or one-dimensional textures is enabled, then cube 7425bd8deadSopenharmony_ci map texturing is used. 7435bd8deadSopenharmony_ci 7445bd8deadSopenharmony_ci - (3.11.2, pg. 195) "Texture Access" under "Shader Execution" 7455bd8deadSopenharmony_ci 7465bd8deadSopenharmony_ci Replace the three bullets with the following language: 7475bd8deadSopenharmony_ci 7485bd8deadSopenharmony_ci "...the results of a texture lookup are undefined if: 7495bd8deadSopenharmony_ci 7505bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 7515bd8deadSopenharmony_ci sampler1D or sampler2D or sampler2DRect, and the texture object's 7525bd8deadSopenharmony_ci internal format is DEPTH_COMPONENT, and the TEXTURE_COMPARE_MODE 7535bd8deadSopenharmony_ci is not NONE. 7545bd8deadSopenharmony_ci 7555bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 7565bd8deadSopenharmony_ci sampler1DShadow or sampler2DShadow or sampler2DRectShadow, 7575bd8deadSopenharmony_ci and the texture object's internal format is DEPTH_COMPONENT, 7585bd8deadSopenharmony_ci and the TEXTURE_COMPARE_MODE is NONE. 7595bd8deadSopenharmony_ci 7605bd8deadSopenharmony_ci * The sampler used in a texture lookup function is of type 7615bd8deadSopenharmony_ci sampler1DShadow or sampler2DShadow or sampler2DRectShadow, 7625bd8deadSopenharmony_ci and the texture object's internal format is not DEPTH_COMPONENT." 7635bd8deadSopenharmony_ci 7645bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment 7655bd8deadSopenharmony_ciOperations and the Framebuffer) 7665bd8deadSopenharmony_ci 7675bd8deadSopenharmony_ci None 7685bd8deadSopenharmony_ci 7695bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 2.0 Specification (Special 7705bd8deadSopenharmony_ciFunctions) 7715bd8deadSopenharmony_ci 7725bd8deadSopenharmony_ci - (5.4, pg. 242) "Display Lists" 7735bd8deadSopenharmony_ci 7745bd8deadSopenharmony_ci In the third to last paragraph of the section, add 7755bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB to the list of PROXY_* tokens. 7765bd8deadSopenharmony_ci 7775bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 2.0 Specification (State and State 7785bd8deadSopenharmony_ciRequests) 7795bd8deadSopenharmony_ci 7805bd8deadSopenharmony_ci - (6.1.3, pg. 247) "Enumerated Queries" 7815bd8deadSopenharmony_ci 7825bd8deadSopenharmony_ci Change the fourth paragraph to say: 7835bd8deadSopenharmony_ci 7845bd8deadSopenharmony_ci "The GetTexParameter parameter <target> may be one of TEXTURE_1D, 7855bd8deadSopenharmony_ci TEXTURE_2D, TEXTURE_RECTANGLE_ARB, TEXTURE_3D, or TEXTURE_CUBE_MAP, 7865bd8deadSopenharmony_ci indicating the currently bound one-dimensional, two-dimensional, 7875bd8deadSopenharmony_ci rectangular, three-dimensional, or cube map texture object. For 7885bd8deadSopenharmony_ci GetTexLevelParameter, <target> may be one of TEXTURE_1D, TEXTURE_2D, 7895bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB, TEXTURE_3D, TEXTURE_CUBE_MAP_POSITIVE_X, 7905bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_X, TEXTURE_CUBE_MAP_POSITIVE_Y, 7915bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Y, TEXTURE_CUBE_MAP_POSITIVE_Z, 7925bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Z, PROXY_TEXTURE_1D, PROXY_TEXTURE_2D, 7935bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB, PROXY_TEXTURE_3D, or 7945bd8deadSopenharmony_ci PROXY_TEXTURE_CUBE_MAP, indicating the one-dimensional texture 7955bd8deadSopenharmony_ci object, two-dimensional texture object, rectangular texture object, 7965bd8deadSopenharmony_ci three-dimensional texture object, or one of the six distinct 2D 7975bd8deadSopenharmony_ci images making up the cube map texture object or one-dimensional, 7985bd8deadSopenharmony_ci two-dimensional, rectangular, three-dimensional, or cube map proxy 7995bd8deadSopenharmony_ci state vector. Note that TEXTURE_CUBE_MAP is not a valid <target> 8005bd8deadSopenharmony_ci parameter for GetTexLevelParameter because it does not specify a 8015bd8deadSopenharmony_ci particular cube map face." 8025bd8deadSopenharmony_ci 8035bd8deadSopenharmony_ci - (6.1.4, pg. 248) "Texture Queries" 8045bd8deadSopenharmony_ci 8055bd8deadSopenharmony_ci Change the first paragraph to read: 8065bd8deadSopenharmony_ci 8075bd8deadSopenharmony_ci ... "It is somewhat different from the other get commands; <tex> is 8085bd8deadSopenharmony_ci a symbolic value indicating which texture (or texture face in the 8095bd8deadSopenharmony_ci case of a cube map texture target name) is to be obtained. 8105bd8deadSopenharmony_ci TEXTURE_1D indicates a one-dimensional texture, TEXTURE_2D indicates 8115bd8deadSopenharmony_ci a two-dimensional texture, TEXTURE_RECTANGLE_ARB indicates a 8125bd8deadSopenharmony_ci rectangular texture, TEXTURE_3D indicates a three-dimensional 8135bd8deadSopenharmony_ci texture, and TEXTURE_CUBE_MAP_POSITIVE_X, 8145bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_X, TEXTURE_CUBE_MAP_POSITIVE_Y, 8155bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Y, TEXTURE_CUBE_MAP_POSITIVE_Z, and 8165bd8deadSopenharmony_ci TEXTURE_CUBE_MAP_NEGATIVE_Z indicate the respective face of a cube 8175bd8deadSopenharmony_ci map texture." 8185bd8deadSopenharmony_ci 8195bd8deadSopenharmony_ci - (6.1.4, pg. 249) "Texture Queries" 8205bd8deadSopenharmony_ci 8215bd8deadSopenharmony_ci Add a final sentence to the fourth paragraph of the section, 8225bd8deadSopenharmony_ci immediately after ... "or DEPTH COMPONENT causes the error INVALID 8235bd8deadSopenharmony_ci ENUM.": 8245bd8deadSopenharmony_ci 8255bd8deadSopenharmony_ci "Calling GetTexImage with a lod not zero when the tex is 8265bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB causes the error INVALID_VALUE." 8275bd8deadSopenharmony_ci 8285bd8deadSopenharmony_ciAdditions to version 1.10.59 of the OpenGL Shading Language specification 8295bd8deadSopenharmony_ci 8305bd8deadSopenharmony_ci A new preprocessor #define is added to the OpenGL Shading Language: 8315bd8deadSopenharmony_ci 8325bd8deadSopenharmony_ci #define GL_ARB_texture_rectangle 1 8335bd8deadSopenharmony_ci 8345bd8deadSopenharmony_ci Change the second to last paragraph on page 12 (#extension directive): 8355bd8deadSopenharmony_ci 8365bd8deadSopenharmony_ci The initial state of the compiler is as if the directive 8375bd8deadSopenharmony_ci 8385bd8deadSopenharmony_ci #extension all : disable 8395bd8deadSopenharmony_ci 8405bd8deadSopenharmony_ci was issued, telling the compiler that all error and warning reporting 8415bd8deadSopenharmony_ci must be done according to this specification, ignoring any extensions. 8425bd8deadSopenharmony_ci The only execption to this rule is the GL_ARB_texture_rectangle 8435bd8deadSopenharmony_ci extension. If the string "GL_ARB_texture_rectangle" is present in the 8445bd8deadSopenharmony_ci EXTENSIONS string, as queried with GetString(), then the compiler will 8455bd8deadSopenharmony_ci behave as if 8465bd8deadSopenharmony_ci 8475bd8deadSopenharmony_ci #extension GL_ARB_texture_rectangle : require 8485bd8deadSopenharmony_ci 8495bd8deadSopenharmony_ci is present in the shader. 8505bd8deadSopenharmony_ci 8515bd8deadSopenharmony_ci Add the following (previously reserved) keywords to the first part of 8525bd8deadSopenharmony_ci section 3.6 on page 14: 8535bd8deadSopenharmony_ci 8545bd8deadSopenharmony_ci sampler2DRect 8555bd8deadSopenharmony_ci sampler2DRectShadow 8565bd8deadSopenharmony_ci 8575bd8deadSopenharmony_ci Add to section 8.7 "Texture Lookup Functions" 8585bd8deadSopenharmony_ci 8595bd8deadSopenharmony_ci Syntax: 8605bd8deadSopenharmony_ci 8615bd8deadSopenharmony_ci vec4 texture2DRect(sampler2DRect sampler, vec2 coord) 8625bd8deadSopenharmony_ci vec4 texture2DRectProj(sampler2DRect sampler, vec3 coord) 8635bd8deadSopenharmony_ci vec4 texture2DRectProj(sampler2DRect sampler, vec4 coord) 8645bd8deadSopenharmony_ci 8655bd8deadSopenharmony_ci Description: 8665bd8deadSopenharmony_ci 8675bd8deadSopenharmony_ci "Use the texture coordinate coord to do a texture lookup in the 8685bd8deadSopenharmony_ci rectangle texture currently bound to sampler. For the projective 8695bd8deadSopenharmony_ci ("Proj") version, the texture coordinate (coord.s, coord.t) is 8705bd8deadSopenharmony_ci divided by the last component of coord. The third component of 8715bd8deadSopenharmony_ci coord is ignored for the vec4 coord variant. 8725bd8deadSopenharmony_ci 8735bd8deadSopenharmony_ci No "bias" parameter or "Lod" suffixed functions for rectangle 8745bd8deadSopenharmony_ci textures are supported because mipmaps are not allowed for 8755bd8deadSopenharmony_ci rectangular textures." 8765bd8deadSopenharmony_ci 8775bd8deadSopenharmony_ci Syntax: 8785bd8deadSopenharmony_ci 8795bd8deadSopenharmony_ci vec4 shadow2DRect(sampler2DRectShadow sampler, vec3 coord) 8805bd8deadSopenharmony_ci vec4 shadow2DRectProj(sampler2DRectShadow sampler, vec4 coord) 8815bd8deadSopenharmony_ci 8825bd8deadSopenharmony_ci Description 8835bd8deadSopenharmony_ci 8845bd8deadSopenharmony_ci "Use texture coordinate coord to do a depth comparison lookup on 8855bd8deadSopenharmony_ci the rectangular depth texture bound to sampler, as described in 8865bd8deadSopenharmony_ci section 3.8.14 of version 2.0 of the OpenGL specification. The 3rd 8875bd8deadSopenharmony_ci component of coord (coord.p) is used as the R value. The texture 8885bd8deadSopenharmony_ci bound to sampler must be a depth texture, or results are undefined. 8895bd8deadSopenharmony_ci For the projective version ("Proj"), the texture coordinate 8905bd8deadSopenharmony_ci (coord.s, coord.t, coord.p) is divided by the last component of 8915bd8deadSopenharmony_ci coord, giving a R value of coord.p / coord.q. 8925bd8deadSopenharmony_ci 8935bd8deadSopenharmony_ci No "bias" parameter or "Lod" suffixed functions for rectangle 8945bd8deadSopenharmony_ci textures are supported because mipmaps are not allowed for 8955bd8deadSopenharmony_ci rectangle textures." 8965bd8deadSopenharmony_ci 8975bd8deadSopenharmony_ciAdditions to the GLX Specification 8985bd8deadSopenharmony_ci 8995bd8deadSopenharmony_ci None 9005bd8deadSopenharmony_ci 9015bd8deadSopenharmony_ciGLX Protocol 9025bd8deadSopenharmony_ci 9035bd8deadSopenharmony_ci None 9045bd8deadSopenharmony_ci 9055bd8deadSopenharmony_ciDependencies on OpenGL 1.4 and ARB_texture_mirrored_repeat 9065bd8deadSopenharmony_ci 9075bd8deadSopenharmony_ci If OpenGL 1.4 (or ARB_mirrored_repeat) is not supported, references 9085bd8deadSopenharmony_ci to the MIRRORED_REPEAT (or MIRRORED_REPEAT_ARB) wrap mode in this 9095bd8deadSopenharmony_ci document should be ignored. 9105bd8deadSopenharmony_ci 9115bd8deadSopenharmony_ciDependencies on ATI_texture_mirror_once 9125bd8deadSopenharmony_ci 9135bd8deadSopenharmony_ci If ATI_texture_mirror_once is not supported, references to the 9145bd8deadSopenharmony_ci MIRROR_CLAMP_ATI and MIRROR_CLAMP_TO_EDGE_ATI wrap modes in this 9155bd8deadSopenharmony_ci document should be ignored. 9165bd8deadSopenharmony_ci 9175bd8deadSopenharmony_ciDependencies on EXT_paletted_texture 9185bd8deadSopenharmony_ci 9195bd8deadSopenharmony_ci If EXT_paletted_texture is not supported, references to the 9205bd8deadSopenharmony_ci COLOR_INDEX, COLOR_INDEX<n>_EXT, ColorTable, and ColorTableEXT 9215bd8deadSopenharmony_ci should be ignored. 9225bd8deadSopenharmony_ci 9235bd8deadSopenharmony_ciDependencies on EXT_texture_compression_s3tc 9245bd8deadSopenharmony_ci 9255bd8deadSopenharmony_ci If EXT_texture_compression_s3tc is not supported, references 9265bd8deadSopenharmony_ci to CompressedTexImage2D and CompressedTexSubImageARB and the 9275bd8deadSopenharmony_ci COMPRESSED_*_S3TC_DXT*_EXT enumerants should be ignored. 9285bd8deadSopenharmony_ci 9295bd8deadSopenharmony_ciDependencies on EXT_texture_mirror_clamp 9305bd8deadSopenharmony_ci 9315bd8deadSopenharmony_ci If EXT_texture_mirror_clamp is not supported, references to the 9325bd8deadSopenharmony_ci MIRROR_CLAMP_EXT, MIRROR_CLAMP_TO_EDGE_EXT, and 9335bd8deadSopenharmony_ci MIRROR_CLAMP_TO_BORDER_EXT wrap modes in this document should be 9345bd8deadSopenharmony_ci ignored. 9355bd8deadSopenharmony_ci 9365bd8deadSopenharmony_ciErrors 9375bd8deadSopenharmony_ci 9385bd8deadSopenharmony_ci INVALID_ENUM is generated when ColorTable (or ColorTableEXT or the 9395bd8deadSopenharmony_ci various ColorTable and ColorTableEXT alternative commands) is called 9405bd8deadSopenharmony_ci and the target is TEXTURE_RECTANGLE_ARB or 9415bd8deadSopenharmony_ci PROXY_TEXTURE_RECTANGLE_ARB. 9425bd8deadSopenharmony_ci 9435bd8deadSopenharmony_ci INVALID_ENUM is generated when TexImage2D is called and the target 9445bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_ARB or PROXY_TEXTURE_RECTANGLE_ARB and the 9455bd8deadSopenharmony_ci format is COLOR_INDEX or the internalformat is COLOR_INDEX or one of 9465bd8deadSopenharmony_ci the COLOR_INDEX<n>_EXT internal formats. 9475bd8deadSopenharmony_ci 9485bd8deadSopenharmony_ci INVALID_VALUE is generated when TexImage2D is called when the target 9495bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_ARB if border is any value other than zero or 9505bd8deadSopenharmony_ci the level is any value other than zero. 9515bd8deadSopenharmony_ci 9525bd8deadSopenharmony_ci INVALID_VALUE is generated when TexImage2D is called when the target 9535bd8deadSopenharmony_ci is TEXTURE_RECTANGLE_ARB if the width is less than zero or the 9545bd8deadSopenharmony_ci height is less than zero. 9555bd8deadSopenharmony_ci 9565bd8deadSopenharmony_ci INVALID_VALUE is generated when TexSubImage2D or CopyTexSubImage2D 9575bd8deadSopenharmony_ci is called when the target is TEXTURE_RECTANGLE_ARB if the level is 9585bd8deadSopenharmony_ci any value other than zero. 9595bd8deadSopenharmony_ci 9605bd8deadSopenharmony_ci INVALID_ENUM is generated when one of the CompressedTexImage<n>D 9615bd8deadSopenharmony_ci commands is called when the target parameter is 9625bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB or PROXY_TEXTURE_RECTANGLE_ARB. 9635bd8deadSopenharmony_ci 9645bd8deadSopenharmony_ci INVALID_ENUM is generated when one of the CompressedTexSubImage<n>D 9655bd8deadSopenharmony_ci commands is called when the target parameter is TEXTURE_RECTANGLE_ARB 9665bd8deadSopenharmony_ci or PROXY_TEXTURE_RECTANGLE_ARB. 9675bd8deadSopenharmony_ci 9685bd8deadSopenharmony_ci INVALID_ENUM is generated when TexParameter is called with a target 9695bd8deadSopenharmony_ci of TEXTURE_RECTANGLE_ARB and the TEXTURE_WRAP_S, TEXTURE_WRAP_T, 9705bd8deadSopenharmony_ci or TEXTURE_WRAP_R parameter is set to REPEAT, MIRRORED_REPEAT, 9715bd8deadSopenharmony_ci MIRROR_CLAMP_ATI, or MIRROR_CLAMP_TO_EDGE_ATI. 9725bd8deadSopenharmony_ci 9735bd8deadSopenharmony_ci INVALID_ENUM is generated when TexParameter is called with a target 9745bd8deadSopenharmony_ci of TEXTURE_RECTANGLE_ARB and the TEXTURE_MIN_FILTER is set to a 9755bd8deadSopenharmony_ci value other than NEAREST or LINEAR. 9765bd8deadSopenharmony_ci 9775bd8deadSopenharmony_ci INVALID_VALUE is generated when TexParameter is called with a target 9785bd8deadSopenharmony_ci of TEXTURE_RECTANGLE_ARB and the TEXTURE_BASE_LEVEL is set to any 9795bd8deadSopenharmony_ci value other than zero. 9805bd8deadSopenharmony_ci 9815bd8deadSopenharmony_ci INVALID_VALUE is generated when GetTexImage is called with a lod not 9825bd8deadSopenharmony_ci zero when the tex is TEXTURE_RECTANGLE_ARB. 9835bd8deadSopenharmony_ci 9845bd8deadSopenharmony_ciNew State 9855bd8deadSopenharmony_ci 9865bd8deadSopenharmony_ci - (Table 6.15, Texture Objects, pg. 241) amend/add the following entries: 9875bd8deadSopenharmony_ci 9885bd8deadSopenharmony_ci Get Value Type Get Command Initial Value Description Sec Attribute 9895bd8deadSopenharmony_ci ----------------------------- ------- ----------- ------------- --------------------- ------ -------------- 9905bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB 2* x B IsEnabled False True if rectangular 3.8.15 texture/enable 9915bd8deadSopenharmony_ci texturing is enabled 9925bd8deadSopenharmony_ci 9935bd8deadSopenharmony_ci TEXTURE_BINDING_RECTANGLE_ARB 2* x Z+ GetIntegerv 0 Texture object 3.8.11 texture 9945bd8deadSopenharmony_ci for texture rectangle 9955bd8deadSopenharmony_ci 9965bd8deadSopenharmony_ci TEXTURE_RECTANGLE_ARB n x I GetTexImage see 3.8 rectangular texture 3.8 - 9975bd8deadSopenharmony_ci image for lod 0 9985bd8deadSopenharmony_ci 9995bd8deadSopenharmony_ci 10005bd8deadSopenharmony_ci - (Table 6.16, Texture Objects (cont.), pg. 242) amend/add the following entries: 10015bd8deadSopenharmony_ci 10025bd8deadSopenharmony_ci Get Value Type Get Command Initial Value Description Sec Attribute 10035bd8deadSopenharmony_ci ------------------ ----- -------------- -------------- ------------------- ----- -------------- 10045bd8deadSopenharmony_ci TEXTURE_MIN_FILTER n x Z6 GetTexParameter See 3.8 except Texture minification 3.8.8 texture 10055bd8deadSopenharmony_ci for rectangular function 10065bd8deadSopenharmony_ci which is 10075bd8deadSopenharmony_ci LINEAR 10085bd8deadSopenharmony_ci 10095bd8deadSopenharmony_ci TEXTURE_WRAP_S n x Z5 GetTexParameter REPEAT except Texture wrap mode S 3.8.7 texture 10105bd8deadSopenharmony_ci for rectangular 10115bd8deadSopenharmony_ci which is 10125bd8deadSopenharmony_ci CLAMP_TO_EDGE 10135bd8deadSopenharmony_ci 10145bd8deadSopenharmony_ci TEXTURE_WRAP_T n x Z5 GetTexParameter REPEAT except Texture wrap mode T 3.8.7 texture 10155bd8deadSopenharmony_ci for rectangular (2D, 3D, cubemap, 10165bd8deadSopenharmony_ci which is rectangle textures 10175bd8deadSopenharmony_ci CLAMP_TO_EDGE only) 10185bd8deadSopenharmony_ci 10195bd8deadSopenharmony_ci TEXTURE_WRAP_R n x Z5 GetTexParameter REPEAT except Texture wrap mode R 3.8.7 texture 10205bd8deadSopenharmony_ci for rectangular (3D textures only) 10215bd8deadSopenharmony_ci which is 10225bd8deadSopenharmony_ci CLAMP_TO_EDGE 10235bd8deadSopenharmony_ci 10245bd8deadSopenharmony_ciNew Implementation Dependent State 10255bd8deadSopenharmony_ci 10265bd8deadSopenharmony_ci - (Table 6.28, Implementation Dependent Values, pg. 254) add the following entry: 10275bd8deadSopenharmony_ci 10285bd8deadSopenharmony_ci Get Value Type Get Command Minimum Value Description Sec Attribute 10295bd8deadSopenharmony_ci -------- ---- ----------- ------------- ----------- ----- -------------- 10305bd8deadSopenharmony_ci MAX_RECTANGLE_TEXTURE_SIZE_ARB Z+ GetIntegerv 64 Maximum rectangular 3.8.1 - 10315bd8deadSopenharmony_ci texture image 10325bd8deadSopenharmony_ci dimension 10335bd8deadSopenharmony_ci 10345bd8deadSopenharmony_ciBackwards Compatibility 10355bd8deadSopenharmony_ci 10365bd8deadSopenharmony_ci This extension is semantically equivalent to EXT_texture_rectangle 10375bd8deadSopenharmony_ci and NV_texture_rectangle. The tokens, and name strings now refer 10385bd8deadSopenharmony_ci to ARB instead of EXT or NV. Enumerant values are unchanged. 10395bd8deadSopenharmony_ci 10405bd8deadSopenharmony_ciRevision History 10415bd8deadSopenharmony_ci 10425bd8deadSopenharmony_ci 3/5/2004 - Updated page numbers and other numbers to reflect OpenGL 10435bd8deadSopenharmony_ci 1.5; removed bogus "Convolution" language saying how glGetTexImage 10445bd8deadSopenharmony_ci applies convolution (language was in 1.2.1 but removed in 1.3). 10455bd8deadSopenharmony_ci ARB_texture_non_power_of_two and EXT_texture_mirror_clamp interactions 10465bd8deadSopenharmony_ci added. 10475bd8deadSopenharmony_ci 10485bd8deadSopenharmony_ci 2/23/2005 - Fix the GLSL interaction: 1) GLSL functions require 10495bd8deadSopenharmony_ci a vector (not scalar) parameter for the texture coordinate set: 2) 10505bd8deadSopenharmony_ci The actual reserved types are sampler2DRect and sampler2DRectShadow 10515bd8deadSopenharmony_ci (not samplerRect and samplerRectShadow); and 3) the shadow functions 10525bd8deadSopenharmony_ci were missing. 10535bd8deadSopenharmony_ci 10545bd8deadSopenharmony_ci 7/8/2005 - Further fixes to GLSL interaction based on ARB meeting 10555bd8deadSopenharmony_ci discussion: 1) Add OpenGL 2.0 language interaction for when 10565bd8deadSopenharmony_ci shadow accesses are defined for rectangle textures; 2) add an 10575bd8deadSopenharmony_ci issue to document the discussion; 3) bumped revision to 1.1; 4) 10585bd8deadSopenharmony_ci documented GLSL preprocessor define; 5) documented sampler enums; 10595bd8deadSopenharmony_ci and generally update the specification page numbers to be written 10605bd8deadSopenharmony_ci against OpenGL 2.0. Also added to the contributors list. 10615bd8deadSopenharmony_ci 10625bd8deadSopenharmony_ci 7/15/2005 - This is revision 1.2. 10635bd8deadSopenharmony_ci 1) Allow loading of DEPTH_COMPENENT textures for rectangular 10645bd8deadSopenharmony_ci texture targets. 2) Switched some of the paramters ws, hs, ds for wt, ht, 10655bd8deadSopenharmony_ci dt, and vice-versa to be in line with the cleanup already done in the 10665bd8deadSopenharmony_ci OpenGL 2.0 specification. 3) Added issue 18. 4) Deleted the 'dependencies 10675bd8deadSopenharmony_ci on ARB_texture_non_power_of_two' section since that is core OpenGL 10685bd8deadSopenharmony_ci 2.0 functionality. 5) Removed some redundant language. 6) Added language 10695bd8deadSopenharmony_ci describing changes to the GLSL spec explaining the #extension behavior. 10705bd8deadSopenharmony_ci 7) Added to the contributors list and sorted it by last name. 10715bd8deadSopenharmony_ci 10725bd8deadSopenharmony_ci 10/4/2005 - Revision 1.21 - Whitespace cleanup 1073