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