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