15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    ARB_texture_float
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_ARB_texture_float
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Pat Brown
125bd8deadSopenharmony_ci    Jon Leech
135bd8deadSopenharmony_ci    Rob Mace
145bd8deadSopenharmony_ci    Brian Paul
155bd8deadSopenharmony_ci
165bd8deadSopenharmony_ciContact
175bd8deadSopenharmony_ci
185bd8deadSopenharmony_ci    Dale Kirkland, NVIDIA (dkirkland 'at' nvidia.com)
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciNotice
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Copyright (c) 2004-2013 The Khronos Group Inc. Copyright terms at
235bd8deadSopenharmony_ci        http://www.khronos.org/registry/speccopyright.html
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciSpecification Update Policy
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    Khronos-approved extension specifications are updated in response to
285bd8deadSopenharmony_ci    issues and bugs prioritized by the Khronos OpenGL Working Group. For
295bd8deadSopenharmony_ci    extensions which have been promoted to a core Specification, fixes will
305bd8deadSopenharmony_ci    first appear in the latest version of that core Specification, and will
315bd8deadSopenharmony_ci    eventually be backported to the extension document. This policy is
325bd8deadSopenharmony_ci    described in more detail at
335bd8deadSopenharmony_ci        https://www.khronos.org/registry/OpenGL/docs/update_policy.php
345bd8deadSopenharmony_ci
355bd8deadSopenharmony_ciStatus
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    Complete. Approved by the ARB on October 22, 2004.
385bd8deadSopenharmony_ci
395bd8deadSopenharmony_ciVersion
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    Based on the ATI_texture_float extension, verion 4
425bd8deadSopenharmony_ci
435bd8deadSopenharmony_ci    Last Modified Date:  February 19, 2008
445bd8deadSopenharmony_ci    Version:             7
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ciNumber
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ci    ARB Extension #41
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ciDependencies
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    This extension is written against the OpenGL 2.0 Specification
535bd8deadSopenharmony_ci    but will work with the OpenGL 1.5 Specification.
545bd8deadSopenharmony_ci
555bd8deadSopenharmony_ci    OpenGL 1.1 or EXT_texture is required.
565bd8deadSopenharmony_ci
575bd8deadSopenharmony_ci    This extension interacts with ARB_color_buffer_float.
585bd8deadSopenharmony_ci
595bd8deadSopenharmony_ciOverview
605bd8deadSopenharmony_ci
615bd8deadSopenharmony_ci    This extension adds texture internal formats with 16- and 32-bit
625bd8deadSopenharmony_ci    floating-point components.  The 32-bit floating-point components
635bd8deadSopenharmony_ci    are in the standard IEEE float format.  The 16-bit floating-point
645bd8deadSopenharmony_ci    components have 1 sign bit, 5 exponent bits, and 10 mantissa bits.
655bd8deadSopenharmony_ci    Floating-point components are clamped to the limits of the range
665bd8deadSopenharmony_ci    representable by their format.
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ciIP Status
705bd8deadSopenharmony_ci
715bd8deadSopenharmony_ci    SGI owns US Patent #6,650,327, issued November 18, 2003. SGI
725bd8deadSopenharmony_ci    believes this patent contains necessary IP for graphics systems
735bd8deadSopenharmony_ci    implementing floating point (FP) rasterization and FP framebuffer
745bd8deadSopenharmony_ci    capabilities.
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    SGI will not grant the ARB royalty-free use of this IP for use in
775bd8deadSopenharmony_ci    OpenGL, but will discuss licensing on RAND terms, on an individual
785bd8deadSopenharmony_ci    basis with companies wishing to use this IP in the context of
795bd8deadSopenharmony_ci    conformant OpenGL implementations. SGI does not plan to make any
805bd8deadSopenharmony_ci    special exemption for open source implementations.
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    Contact Doug Crisman at SGI Legal for the complete IP disclosure.
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ciIssues
855bd8deadSopenharmony_ci
865bd8deadSopenharmony_ci    1. How is this extension different from the ATI_texture_float
875bd8deadSopenharmony_ci       extension?
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci       This extension expands on the definition of float16 values
905bd8deadSopenharmony_ci       and adds a query to determine if the components of a texture
915bd8deadSopenharmony_ci       are stored as floats.
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ci    2. Should the new names of the internal formats be changed to a
945bd8deadSopenharmony_ci       different spelling?
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci       RESOLVED:  Internal format names have been updated to the
975bd8deadSopenharmony_ci       same convention as the EXT_framebuffer_object extension.
985bd8deadSopenharmony_ci
995bd8deadSopenharmony_ci    3. Is it allowable for an implementation to fall back to a non
1005bd8deadSopenharmony_ci       floating-point internal format if it does not support the
1015bd8deadSopenharmony_ci       requested format?
1025bd8deadSopenharmony_ci
1035bd8deadSopenharmony_ci       RESOLVED:  No.  An application that requests floating-point
1045bd8deadSopenharmony_ci       formats should expect to get them.  Only the precision of the
1055bd8deadSopenharmony_ci       internal format can be changed.  When this extension is
1065bd8deadSopenharmony_ci       promoted to the core, this issue may need to be readdressed.
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    4. Do the new internal formats apply to any other commands?
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci       RESOLVED:  Since color tables support the same <internalFormat>
1115bd8deadSopenharmony_ci       values as textures, they are also extended with this extension,
1125bd8deadSopenharmony_ci       except the individual component types cannot be queried.
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ci    5. Are the floating-point values clamped before they are stored
1155bd8deadSopenharmony_ci       into the texture memory or color tables?
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ci       RESOLVED:  The values are clamped to the representatable
1185bd8deadSopenharmony_ci       range of the storage format.  Overflows could produce
1195bd8deadSopenharmony_ci       +/-INF and underflows could produce denorms or zero.  This
1205bd8deadSopenharmony_ci       matches the behavior of the ATI extension.
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    6. Should this extension modify the clamping of the texture border
1235bd8deadSopenharmony_ci       color components?
1245bd8deadSopenharmony_ci
1255bd8deadSopenharmony_ci       RESOLVED:  Yes.  The border color components are unclamped.
1265bd8deadSopenharmony_ci       When used, the border color components are interpreted in a
1275bd8deadSopenharmony_ci       manner consistent with the texture's internal format.  For
1285bd8deadSopenharmony_ci       fixed-point textures, this means that the border color is
1295bd8deadSopenharmony_ci       clamped to [0, 1] when used.
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci    7. Are floating-point values clamped for the fixed-function GL?
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci       RESOLVED:  This extension introduces texel values that can be
1345bd8deadSopenharmony_ci       outside [0, 1].  No clamping occurs to these values during
1355bd8deadSopenharmony_ci       texture filtering.  For the fixed-function pipeline, the
1365bd8deadSopenharmony_ci       filtered texel is now clamped before it is used for texture
1375bd8deadSopenharmony_ci       environment blending.  The ARB_color_buffer_float extension
1385bd8deadSopenharmony_ci       can be used to control this clamping.  For the programmable
1395bd8deadSopenharmony_ci       pipelines, no clamping occurs.
1405bd8deadSopenharmony_ci
1415bd8deadSopenharmony_ci    8. Should the query for the border color return the unclamped
1425bd8deadSopenharmony_ci       values?
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci       RESOLVED:  There is language in the ARB_color_buffer_float
1455bd8deadSopenharmony_ci       extension that handles this.  Since there is no clamp control
1465bd8deadSopenharmony_ci       in this specification, it would be hard to do anything other
1475bd8deadSopenharmony_ci       than return the clamped values.
1485bd8deadSopenharmony_ci
1495bd8deadSopenharmony_ciNew Procedures and Functions
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ci   None
1525bd8deadSopenharmony_ci
1535bd8deadSopenharmony_ciNew Tokens
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci    Accepted by the <value> parameter of GetTexLevelParameter:
1565bd8deadSopenharmony_ci
1575bd8deadSopenharmony_ci        TEXTURE_RED_TYPE_ARB             0x8C10
1585bd8deadSopenharmony_ci        TEXTURE_GREEN_TYPE_ARB           0x8C11
1595bd8deadSopenharmony_ci        TEXTURE_BLUE_TYPE_ARB            0x8C12
1605bd8deadSopenharmony_ci        TEXTURE_ALPHA_TYPE_ARB           0x8C13
1615bd8deadSopenharmony_ci        TEXTURE_LUMINANCE_TYPE_ARB       0x8C14
1625bd8deadSopenharmony_ci        TEXTURE_INTENSITY_TYPE_ARB       0x8C15
1635bd8deadSopenharmony_ci        TEXTURE_DEPTH_TYPE_ARB           0x8C16
1645bd8deadSopenharmony_ci
1655bd8deadSopenharmony_ci    Returned by the <params> parameter of GetTexLevelParameter:
1665bd8deadSopenharmony_ci
1675bd8deadSopenharmony_ci        UNSIGNED_NORMALIZED_ARB          0x8C17
1685bd8deadSopenharmony_ci
1695bd8deadSopenharmony_ci    Accepted by the <internalFormat> parameter of TexImage1D,
1705bd8deadSopenharmony_ci    TexImage2D, and TexImage3D:
1715bd8deadSopenharmony_ci
1725bd8deadSopenharmony_ci        RGBA32F_ARB                      0x8814
1735bd8deadSopenharmony_ci        RGB32F_ARB                       0x8815
1745bd8deadSopenharmony_ci        ALPHA32F_ARB                     0x8816
1755bd8deadSopenharmony_ci        INTENSITY32F_ARB                 0x8817
1765bd8deadSopenharmony_ci        LUMINANCE32F_ARB                 0x8818
1775bd8deadSopenharmony_ci        LUMINANCE_ALPHA32F_ARB           0x8819
1785bd8deadSopenharmony_ci        RGBA16F_ARB                      0x881A
1795bd8deadSopenharmony_ci        RGB16F_ARB                       0x881B
1805bd8deadSopenharmony_ci        ALPHA16F_ARB                     0x881C
1815bd8deadSopenharmony_ci        INTENSITY16F_ARB                 0x881D
1825bd8deadSopenharmony_ci        LUMINANCE16F_ARB                 0x881E
1835bd8deadSopenharmony_ci        LUMINANCE_ALPHA16F_ARB           0x881F
1845bd8deadSopenharmony_ci
1855bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 2.0 Specification (OpenGL Operation)
1865bd8deadSopenharmony_ci
1875bd8deadSopenharmony_ci    Add a new Section 2.1.2, (p. 6):
1885bd8deadSopenharmony_ci
1895bd8deadSopenharmony_ci    2.1.2  16-Bit Floating-Point Numbers
1905bd8deadSopenharmony_ci
1915bd8deadSopenharmony_ci    A 16-bit floating-point number has a 1-bit sign (S), a 5-bit
1925bd8deadSopenharmony_ci    exponent (E), and a 10-bit mantissa (M).  The value of a 16-bit
1935bd8deadSopenharmony_ci    floating-point number is determined by the following:
1945bd8deadSopenharmony_ci
1955bd8deadSopenharmony_ci        (-1)^S * 0.0,                        if E == 0 and M == 0,
1965bd8deadSopenharmony_ci        (-1)^S * 2^-14 * (M / 2^10),         if E == 0 and M != 0,
1975bd8deadSopenharmony_ci        (-1)^S * 2^(E-15) * (1 + M/2^10),    if 0 < E < 31,
1985bd8deadSopenharmony_ci        (-1)^S * INF,                        if E == 31 and M == 0, or
1995bd8deadSopenharmony_ci        NaN,                                 if E == 31 and M != 0,
2005bd8deadSopenharmony_ci
2015bd8deadSopenharmony_ci    where
2025bd8deadSopenharmony_ci
2035bd8deadSopenharmony_ci        S = floor((N mod 65536) / 32768),
2045bd8deadSopenharmony_ci        E = floor((N mod 32768) / 1024), and
2055bd8deadSopenharmony_ci        M = N mod 1024.
2065bd8deadSopenharmony_ci
2075bd8deadSopenharmony_ci    Implementations are also allowed to use any of the following
2085bd8deadSopenharmony_ci    alternative encodings:
2095bd8deadSopenharmony_ci
2105bd8deadSopenharmony_ci        (-1)^S * 0.0,                        if E == 0 and M != 0,
2115bd8deadSopenharmony_ci        (-1)^S * 2^(E-15) * (1 + M/2^10),    if E == 31 and M == 0, or
2125bd8deadSopenharmony_ci        (-1)^S * 2^(E-15) * (1 + M/2^10),    if E == 31 and M != 0,
2135bd8deadSopenharmony_ci
2145bd8deadSopenharmony_ci    Any representable 16-bit floating-point value is legal as input
2155bd8deadSopenharmony_ci    to a GL command that accepts 16-bit floating-point data.  The
2165bd8deadSopenharmony_ci    result of providing a value that is not a floating-point number
2175bd8deadSopenharmony_ci    (such as infinity or NaN) to such a command is unspecified, but
2185bd8deadSopenharmony_ci    must not lead to GL interruption or termination.  Providing a
2195bd8deadSopenharmony_ci    denormalized number or negative zero to GL must yield predictable
2205bd8deadSopenharmony_ci    results.
2215bd8deadSopenharmony_ci
2225bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization)
2235bd8deadSopenharmony_ci
2245bd8deadSopenharmony_ci    Modify Section 3.6.3 (Pixel Transfer Modes), p. 116
2255bd8deadSopenharmony_ci
2265bd8deadSopenharmony_ci    (modify first paragraph, p. 118) The specified image is taken from
2275bd8deadSopenharmony_ci    memory and processed just as if DrawPixels were called, stopping
2285bd8deadSopenharmony_ci    after the final expansion to RGBA. The R, G, B, and A components of
2295bd8deadSopenharmony_ci    each pixel are then scaled by the four COLOR TABLE SCALE parameters
2305bd8deadSopenharmony_ci    and biased by the four COLOR TABLE BIAS parameters.  These
2315bd8deadSopenharmony_ci    parameters are set by calling ColorTableParameterfv as described
2325bd8deadSopenharmony_ci    below.  If fragment color clamping is enable or the
2335bd8deadSopenharmony_ci    <internalformat> is fixed-point, the components are clamped to
2345bd8deadSopenharmony_ci    [0, 1]. Otherwise, the components are not modified.
2355bd8deadSopenharmony_ci
2365bd8deadSopenharmony_ci    Modify Section 3.8.1 (Texture Image Specification), p. 150
2375bd8deadSopenharmony_ci
2385bd8deadSopenharmony_ci    (modify second paragraph, p. 151) The selected groups are processed
2395bd8deadSopenharmony_ci    exactly as for DrawPixels, stopping just before final conversion.
2405bd8deadSopenharmony_ci    For R, G, B, and A, if the <internalformat> of the texture is
2415bd8deadSopenharmony_ci    fixed-point, the components are clamped to [0, 1].  Otherwise, the
2425bd8deadSopenharmony_ci    components are not modified.  The depth value so generated is
2435bd8deadSopenharmony_ci    clamped to [0, 1].
2445bd8deadSopenharmony_ci
2455bd8deadSopenharmony_ci    (modify the second paragraph, p. 152) The internal component resolution
2465bd8deadSopenharmony_ci    is the number of bits allocated to each value in a texture image. If
2475bd8deadSopenharmony_ci    <internalformat> is specified as a base internal format, the GL stores
2485bd8deadSopenharmony_ci    the resulting texture with internal component resolutions of its own
2495bd8deadSopenharmony_ci    choosing.  If a sized internal format is specified, the mapping of the
2505bd8deadSopenharmony_ci    R, G, B, A, and depth values to texture components is equivalent to the
2515bd8deadSopenharmony_ci    mapping of the corresponding base internal format's components, as
2525bd8deadSopenharmony_ci    specified in table 3.15, the type (unsigned int, float, etc.) is
2535bd8deadSopenharmony_ci    assigned the same type specified by <internalFormat>, and the memory
2545bd8deadSopenharmony_ci    allocation per texture component is assigned by the GL to match the
2555bd8deadSopenharmony_ci    allocations listed in table 3.16 as closely as possible. (The definition
2565bd8deadSopenharmony_ci    of closely is left up to the implementation.  Implementations are not
2575bd8deadSopenharmony_ci    required to support more than one resolution of each type (unsigned int,
2585bd8deadSopenharmony_ci    float, etc.) for each base internal format.) If a compressed internal
2595bd8deadSopenharmony_ci    format is specified, the mapping of the R, G, B, A, and depth values to
2605bd8deadSopenharmony_ci    texture components is equivalent to the mapping of the corresponding
2615bd8deadSopenharmony_ci    base internal format's components, as specified in table 3.15. The
2625bd8deadSopenharmony_ci    specified image is compressed using a (possibly lossy) compression
2635bd8deadSopenharmony_ci    algorithm chosen by the GL.
2645bd8deadSopenharmony_ci
2655bd8deadSopenharmony_ci    (add the following to table 3.16, p. 154)
2665bd8deadSopenharmony_ci
2675bd8deadSopenharmony_ci      Sized                       Base             R    G    B    A    L    I
2685bd8deadSopenharmony_ci      Internal Format             Internal Format bits bits bits bits bits bits
2695bd8deadSopenharmony_ci      --------------------------- --------------- ---- ---- ---- ---- ---- ----
2705bd8deadSopenharmony_ci      RGBA32F_ARB                 RGBA            f32  f32  f32  f32
2715bd8deadSopenharmony_ci      RGB32F_ARB                  RGB             f32  f32  f32
2725bd8deadSopenharmony_ci      ALPHA32F_ARB                ALPHA                          f32
2735bd8deadSopenharmony_ci      INTENSITY32F_ARB            INTENSITY                                f32
2745bd8deadSopenharmony_ci      LUMINANCE32F_ARB            LUMINANCE                           f32
2755bd8deadSopenharmony_ci      LUMINANCE_ALPHA32F_ARB      LUMINANCE_ALPHA                f32  f32
2765bd8deadSopenharmony_ci      RGBA16F_ARB                 RGBA            f16  f16  f16  f16
2775bd8deadSopenharmony_ci      RGB16F_ARB                  RGB             f16  f16  f16
2785bd8deadSopenharmony_ci      ALPHA16F_ARB                ALPHA                          f16
2795bd8deadSopenharmony_ci      INTENSITY16F_ARB            INTENSITY                                f16
2805bd8deadSopenharmony_ci      LUMINANCE16F_ARB            LUMINANCE                           f16
2815bd8deadSopenharmony_ci      LUMINANCE_ALPHA16F_ARB      LUMINANCE_ALPHA                f16  f16
2825bd8deadSopenharmony_ci
2835bd8deadSopenharmony_ci      Table 3.16: Correspondence of sized internal formats to base
2845bd8deadSopenharmony_ci      internal formats, and desired component resolutions for each
2855bd8deadSopenharmony_ci      sized internal format.  The notation <f16> and <f32> imply
2865bd8deadSopenharmony_ci      16- and 32-bit floating-point, respectively.
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ci    Modify Section 3.8.4 (Texture Parameters), p. 166
2895bd8deadSopenharmony_ci
2905bd8deadSopenharmony_ci    (remove TEXTURE_BORDER_COLOR from end of first paragraph, p. 166)
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci    ... If the values for TEXTURE_BORDER_COLOR or the value for
2935bd8deadSopenharmony_ci    TEXTURE_PRIORITY are specified as integers, the conversion for signed
2945bd8deadSopenharmony_ci    integers from table 2.9 is applied to convert this value to
2955bd8deadSopenharmony_ci    floating-point.  Regardless of the original data type, the value for
2965bd8deadSopenharmony_ci    TEXTURE_PRIORITY is clamped to lie in [0, 1].
2975bd8deadSopenharmony_ci
2985bd8deadSopenharmony_ci    ... If the value for TEXTURE_PRIORITY is specified as an integer,
2995bd8deadSopenharmony_ci    the conversion for signed integers from table 2.9 is applied to
3005bd8deadSopenharmony_ci    convert this value to floating-point, followed by clamping the
3015bd8deadSopenharmony_ci    value to lie in [0, 1].
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ci    Modify Section 3.8.8 (Texture Minification), p. 170
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci    (modify last paragraph, p. 174) ... If the texture contains color
3065bd8deadSopenharmony_ci    components, the values of TEXTURE BORDER COLOR are interpreted as
3075bd8deadSopenharmony_ci    an RGBA color to match the texture's internal format in a manner
3085bd8deadSopenharmony_ci    consistent with table 3.15.  The border values for texture
3095bd8deadSopenharmony_ci    components stored as fixed-point values are clamped to [0, 1]
3105bd8deadSopenharmony_ci    before they are used.  If the texture contains depth ...
3115bd8deadSopenharmony_ci
3125bd8deadSopenharmony_ci    Modify Section 3.8.11 (Texture State and Proxy State) p. 178
3135bd8deadSopenharmony_ci
3145bd8deadSopenharmony_ci    (modify the first section, p. 178) ...Each array has associated with
3155bd8deadSopenharmony_ci    it a width, height (two- and three-dimensional and cubemap only), and
3165bd8deadSopenharmony_ci    depth (three-dimensional only), a border width, an integer describing
3175bd8deadSopenharmony_ci    the internal format of the image, six integer values describing the
3185bd8deadSopenharmony_ci    resolutions of each of the red, green, blue, alpha, luminance, and
3195bd8deadSopenharmony_ci    intensity components of the image, six values that describe the type
3205bd8deadSopenharmony_ci    (unsigned int, floats, etc.) of each of the red, green, blue, alpha,
3215bd8deadSopenharmony_ci    luminance, and intensity components of the image, a boolean describing
3225bd8deadSopenharmony_ci    whether the image is compressed or not, and an integer size of a
3235bd8deadSopenharmony_ci    compressed image.  Each initial...
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ci    (modify the first paragraph, p. 179) ...Each proxy array includes width,
3265bd8deadSopenharmony_ci    height (two- and three- dimensional arrays only), depth
3275bd8deadSopenharmony_ci    (three-dimensional arrays only), border width, and internal format state
3285bd8deadSopenharmony_ci    values, as well as state for the red, green, blue, alpha, luminance, and
3295bd8deadSopenharmony_ci    intensity component resolutions and types (unsigned int, floats, etc.).
3305bd8deadSopenharmony_ci    Proxy arrays do not include image data, nor do they include texture
3315bd8deadSopenharmony_ci    properties. When TexImage3D is executed with target specified as PROXY
3325bd8deadSopenharmony_ci    TEXTURE 3D, the three-dimensional proxy state values of the specified
3335bd8deadSopenharmony_ci    level-of-detail are recomputed and updated. If the image array would not
3345bd8deadSopenharmony_ci    be supported by TexImage3D called with target set to TEXTURE 3D, no
3355bd8deadSopenharmony_ci    error is generated, but the proxy width, height, depth, border width,
3365bd8deadSopenharmony_ci    and component resolutions are set to zero, and the component types are
3375bd8deadSopenharmony_ci    set to NONE. If the image...
3385bd8deadSopenharmony_ci
3395bd8deadSopenharmony_ci    Modify Section 3.8.13 (Texture Environments and Functions), p.182
3405bd8deadSopenharmony_ci
3415bd8deadSopenharmony_ci    (replace the sixth paragraph of p. 183) All of these color values
3425bd8deadSopenharmony_ci    are clamped to the range [0, 1].  The texture functions are
3435bd8deadSopenharmony_ci    specified in tables 3.22, 3.23, and 3.24.
3445bd8deadSopenharmony_ci
3455bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment
3465bd8deadSopenharmony_ciOperations and the Frame Buffer)
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ci    None
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 2.0 Specification (Special
3515bd8deadSopenharmony_ciFunctions)
3525bd8deadSopenharmony_ci
3535bd8deadSopenharmony_ci    None
3545bd8deadSopenharmony_ci
3555bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 2.0 Specification (State and
3565bd8deadSopenharmony_ciState Requests)
3575bd8deadSopenharmony_ci
3585bd8deadSopenharmony_ci    Modify Section 6.1.3 (Enumerated Queries), p. 246
3595bd8deadSopenharmony_ci
3605bd8deadSopenharmony_ci    (modify second paragraph, p. 247) For texture images with uncompressed
3615bd8deadSopenharmony_ci    internal formats, queries of <value> of TEXTURE_RED_TYPE_ARB,
3625bd8deadSopenharmony_ci    TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB, TEXTURE_ALPHA_TYPE_ARB,
3635bd8deadSopenharmony_ci    TEXTURE_LUMINANCE_TYPE_ARB, TEXTURE_INTENSITY_TYPE_ARB, and
3645bd8deadSopenharmony_ci    TEXTURE_DEPTH_TYPE_ARB, return either NONE, UNSIGNED_NORMALIZED_ARB, or
3655bd8deadSopenharmony_ci    FLOAT indicating how the components are stored, and the queries of
3665bd8deadSopenharmony_ci    <value> of TEXTURE_RED_SIZE, TEXTURE_GREEN_SIZE, TEXTURE_BLUE_SIZE,
3675bd8deadSopenharmony_ci    TEXTURE_ALPHA_SIZE, TEXTURE_LUMINANCE_SIZE, TEXTURE_DEPTH_SIZE, and
3685bd8deadSopenharmony_ci    TEXTURE_INTENSITY_SIZE return the actual resolutions of the stored image
3695bd8deadSopenharmony_ci    array components, not the resolutions specified when the image array was
3705bd8deadSopenharmony_ci    defined.
3715bd8deadSopenharmony_ci
3725bd8deadSopenharmony_ciAdditions to the AGL/GLX/WGL Specifications
3735bd8deadSopenharmony_ci
3745bd8deadSopenharmony_ci    None
3755bd8deadSopenharmony_ci
3765bd8deadSopenharmony_ciDependencies on ARB_color_buffer_float extension
3775bd8deadSopenharmony_ci
3785bd8deadSopenharmony_ci    The ARB_color_buffer_float extension allows clamping to be
3795bd8deadSopenharmony_ci    controlled in various parts of the GL.  Specifically, clamping
3805bd8deadSopenharmony_ci    of filtered texel values used for texture environment blending
3815bd8deadSopenharmony_ci    can be disable.
3825bd8deadSopenharmony_ci
3835bd8deadSopenharmony_ciErrors
3845bd8deadSopenharmony_ci
3855bd8deadSopenharmony_ci    None
3865bd8deadSopenharmony_ci
3875bd8deadSopenharmony_ciNew State
3885bd8deadSopenharmony_ci
3895bd8deadSopenharmony_ci    (Table 6.17, p. 278) add the following entries:
3905bd8deadSopenharmony_ci
3915bd8deadSopenharmony_ci    Get Value                        Type   Get Command           Minimum Value  Description      Section   Attribute
3925bd8deadSopenharmony_ci    -------------------------------  -----  --------------------  -------------  ---------------  --------  ----------
3935bd8deadSopenharmony_ci    TEXTURE_RED_TYPE_ARB             Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3945bd8deadSopenharmony_ci    TEXTURE_GREEN_TYPE_ARB           Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3955bd8deadSopenharmony_ci    TEXTURE_BLUE_TYPE_ARB            Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3965bd8deadSopenharmony_ci    TEXTURE_ALPHA_TYPE_ARB           Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3975bd8deadSopenharmony_ci    TEXTURE_LUMINANCE_TYPE_ARB       Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3985bd8deadSopenharmony_ci    TEXTURE_INTENSITY_TYPE_ARB       Z3     GetTexLevelParameter  -              storage type     6.1.3     -
3995bd8deadSopenharmony_ci    TEXTURE_DEPTH_TYPE_ARB           Z3     GetTexLevelParameter  -              storage type     6.1.3     -
4005bd8deadSopenharmony_ci
4015bd8deadSopenharmony_ciNew Implementation Dependent State
4025bd8deadSopenharmony_ci
4035bd8deadSopenharmony_ci    None
4045bd8deadSopenharmony_ci
4055bd8deadSopenharmony_ciRevision History
4065bd8deadSopenharmony_ci
4075bd8deadSopenharmony_ci    Rev.    Date    Author     Changes
4085bd8deadSopenharmony_ci    ----  -------- ---------  ----------------------------------------
4095bd8deadSopenharmony_ci      1   2/26/04  kirkland   Initial version based on the ATI
4105bd8deadSopenharmony_ci                              extension.
4115bd8deadSopenharmony_ci
4125bd8deadSopenharmony_ci      2   3/11/04  kirkland   Updated language for float16 number
4135bd8deadSopenharmony_ci                              handling.
4145bd8deadSopenharmony_ci                              Added bit encodings for half values.
4155bd8deadSopenharmony_ci                              Added an issue for color tables.
4165bd8deadSopenharmony_ci                              Added separate queries for component
4175bd8deadSopenharmony_ci                              types.
4185bd8deadSopenharmony_ci                              Changed the internal format names to
4195bd8deadSopenharmony_ci                              match the uber buffer extension.
4205bd8deadSopenharmony_ci                              Added language to not allow textures to
4215bd8deadSopenharmony_ci                              change the type of the internal formats,
4225bd8deadSopenharmony_ci                              only the precision.
4235bd8deadSopenharmony_ci
4245bd8deadSopenharmony_ci      3   7/23/04  kirkland   Added alternative encodings options for
4255bd8deadSopenharmony_ci                              float16 format.
4265bd8deadSopenharmony_ci
4275bd8deadSopenharmony_ci      4   9/17/04  kirkland   Updated to reference the OpenGL 2.0 spec.
4285bd8deadSopenharmony_ci                              Added interaction with clamp control.
4295bd8deadSopenharmony_ci                              Removed the clamping of color table data.
4305bd8deadSopenharmony_ci
4315bd8deadSopenharmony_ci      5   10/1/04  Kirkland   Updated IP section.
4325bd8deadSopenharmony_ci                              Reviewed by the ARB and closed all
4335bd8deadSopenharmony_ci                              UNRESOLVED issues.
4345bd8deadSopenharmony_ci
4355bd8deadSopenharmony_ci      6    7/6/06  pbrown     Fixed broken language for border color 
4365bd8deadSopenharmony_ci                              handling.  TexParameteriv border colors
4375bd8deadSopenharmony_ci                              should still be converted to integer; we
4385bd8deadSopenharmony_ci                              only intended to remove the [0,1] clamping.
4395bd8deadSopenharmony_ci
4405bd8deadSopenharmony_ci      7   2/8/07   Jon Leech  Move 3.8.13 changes to appropriate section.
441