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