15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_texture_integer 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_texture_integer 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContact 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Michael Gold, NVIDIA Corporation (gold 'at' nvidia.com) 125bd8deadSopenharmony_ci Pat Brown, NVIDIA Corporation (pbrown 'at' nvidia.com) 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciStatus 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Shipping for GeForce 8 Series (November 2006) 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciVersion 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci Last Modified Date: 05/20/2010 215bd8deadSopenharmony_ci NVIDIA Revision: 6 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciNumber 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci 343 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ciDependencies 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ci OpenGL 2.0 is required. 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci NV_gpu_program4 or EXT_gpu_shader4 is required. 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci ARB_texture_float affects the definition of this extension. 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ci ARB_color_buffer_float affects the definition of this extension. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci EXT_framebuffer_object affects the definition of this extension. 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci This extension is written against the OpenGL 2.0 specification. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ciOverview 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci Fixed-point textures in unextended OpenGL have integer components, 445bd8deadSopenharmony_ci but those values are taken to represent floating-point values in 455bd8deadSopenharmony_ci the range [0,1]. These integer components are considered 465bd8deadSopenharmony_ci "normalized" integers. When such a texture is accessed by a 475bd8deadSopenharmony_ci shader or by fixed-function fragment processing, floating-point 485bd8deadSopenharmony_ci values are returned. 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci This extension provides a set of new "unnormalized" integer texture 515bd8deadSopenharmony_ci formats. Formats with both signed and unsigned integers are provided. In 525bd8deadSopenharmony_ci these formats, the components are treated as true integers. When such 535bd8deadSopenharmony_ci textures are accessed by a shader, actual integer values are returned. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci Pixel operations that read from or write to a texture or color 565bd8deadSopenharmony_ci buffer with unnormalized integer components follow a path similar 575bd8deadSopenharmony_ci to that used for color index pixel operations, except that more 585bd8deadSopenharmony_ci than one component may be provided at once. Integer values flow 595bd8deadSopenharmony_ci through the pixel processing pipe, and no pixel transfer 605bd8deadSopenharmony_ci operations are performed. Integer format enumerants used for such 615bd8deadSopenharmony_ci operations indicate unnormalized integer data. 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci Textures or render buffers with unnormalized integer formats may also be 645bd8deadSopenharmony_ci attached to framebuffer objects to receive fragment color values written 655bd8deadSopenharmony_ci by a fragment shader. Per-fragment operations that require floating-point 665bd8deadSopenharmony_ci color components, including multisample alpha operations, alpha test, 675bd8deadSopenharmony_ci blending, and dithering, have no effect when the corresponding colors are 685bd8deadSopenharmony_ci written to an integer color buffer. The NV_gpu_program4 and 695bd8deadSopenharmony_ci EXT_gpu_shader4 extensions add the capability to fragment programs and 705bd8deadSopenharmony_ci fragment shaders to write signed and unsigned integer output values. 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci This extension does not enforce type consistency for texture accesses or 735bd8deadSopenharmony_ci between fragment shaders and the corresponding framebuffer attachments. 745bd8deadSopenharmony_ci The results of a texture lookup from an integer texture are undefined: 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci * for fixed-function fragment processing, or 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci * for shader texture accesses expecting floating-point return values. 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci The color components used for per-fragment operations and written into a 815bd8deadSopenharmony_ci color buffer are undefined: 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ci * for fixed-function fragment processing with an integer color buffer, 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci * for fragment shaders that write floating-point color components to an 865bd8deadSopenharmony_ci integer color buffer, or 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci * for fragment shaders that write integer color components to a color 895bd8deadSopenharmony_ci buffer with floating point or normalized integer components. 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ciNew Procedures and Functions 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci void ClearColorIiEXT ( int r, int g, int b, int a ); 955bd8deadSopenharmony_ci void ClearColorIuiEXT ( uint r, uint g, uint b, uint a ); 965bd8deadSopenharmony_ci void TexParameterIivEXT( enum target, enum pname, int *params ); 975bd8deadSopenharmony_ci void TexParameterIuivEXT( enum target, enum pname, uint *params ); 985bd8deadSopenharmony_ci void GetTexParameterIivEXT ( enum target, enum pname, int *params); 995bd8deadSopenharmony_ci void GetTexParameterIuivEXT ( enum target, enum pname, uint *params); 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ciNew Tokens 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetBooleanv, GetIntegerv, 1045bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci RGBA_INTEGER_MODE_EXT 0x8D9E 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci Accepted by the <internalFormat> parameter of TexImage1D, 1095bd8deadSopenharmony_ci TexImage2D, and TexImage3D: 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci RGBA32UI_EXT 0x8D70 1125bd8deadSopenharmony_ci RGB32UI_EXT 0x8D71 1135bd8deadSopenharmony_ci ALPHA32UI_EXT 0x8D72 1145bd8deadSopenharmony_ci INTENSITY32UI_EXT 0x8D73 1155bd8deadSopenharmony_ci LUMINANCE32UI_EXT 0x8D74 1165bd8deadSopenharmony_ci LUMINANCE_ALPHA32UI_EXT 0x8D75 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci RGBA16UI_EXT 0x8D76 1195bd8deadSopenharmony_ci RGB16UI_EXT 0x8D77 1205bd8deadSopenharmony_ci ALPHA16UI_EXT 0x8D78 1215bd8deadSopenharmony_ci INTENSITY16UI_EXT 0x8D79 1225bd8deadSopenharmony_ci LUMINANCE16UI_EXT 0x8D7A 1235bd8deadSopenharmony_ci LUMINANCE_ALPHA16UI_EXT 0x8D7B 1245bd8deadSopenharmony_ci 1255bd8deadSopenharmony_ci RGBA8UI_EXT 0x8D7C 1265bd8deadSopenharmony_ci RGB8UI_EXT 0x8D7D 1275bd8deadSopenharmony_ci ALPHA8UI_EXT 0x8D7E 1285bd8deadSopenharmony_ci INTENSITY8UI_EXT 0x8D7F 1295bd8deadSopenharmony_ci LUMINANCE8UI_EXT 0x8D80 1305bd8deadSopenharmony_ci LUMINANCE_ALPHA8UI_EXT 0x8D81 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci RGBA32I_EXT 0x8D82 1335bd8deadSopenharmony_ci RGB32I_EXT 0x8D83 1345bd8deadSopenharmony_ci ALPHA32I_EXT 0x8D84 1355bd8deadSopenharmony_ci INTENSITY32I_EXT 0x8D85 1365bd8deadSopenharmony_ci LUMINANCE32I_EXT 0x8D86 1375bd8deadSopenharmony_ci LUMINANCE_ALPHA32I_EXT 0x8D87 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci RGBA16I_EXT 0x8D88 1405bd8deadSopenharmony_ci RGB16I_EXT 0x8D89 1415bd8deadSopenharmony_ci ALPHA16I_EXT 0x8D8A 1425bd8deadSopenharmony_ci INTENSITY16I_EXT 0x8D8B 1435bd8deadSopenharmony_ci LUMINANCE16I_EXT 0x8D8C 1445bd8deadSopenharmony_ci LUMINANCE_ALPHA16I_EXT 0x8D8D 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci RGBA8I_EXT 0x8D8E 1475bd8deadSopenharmony_ci RGB8I_EXT 0x8D8F 1485bd8deadSopenharmony_ci ALPHA8I_EXT 0x8D90 1495bd8deadSopenharmony_ci INTENSITY8I_EXT 0x8D91 1505bd8deadSopenharmony_ci LUMINANCE8I_EXT 0x8D92 1515bd8deadSopenharmony_ci LUMINANCE_ALPHA8I_EXT 0x8D93 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci Accepted by the <format> parameter of TexImage1D, TexImage2D, 1545bd8deadSopenharmony_ci TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D, 1555bd8deadSopenharmony_ci DrawPixels and ReadPixels: 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ci RED_INTEGER_EXT 0x8D94 1585bd8deadSopenharmony_ci GREEN_INTEGER_EXT 0x8D95 1595bd8deadSopenharmony_ci BLUE_INTEGER_EXT 0x8D96 1605bd8deadSopenharmony_ci ALPHA_INTEGER_EXT 0x8D97 1615bd8deadSopenharmony_ci RGB_INTEGER_EXT 0x8D98 1625bd8deadSopenharmony_ci RGBA_INTEGER_EXT 0x8D99 1635bd8deadSopenharmony_ci BGR_INTEGER_EXT 0x8D9A 1645bd8deadSopenharmony_ci BGRA_INTEGER_EXT 0x8D9B 1655bd8deadSopenharmony_ci LUMINANCE_INTEGER_EXT 0x8D9C 1665bd8deadSopenharmony_ci LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D 1675bd8deadSopenharmony_ci 1685bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) 1695bd8deadSopenharmony_ci 1705bd8deadSopenharmony_ci Modify Section 3.6.4 (Rasterization of Pixel Rectangles), p. 126: 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci (modify the last paragraph, p. 126) 1735bd8deadSopenharmony_ci Pixels are drawn using 1745bd8deadSopenharmony_ci 1755bd8deadSopenharmony_ci void DrawPixels( sizei width, sizei height, enum format, 1765bd8deadSopenharmony_ci enum type, void *data ); 1775bd8deadSopenharmony_ci 1785bd8deadSopenharmony_ci <format> is a symbolic constant indicating what the values in 1795bd8deadSopenharmony_ci memory represent. <width> and <height> are the width and height, 1805bd8deadSopenharmony_ci respectively, of the pixel rectangle to be drawn. <data> is a 1815bd8deadSopenharmony_ci pointer to the data to be drawn. These data are represented with 1825bd8deadSopenharmony_ci one of seven GL data types, specified by <type>. The 1835bd8deadSopenharmony_ci correspondence between the twenty type token values and the GL 1845bd8deadSopenharmony_ci data types they indicate is given in table 3.5. If the GL is in 1855bd8deadSopenharmony_ci color index mode and <format> is not one of COLOR_INDEX, 1865bd8deadSopenharmony_ci STENCIL_INDEX, or DEPTH_COMPONENT, then the error 1875bd8deadSopenharmony_ci INVALID_OPERATION occurs. If the GL is in RGBA mode and the color 1885bd8deadSopenharmony_ci buffer is an integer format and no fragment shader is active, the 1895bd8deadSopenharmony_ci error INVALID_OPERATION occurs. If <type> is BITMAP and <format> 1905bd8deadSopenharmony_ci is not COLOR_INDEX or STENCIL_INDEX then the error INVALID_ENUM 1915bd8deadSopenharmony_ci occurs. If <format> is one of the integer component formats as 1925bd8deadSopenharmony_ci defined in table 3.6, and <type> is FLOAT, then the error 1935bd8deadSopenharmony_ci INVALID_ENUM occurs. Some additional constraints on the 1945bd8deadSopenharmony_ci combinations of format and type values that are accepted is 1955bd8deadSopenharmony_ci discussed below. 1965bd8deadSopenharmony_ci 1975bd8deadSopenharmony_ci (add the following to table 3.6, p. 129) 1985bd8deadSopenharmony_ci Format Name Element Meaning and Order Target Buffer 1995bd8deadSopenharmony_ci ------ ---- ------- ------- --- ----- ------ ------ 2005bd8deadSopenharmony_ci RED_INTEGER_EXT iR Color 2015bd8deadSopenharmony_ci GREEN_INTEGER_EXT iG Color 2025bd8deadSopenharmony_ci BLUE_INTEGER_EXT iB Color 2035bd8deadSopenharmony_ci ALPHA_INTEGER_EXT iA Color 2045bd8deadSopenharmony_ci RGB_INTEGER_EXT iR, iG, iB Color 2055bd8deadSopenharmony_ci RGBA_INTEGER_EXT iR, iG, iB, iA Color 2065bd8deadSopenharmony_ci BGR_INTEGER_EXT iB, iG, iR Color 2075bd8deadSopenharmony_ci BGRA_INTEGER_EXT iB, iG, iR, iA Color 2085bd8deadSopenharmony_ci LUMINANCE_INTEGER_EXT iLuminance Color 2095bd8deadSopenharmony_ci LUMINANCE_ALPHA_INTEGER_EXT iLuminance, iA Color 2105bd8deadSopenharmony_ci 2115bd8deadSopenharmony_ci Table 3.6: DrawPixels and ReadPixels formats. The second column 2125bd8deadSopenharmony_ci gives a description of and the number and order of elements in a 2135bd8deadSopenharmony_ci group. Unless specified as an index, formats yield components. 2145bd8deadSopenharmony_ci Components are floating-point unless prefixed with the letter 'i' 2155bd8deadSopenharmony_ci which indicates they are integer. 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci (modify first paragraph, p. 129) 2185bd8deadSopenharmony_ci Data are taken from host memory as a sequence of signed or 2195bd8deadSopenharmony_ci unsigned bytes (GL data types byte and ubyte), signed or unsigned 2205bd8deadSopenharmony_ci short integers (GL data types short and ushort), signed or 2215bd8deadSopenharmony_ci unsigned integers (GL data types int and uint), or floating point 2225bd8deadSopenharmony_ci values (GL data type float). These elements are grouped into sets 2235bd8deadSopenharmony_ci of one, two, three, or four values, depending on the format, to 2245bd8deadSopenharmony_ci form a group. Table 3.6 summarizes the format of groups obtained 2255bd8deadSopenharmony_ci from memory; it also indicates those formats that yield indices 2265bd8deadSopenharmony_ci and those that yield floating-point or integer components. 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci (modify the last paragraph, p. 135) 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci Conversion to floating-point 2315bd8deadSopenharmony_ci 2325bd8deadSopenharmony_ci This step applies only to groups of floating-point components. It 2335bd8deadSopenharmony_ci is not performed on indices or integer components. 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ci (modify the third paragraph, p. 136) 2365bd8deadSopenharmony_ci Final Expansion to RGBA 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci This step is performed only for non-depth component groups. Each 2395bd8deadSopenharmony_ci group is converted to a group of 4 elements as follows: if a group 2405bd8deadSopenharmony_ci does not contain an A element, then A is added and set to 1 for 2415bd8deadSopenharmony_ci integer components or 1.0 for floating-point components. If any of 2425bd8deadSopenharmony_ci R, G, or B is missing from the group, each missing element is 2435bd8deadSopenharmony_ci added and assigned a value of 0 for integer components or 0.0 for 2445bd8deadSopenharmony_ci floating-point components. 2455bd8deadSopenharmony_ci 2465bd8deadSopenharmony_ci (modify the last paragraph, p. 136) 2475bd8deadSopenharmony_ci Final Conversion 2485bd8deadSopenharmony_ci 2495bd8deadSopenharmony_ci For a color index, final conversion consists of masking the bits 2505bd8deadSopenharmony_ci of the index to the left of the binary point by 2^n - 1, where n is 2515bd8deadSopenharmony_ci the number of bits in an index buffer. For floating-point RGBA 2525bd8deadSopenharmony_ci components, each element is clamped to [0, 1]. The resulting 2535bd8deadSopenharmony_ci values are converted to fixed-point according to the rules given 2545bd8deadSopenharmony_ci in section 2.14.9 (Final Color Processing). For integer RGBA 2555bd8deadSopenharmony_ci components, no conversion is applied. For a depth component, an 2565bd8deadSopenharmony_ci element is first clamped to [0, 1] and then converted to 2575bd8deadSopenharmony_ci fixed-point as if it were a window z value (see section 2.11.1, 2585bd8deadSopenharmony_ci Controlling the Viewport). Stencil indices are masked by 2^n - 1, 2595bd8deadSopenharmony_ci where n is the number of bits in the stencil buffer. 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci Modify Section 3.6.5 (Pixel Transfer Operations), p. 137 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci (modify last paragraph, p. 137) 2645bd8deadSopenharmony_ci The GL defines five kinds of pixel groups: 2655bd8deadSopenharmony_ci 2665bd8deadSopenharmony_ci 1. Floating-point RGBA component: Each group comprises four color 2675bd8deadSopenharmony_ci components in floating point format: red, green, blue, and 2685bd8deadSopenharmony_ci alpha. 2695bd8deadSopenharmony_ci 2705bd8deadSopenharmony_ci 2. Integer RGBA component: Each group comprises four color 2715bd8deadSopenharmony_ci components in integer format: red, green, blue, and alpha. 2725bd8deadSopenharmony_ci 2735bd8deadSopenharmony_ci 3. Depth component: Each group comprises a single depth component. 2745bd8deadSopenharmony_ci 2755bd8deadSopenharmony_ci 4. Color index: Each group comprises a single color index. 2765bd8deadSopenharmony_ci 2775bd8deadSopenharmony_ci 5. Stencil index: Each group comprises a single stencil index. 2785bd8deadSopenharmony_ci 2795bd8deadSopenharmony_ci (modify second paragraph, p. 138) 2805bd8deadSopenharmony_ci Each operation described in this section is applied sequentially 2815bd8deadSopenharmony_ci to each pixel group in an image. Many operations are applied only 2825bd8deadSopenharmony_ci to pixel groups of certain kinds; if an operation is not 2835bd8deadSopenharmony_ci applicable to a given group, it is skipped. None of the 2845bd8deadSopenharmony_ci operations defined in this section affect integer RGBA component 2855bd8deadSopenharmony_ci pixel groups. 2865bd8deadSopenharmony_ci 2875bd8deadSopenharmony_ci Modify Section 3.8 (Texturing), p. 149 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci (insert between the first and second paragraphs, p. 150) 2905bd8deadSopenharmony_ci The internal data type of a texture may be fixed-point, 2915bd8deadSopenharmony_ci floating-point, signed integer or unsigned integer, depending on 2925bd8deadSopenharmony_ci the internalformat of the texture. The correspondence between 2935bd8deadSopenharmony_ci internalformat and the internal data type is given in table 3.16. 2945bd8deadSopenharmony_ci Fixed-point and floating-point textures return a floating-point 2955bd8deadSopenharmony_ci value and integer textures return signed or unsigned integer 2965bd8deadSopenharmony_ci values. When a fragment shader is active, the shader is 2975bd8deadSopenharmony_ci responsible for interpreting the result of a texture lookup as the 2985bd8deadSopenharmony_ci correct data type, otherwise the result is undefined. Fixed 2995bd8deadSopenharmony_ci functionality assumes floating-point data, hence the result of 3005bd8deadSopenharmony_ci using fixed functionality with integer textures is undefined. 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci Modify Section 3.8.1 (Texture Image Specification), p. 150 3035bd8deadSopenharmony_ci 3045bd8deadSopenharmony_ci (modify second paragraph, p. 151) The selected groups are 3055bd8deadSopenharmony_ci processed exactly as for DrawPixels, stopping just before final 3065bd8deadSopenharmony_ci conversion. If the <internalformat> of the texture is integer, 3075bd8deadSopenharmony_ci the components are clamped to the representable range of the 3085bd8deadSopenharmony_ci internal format: for signed formats, this is [-2^(n-1), 2^(n-1)-1] 3095bd8deadSopenharmony_ci where n is the number of bits per component; for unsigned formats, 3105bd8deadSopenharmony_ci the range is [0, 2^n-1]. For R, G, B, and A, if the 3115bd8deadSopenharmony_ci <internalformat> of the texture is fixed-point, the components are 3125bd8deadSopenharmony_ci clamped to [0, 1]. Otherwise, the components are not modified. 3135bd8deadSopenharmony_ci 3145bd8deadSopenharmony_ci (insert between paragraphs five and six, p. 151) 3155bd8deadSopenharmony_ci Textures with integer internal formats (table 3.16) require 3165bd8deadSopenharmony_ci integer data. The error INVALID_OPERATION is generated if the 3175bd8deadSopenharmony_ci internal format is integer and <format> is not one of the integer 3185bd8deadSopenharmony_ci formats listed in table 3.6, or if the internal format is not 3195bd8deadSopenharmony_ci integer and <format> is an integer format, or if <format> is an 3205bd8deadSopenharmony_ci integer format and <type> is FLOAT. 3215bd8deadSopenharmony_ci 3225bd8deadSopenharmony_ci (add the following to table 3.16, p. 154) 3235bd8deadSopenharmony_ci Sized Base R G B A L I 3245bd8deadSopenharmony_ci Internal Format Internal Format bits bits bits bits bits bits 3255bd8deadSopenharmony_ci ----------------------- --------------- ---- ---- ---- ---- ---- ---- 3265bd8deadSopenharmony_ci ALPHA8I_EXT ALPHA i8 3275bd8deadSopenharmony_ci ALPHA8UI_EXT ALPHA ui8 3285bd8deadSopenharmony_ci ALPHA16I_EXT ALPHA i16 3295bd8deadSopenharmony_ci ALPHA16UI_EXT ALPHA ui16 3305bd8deadSopenharmony_ci ALPHA32I_EXT ALPHA i32 3315bd8deadSopenharmony_ci ALPHA32UI_EXT ALPHA ui32 3325bd8deadSopenharmony_ci LUMINANCE8I_EXT LUMINANCE i8 3335bd8deadSopenharmony_ci LUMINANCE8UI_EXT LUMINANCE ui8 3345bd8deadSopenharmony_ci LUMINANCE16I_EXT LUMINANCE i16 3355bd8deadSopenharmony_ci LUMINANCE16UI_EXT LUMINANCE ui16 3365bd8deadSopenharmony_ci LUMINANCE32I_EXT LUMINANCE i32 3375bd8deadSopenharmony_ci LUMINANCE32UI_EXT LUMINANCE ui32 3385bd8deadSopenharmony_ci LUMINANCE_ALPHA8I_EXT LUMINANCE_ALPHA i8 i8 3395bd8deadSopenharmony_ci LUMINANCE_ALPHA8UI_EXT LUMINANCE_ALPHA ui8 ui8 3405bd8deadSopenharmony_ci LUMINANCE_ALPHA16I_EXT LUMINANCE_ALPHA i16 i16 3415bd8deadSopenharmony_ci LUMINANCE_ALPHA16UI_EXT LUMINANCE_ALPHA ui16 ui16 3425bd8deadSopenharmony_ci LUMINANCE_ALPHA32I_EXT LUMINANCE_ALPHA i32 i32 3435bd8deadSopenharmony_ci LUMINANCE_ALPHA32UI_EXT LUMINANCE_ALPHA ui32 ui32 3445bd8deadSopenharmony_ci INTENSITY8I_EXT INTENSITY i8 3455bd8deadSopenharmony_ci INTENSITY8UI_EXT INTENSITY ui8 3465bd8deadSopenharmony_ci INTENSITY16I_EXT INTENSITY i16 3475bd8deadSopenharmony_ci INTENSITY16UI_EXT INTENSITY ui16 3485bd8deadSopenharmony_ci INTENSITY32I_EXT INTENSITY i32 3495bd8deadSopenharmony_ci INTENSITY32UI_EXT INTENSITY ui32 3505bd8deadSopenharmony_ci RGB8I_EXT RGB i8 i8 i8 3515bd8deadSopenharmony_ci RGB8UI_EXT RGB ui8 ui8 ui8 3525bd8deadSopenharmony_ci RGB16I_EXT RGB i16 i16 i16 3535bd8deadSopenharmony_ci RGB16UI_EXT RGB ui16 ui16 ui16 3545bd8deadSopenharmony_ci RGB32I_EXT RGB i32 i32 i32 3555bd8deadSopenharmony_ci RGB32UI_EXT RGB ui32 ui32 ui32 3565bd8deadSopenharmony_ci RGBA8I_EXT RGBA i8 i8 i8 i8 3575bd8deadSopenharmony_ci RGBA8UI_EXT RGBA ui8 ui8 ui8 ui8 3585bd8deadSopenharmony_ci RGBA16I_EXT RGBA i16 i16 i16 i16 3595bd8deadSopenharmony_ci RGBA16UI_EXT RGBA ui16 ui16 ui16 ui16 3605bd8deadSopenharmony_ci RGBA32I_EXT RGBA i32 i32 i32 i32 3615bd8deadSopenharmony_ci RGBA32UI_EXT RGBA ui32 ui32 ui32 ui32 3625bd8deadSopenharmony_ci 3635bd8deadSopenharmony_ci Table 3.16: Correspondence of sized internal formats to base 3645bd8deadSopenharmony_ci internal formats, internal data type and desired component 3655bd8deadSopenharmony_ci resolutions for each sized internal format. The component 3665bd8deadSopenharmony_ci resolution prefix indicates the internal data type: <f> is 3675bd8deadSopenharmony_ci floating point, <i> is signed integer, <ui> is unsigned integer, 3685bd8deadSopenharmony_ci and no prefix is fixed-point. 3695bd8deadSopenharmony_ci 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci Modify Section 3.8.2 (Alternate Texture Image Specification 3725bd8deadSopenharmony_ci Commands), p. 159: 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci (modify the second paragraph, p. 159) 3755bd8deadSopenharmony_ci The error INVALID_OPERATION is generated if depth component data 3765bd8deadSopenharmony_ci is required and no depth buffer is present, or if integer RGBA 3775bd8deadSopenharmony_ci data is required and the format of the current color buffer is not 3785bd8deadSopenharmony_ci integer, or if floating-point or fixed-point RGBA data is required 3795bd8deadSopenharmony_ci and the format of the current color buffer is integer. 3805bd8deadSopenharmony_ci 3815bd8deadSopenharmony_ci Modify Section 3.8.4 (Texture Parameters), p. 166: 3825bd8deadSopenharmony_ci 3835bd8deadSopenharmony_ci Various parameters control how the texture array is treated when 3845bd8deadSopenharmony_ci specified or changed, and when applied to a fragment. Each 3855bd8deadSopenharmony_ci parameter is set by calling 3865bd8deadSopenharmony_ci 3875bd8deadSopenharmony_ci void TexParameter{if}( enum target, enum pname, T param ); 3885bd8deadSopenharmony_ci void TexParameter{if}v( enum target, enum pname, T params ); 3895bd8deadSopenharmony_ci void TexParameterIivEXT( enum target, enum pname, int *params ); 3905bd8deadSopenharmony_ci void TexParameterIuivEXT( enum target, enum pname, uint *params ); 3915bd8deadSopenharmony_ci 3925bd8deadSopenharmony_ci <target> is the target, either TEXTURE_1D, TEXTURE_2D, TEXTURE_3D, 3935bd8deadSopenharmony_ci or TEXTURE_CUBE_MAP. <pname> is a symbolic constant indicating the 3945bd8deadSopenharmony_ci parameter to be set; the possible constants and corresponding 3955bd8deadSopenharmony_ci parameters are summarized in table 3.19. In the first form of the 3965bd8deadSopenharmony_ci command, <param> is a value to which to set a single-valued 3975bd8deadSopenharmony_ci parameter; in the second and third forms of the command, <params> 3985bd8deadSopenharmony_ci is an array of parameters whose type depends on the parameter 3995bd8deadSopenharmony_ci being set. 4005bd8deadSopenharmony_ci 4015bd8deadSopenharmony_ci If the value for TEXTURE_PRIORITY is specified as an integer, the 4025bd8deadSopenharmony_ci conversion for signed integers from table 2.9 is applied to 4035bd8deadSopenharmony_ci convert the value to floating-point. The floating point value of 4045bd8deadSopenharmony_ci TEXTURE_PRIORITY is clamped to lie in [0, 1]. 4055bd8deadSopenharmony_ci 4065bd8deadSopenharmony_ci If the values for TEXTURE_BORDER_COLOR are specified with 4075bd8deadSopenharmony_ci TexParameterIivEXT or TexParameterIuivEXT, the values are 4085bd8deadSopenharmony_ci unmodified and stored with an internal data type of integer. If 4095bd8deadSopenharmony_ci specified with TexParameteriv, the conversion for signed integers 4105bd8deadSopenharmony_ci from table 2.9 is applied to convert these values to 4115bd8deadSopenharmony_ci floating-point. Otherwise the values are unmodified and stored as 4125bd8deadSopenharmony_ci floating-point. 4135bd8deadSopenharmony_ci 4145bd8deadSopenharmony_ci 4155bd8deadSopenharmony_ci 4165bd8deadSopenharmony_ci (modify table 3.19, p. 167) 4175bd8deadSopenharmony_ci Name Type Legal Values 4185bd8deadSopenharmony_ci ---- ---- ------------ 4195bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR 4 floats or any 4 values 4205bd8deadSopenharmony_ci 4 ints or 4215bd8deadSopenharmony_ci 4 uints 4225bd8deadSopenharmony_ci 4235bd8deadSopenharmony_ci Table 3.19: Texture parameters and their values. 4245bd8deadSopenharmony_ci 4255bd8deadSopenharmony_ci Modify Section 3.8.8 (Texture Minification), p. 170 4265bd8deadSopenharmony_ci 4275bd8deadSopenharmony_ci (modify last paragraph, p. 174) 4285bd8deadSopenharmony_ci 4295bd8deadSopenharmony_ci ... If the texture contains color components, the values of 4305bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR are interpreted as an RGBA color to match the 4315bd8deadSopenharmony_ci texture's internal format in a manner consistent with table 3.15. 4325bd8deadSopenharmony_ci The internal data type of the border values must be consistent 4335bd8deadSopenharmony_ci with the type returned by the texture as described in section 3.8, 4345bd8deadSopenharmony_ci or the result is undefined. The border values for texture 4355bd8deadSopenharmony_ci components stored as fixed-point values are clamped to [0, 1] 4365bd8deadSopenharmony_ci before they are used. If the texture contains depth components, 4375bd8deadSopenharmony_ci the first component of TEXTURE_BORDER_COLOR is interpreted as a 4385bd8deadSopenharmony_ci depth value 4395bd8deadSopenharmony_ci 4405bd8deadSopenharmony_ci Modify Section 3.8.10 (Texture Completeness), p. 177: 4415bd8deadSopenharmony_ci 4425bd8deadSopenharmony_ci (add to the requirements for one-, two-, or three-dimensional 4435bd8deadSopenharmony_ci textures) 4445bd8deadSopenharmony_ci If the internalformat is integer, TEXTURE_MAG_FILTER must be 4455bd8deadSopenharmony_ci NEAREST and TEXTURE_MIN_FILTER must be NEAREST or 4465bd8deadSopenharmony_ci NEAREST_MIPMAP_NEAREST. 4475bd8deadSopenharmony_ci 4485bd8deadSopenharmony_ci Modify Section 3.11.2 (Shader Execution), p. 194 4495bd8deadSopenharmony_ci 4505bd8deadSopenharmony_ci (modify Shader Outputs, first paragraph, p. 196) 4515bd8deadSopenharmony_ci ... These are gl_FragColor, gl_FragData[n], and gl_FragDepth. If 4525bd8deadSopenharmony_ci fragment clamping is enabled and the color buffer has a 4535bd8deadSopenharmony_ci fixed-point or floating-point format, the final fragment color 4545bd8deadSopenharmony_ci values or the final fragment data values written by a fragment 4555bd8deadSopenharmony_ci shader are clamped to the range [0, 1]. If fragment clamping is 4565bd8deadSopenharmony_ci disabled or the color buffer has an integer format, the final 4575bd8deadSopenharmony_ci fragment color values or the final fragment data values are not 4585bd8deadSopenharmony_ci modified. The final fragment depth... 4595bd8deadSopenharmony_ci 4605bd8deadSopenharmony_ci (insert between the first paragraph and second paragraphs of 4615bd8deadSopenharmony_ci "Shader Outputs", p. 196) 4625bd8deadSopenharmony_ci Colors values written by the fragment shader may be floating- 4635bd8deadSopenharmony_ci point, signed integer or unsigned integer. If the color buffer 4645bd8deadSopenharmony_ci has a fixed-point format, the color values are assumed to be 4655bd8deadSopenharmony_ci floating-point and are converted to fixed-point as described in 4665bd8deadSopenharmony_ci section 2.14.9; otherwise no type conversion is applied. If the 4675bd8deadSopenharmony_ci values written by the fragment shader do not match the format(s) 4685bd8deadSopenharmony_ci of the corresponding color buffer(s), the result is undefined. 4695bd8deadSopenharmony_ci 4705bd8deadSopenharmony_ci 4715bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 2.0 Specification (Per-Fragment 4725bd8deadSopenharmony_ciOperations and the Frame Buffer) 4735bd8deadSopenharmony_ci 4745bd8deadSopenharmony_ci Modify Chapter 4 Introduction, (p. 198) 4755bd8deadSopenharmony_ci 4765bd8deadSopenharmony_ci (modify third paragraph, p. 198) 4775bd8deadSopenharmony_ci Color buffers consist of unsigned integer color indices, R, G, B 4785bd8deadSopenharmony_ci and optionally A floating-point components represented as 4795bd8deadSopenharmony_ci fixed-point unsigned integer or floating-point values, or R, G, B 4805bd8deadSopenharmony_ci and optionally A integer components represented as signed or 4815bd8deadSopenharmony_ci unsigned integer values. The number of bitplanes... 4825bd8deadSopenharmony_ci 4835bd8deadSopenharmony_ci Modify Section 4.1.3 (Multisample Fragment Operations), p. 200 4845bd8deadSopenharmony_ci 4855bd8deadSopenharmony_ci (modify the second paragraph in this section) 4865bd8deadSopenharmony_ci ... If SAMPLE_ALPHA_TO_COVERAGE is enabled and the color buffer 4875bd8deadSopenharmony_ci has a fixed-point or floating-point format, a temporary coverage 4885bd8deadSopenharmony_ci value is generated ... 4895bd8deadSopenharmony_ci 4905bd8deadSopenharmony_ci Modify Section 4.1.4 (Alpha Test), p. 201 4915bd8deadSopenharmony_ci 4925bd8deadSopenharmony_ci (modify the first paragraph in this section) 4935bd8deadSopenharmony_ci This step applies only in RGBA mode and only if the color buffer 4945bd8deadSopenharmony_ci has a fixed-point or floating-point format. In color index mode or 4955bd8deadSopenharmony_ci if the color buffer has an integer format, proceed to the next 4965bd8deadSopenharmony_ci operation. The alpha test discards ... 4975bd8deadSopenharmony_ci 4985bd8deadSopenharmony_ci Modify Section 4.1.8 (Blending), p. 205 4995bd8deadSopenharmony_ci 5005bd8deadSopenharmony_ci (modify the second paragraph, p. 206) 5015bd8deadSopenharmony_ci ... Blending is dependent on the incoming fragment's alpha value 5025bd8deadSopenharmony_ci and that of the corresponding currently stored pixel. Blending 5035bd8deadSopenharmony_ci applies only in RGBA mode and only if the color buffer has a 5045bd8deadSopenharmony_ci fixed-point or floating-point format; in color index mode or if 5055bd8deadSopenharmony_ci the color buffer has an integer format, it is bypassed. ... 5065bd8deadSopenharmony_ci 5075bd8deadSopenharmony_ci Modify Section 4.2.3 (Clearing the Buffers), p. 215 5085bd8deadSopenharmony_ci 5095bd8deadSopenharmony_ci void ClearColor(float r, float g, float b, float a); 5105bd8deadSopenharmony_ci 5115bd8deadSopenharmony_ci sets the clear value for fixed-point and floating-point color 5125bd8deadSopenharmony_ci buffers in RGBA mode. The specified components are stored as 5135bd8deadSopenharmony_ci floating-point values. 5145bd8deadSopenharmony_ci 5155bd8deadSopenharmony_ci void ClearColorIiEXT(int r, int g, int b, int a); 5165bd8deadSopenharmony_ci void ClearColorIuiEXT(uint r, uint g, uint b, uint a); 5175bd8deadSopenharmony_ci 5185bd8deadSopenharmony_ci set the clear value for signed integer and unsigned integer color 5195bd8deadSopenharmony_ci buffers, respectively, in RGBA mode. The specified components are 5205bd8deadSopenharmony_ci stored as integer values. 5215bd8deadSopenharmony_ci 5225bd8deadSopenharmony_ci (add to the end of first partial paragraph, p. 217) ... then a 5235bd8deadSopenharmony_ci Clear directed at that buffer has no effect. When fixed-point 5245bd8deadSopenharmony_ci RGBA color buffers are cleared, the clear color values are assumed 5255bd8deadSopenharmony_ci to be floating-point and are clamped to [0,1] before being 5265bd8deadSopenharmony_ci converted to fixed-point according to the rules of section 2.14.9. 5275bd8deadSopenharmony_ci The result of clearing fixed-point or floating-point color buffers 5285bd8deadSopenharmony_ci is undefined if the clear color was specified as integer values. 5295bd8deadSopenharmony_ci The result of when clearing integer color buffers is undefined if 5305bd8deadSopenharmony_ci the clear color was specified as floating-point values. 5315bd8deadSopenharmony_ci 5325bd8deadSopenharmony_ci Modify Section 4.3.2 (Reading Pixels), p. 219 5335bd8deadSopenharmony_ci 5345bd8deadSopenharmony_ci (append to the last paragraph, p. 221) 5355bd8deadSopenharmony_ci The error INVALID_OPERATION occurs if <format> is an integer 5365bd8deadSopenharmony_ci format and the color buffer is not an integer format, or if the 5375bd8deadSopenharmony_ci color buffer is an integer format and <format> is not. The error 5385bd8deadSopenharmony_ci INVALID_ENUM occurs if <format> is an integer format and <type> is 5395bd8deadSopenharmony_ci FLOAT. 5405bd8deadSopenharmony_ci 5415bd8deadSopenharmony_ci (modify the first paragraph, p. 222) 5425bd8deadSopenharmony_ci ... For a fixed-point color buffer, each element is taken to be a 5435bd8deadSopenharmony_ci fixed-point value in [0, 1] with m bits, where m is the number of 5445bd8deadSopenharmony_ci bits in the corresponding color component of the selected buffer 5455bd8deadSopenharmony_ci (see section 2.14.9). For an integer or floating-point color 5465bd8deadSopenharmony_ci buffer, the elements are unmodified. 5475bd8deadSopenharmony_ci 5485bd8deadSopenharmony_ci (modify the section labeled "Conversion to L", p. 222) 5495bd8deadSopenharmony_ci This step applies only to RGBA component groups. If the format is 5505bd8deadSopenharmony_ci either LUMINANCE or LUMINANCE_ALPHA, a value L is computed as 5515bd8deadSopenharmony_ci 5525bd8deadSopenharmony_ci L = R + G + B 5535bd8deadSopenharmony_ci 5545bd8deadSopenharmony_ci otherwise if the format is either LUMINANCE_INTEGER_EXT or 5555bd8deadSopenharmony_ci LUMINANCE_ALPHA_INTEGER_EXT, L is computed as 5565bd8deadSopenharmony_ci 5575bd8deadSopenharmony_ci L = R 5585bd8deadSopenharmony_ci 5595bd8deadSopenharmony_ci where R, G, and B are the values of the R, G, and B 5605bd8deadSopenharmony_ci components. The single computed L component replaces the R, G, and 5615bd8deadSopenharmony_ci B components in the group. 5625bd8deadSopenharmony_ci 5635bd8deadSopenharmony_ci (modify the section labeled "Final Conversion", p. 222) 5645bd8deadSopenharmony_ci 5655bd8deadSopenharmony_ci For a floating-point RGBA color, each component is first clamped 5665bd8deadSopenharmony_ci to [0, 1]. Then the appropriate conversion formula from table 4.7 5675bd8deadSopenharmony_ci is applied to the component. For an integer RGBA color, each 5685bd8deadSopenharmony_ci component is clamped to the representable range of <type>. 5695bd8deadSopenharmony_ci 5705bd8deadSopenharmony_ci 5715bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 2.0 Specification (State and 5725bd8deadSopenharmony_ciState Requests) 5735bd8deadSopenharmony_ci 5745bd8deadSopenharmony_ci Modify Section 6.1.3 (Enumerated Queries), p. 246 5755bd8deadSopenharmony_ci 5765bd8deadSopenharmony_ci (insert in the list of query functions, p. 246) 5775bd8deadSopenharmony_ci void GetTexParameterIivEXT( enum target, enum value, int *data ); 5785bd8deadSopenharmony_ci void GetTexParameterIuivEXT( enum target, enum value, uint *data ); 5795bd8deadSopenharmony_ci 5805bd8deadSopenharmony_ci (modify the second paragraph, p. 247) 5815bd8deadSopenharmony_ci ... For GetTexParameter, value must be either TEXTURE_RESIDENT, or 5825bd8deadSopenharmony_ci one of the symbolic values in table 3.19. Querying <value> 5835bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR with GetTexParameterIivEXT or 5845bd8deadSopenharmony_ci GetTexParameterIuivEXT returns the border color values as signed 5855bd8deadSopenharmony_ci integers or unsigned integers, respectively; otherwise the values 5865bd8deadSopenharmony_ci are returned as described in section 6.1.2. If the border color 5875bd8deadSopenharmony_ci is queried with a type that does not match the original type with 5885bd8deadSopenharmony_ci which it was specified, the result is undefined. The <lod> 5895bd8deadSopenharmony_ci argument ... 5905bd8deadSopenharmony_ci 5915bd8deadSopenharmony_ci (add to end of third paragraph, p. 247) Queries with a <value> of 5925bd8deadSopenharmony_ci TEXTURE_RED_TYPE_ARB, TEXTURE_GREEN_TYPE_ARB, TEXTURE_BLUE_TYPE_ARB, 5935bd8deadSopenharmony_ci TEXTURE_ALPHA_TYPE_ARB, TEXTURE_LUMINANCE_TYPE_ARB, 5945bd8deadSopenharmony_ci TEXTURE_INTENSITY_TYPE_ARB, or TEXTURE_DEPTH_TYPE_ARB, return the data 5955bd8deadSopenharmony_ci type used to store the component. Values of NONE, 5965bd8deadSopenharmony_ci UNSIGNED_NORMALIZED_ARB, FLOAT, INT, or UNSIGNED_INT, indicate missing, 5975bd8deadSopenharmony_ci unsigned normalized integer, floating-point, signed unnormalized integer, 5985bd8deadSopenharmony_ci and unsigned unnormalized integer components, respectively. 5995bd8deadSopenharmony_ci 6005bd8deadSopenharmony_ci 6015bd8deadSopenharmony_ciGLX Protocol 6025bd8deadSopenharmony_ci 6035bd8deadSopenharmony_ci The following rendering commands are sent to the server as part of 6045bd8deadSopenharmony_ci a glXRender request: 6055bd8deadSopenharmony_ci 6065bd8deadSopenharmony_ci ClearColorIiEXT 6075bd8deadSopenharmony_ci 6085bd8deadSopenharmony_ci 2 20 rendering command length 6095bd8deadSopenharmony_ci 2 4292 rendering command opcode 6105bd8deadSopenharmony_ci 4 INT32 r 6115bd8deadSopenharmony_ci 4 INT32 g 6125bd8deadSopenharmony_ci 4 INT32 b 6135bd8deadSopenharmony_ci 4 INT32 a 6145bd8deadSopenharmony_ci 6155bd8deadSopenharmony_ci ClearColorIuiEXT 6165bd8deadSopenharmony_ci 6175bd8deadSopenharmony_ci 2 20 rendering command length 6185bd8deadSopenharmony_ci 2 4293 rendering command opcode 6195bd8deadSopenharmony_ci 4 CARD32 r 6205bd8deadSopenharmony_ci 4 CARD32 g 6215bd8deadSopenharmony_ci 4 CARD32 b 6225bd8deadSopenharmony_ci 4 CARD32 a 6235bd8deadSopenharmony_ci 6245bd8deadSopenharmony_ci TexParameterIivEXT 6255bd8deadSopenharmony_ci 6265bd8deadSopenharmony_ci 2 12+(4*n) rendering command length 6275bd8deadSopenharmony_ci 2 346 rendering command opcode 6285bd8deadSopenharmony_ci 4 ENUM target 6295bd8deadSopenharmony_ci 4 ENUM pname 6305bd8deadSopenharmony_ci 0x2802 n=1 GL_TEXTURE_WRAP_S 6315bd8deadSopenharmony_ci 0x2803 n=1 GL_TEXTURE_WRAP_T 6325bd8deadSopenharmony_ci 0x8072 n=1 GL_TEXTURE_WRAP_R 6335bd8deadSopenharmony_ci 0x2801 n=1 GL_TEXTURE_MIN_FILTER 6345bd8deadSopenharmony_ci 0x2800 n=1 GL_TEXTURE_MAG_FILTER 6355bd8deadSopenharmony_ci 0x8066 n=1 GL_TEXTURE_PRIORITY 6365bd8deadSopenharmony_ci 0x813A n=1 GL_TEXTURE_MIN_LOD 6375bd8deadSopenharmony_ci 0x813B n=1 GL_TEXTURE_MAX_LOD 6385bd8deadSopenharmony_ci 0x813C n=1 GL_TEXTURE_BASE_LEVEL 6395bd8deadSopenharmony_ci 0x813D n=1 GL_TEXTURE_MAX_LEVEL 6405bd8deadSopenharmony_ci 0x8501 n=1 GL_TEXTURE_LOD_BIAS 6415bd8deadSopenharmony_ci 0x884B n=1 GL_DEPTH_TEXTURE_MODE 6425bd8deadSopenharmony_ci 0x884C n=1 GL_TEXTURE_COMPARE_MODE 6435bd8deadSopenharmony_ci 0x884D n=1 GL_TEXTURE_COMPARE_FUNC 6445bd8deadSopenharmony_ci 0x8191 n=1 GL_GENERATE_MIPMAP 6455bd8deadSopenharmony_ci 0x1004 n=4 GL_TEXTURE_BORDER_COLOR 6465bd8deadSopenharmony_ci 4*n LISTofINT32 params 6475bd8deadSopenharmony_ci 6485bd8deadSopenharmony_ci TexParameterIuivEXT 6495bd8deadSopenharmony_ci 6505bd8deadSopenharmony_ci 2 12+(4*n) rendering command length 6515bd8deadSopenharmony_ci 2 347 rendering command opcode 6525bd8deadSopenharmony_ci 4 ENUM target 6535bd8deadSopenharmony_ci 4 ENUM pname 6545bd8deadSopenharmony_ci 0x2802 n=1 GL_TEXTURE_WRAP_S 6555bd8deadSopenharmony_ci 0x2803 n=1 GL_TEXTURE_WRAP_T 6565bd8deadSopenharmony_ci 0x8072 n=1 GL_TEXTURE_WRAP_R 6575bd8deadSopenharmony_ci 0x2801 n=1 GL_TEXTURE_MIN_FILTER 6585bd8deadSopenharmony_ci 0x2800 n=1 GL_TEXTURE_MAG_FILTER 6595bd8deadSopenharmony_ci 0x8066 n=1 GL_TEXTURE_PRIORITY 6605bd8deadSopenharmony_ci 0x813A n=1 GL_TEXTURE_MIN_LOD 6615bd8deadSopenharmony_ci 0x813B n=1 GL_TEXTURE_MAX_LOD 6625bd8deadSopenharmony_ci 0x813C n=1 GL_TEXTURE_BASE_LEVEL 6635bd8deadSopenharmony_ci 0x813D n=1 GL_TEXTURE_MAX_LEVEL 6645bd8deadSopenharmony_ci 0x8501 n=1 GL_TEXTURE_LOD_BIAS 6655bd8deadSopenharmony_ci 0x884B n=1 GL_DEPTH_TEXTURE_MODE 6665bd8deadSopenharmony_ci 0x884C n=1 GL_TEXTURE_COMPARE_MODE 6675bd8deadSopenharmony_ci 0x884D n=1 GL_TEXTURE_COMPARE_FUNC 6685bd8deadSopenharmony_ci 0x8191 n=1 GL_GENERATE_MIPMAP 6695bd8deadSopenharmony_ci 0x1004 n=4 GL_TEXTURE_BORDER_COLOR 6705bd8deadSopenharmony_ci 4*n LISTofCARD32 params 6715bd8deadSopenharmony_ci 6725bd8deadSopenharmony_ci The following new non-rendering commands are added: 6735bd8deadSopenharmony_ci 6745bd8deadSopenharmony_ci GetTexParameterIivEXT 6755bd8deadSopenharmony_ci 6765bd8deadSopenharmony_ci 1 CARD8 opcode(X assigned) 6775bd8deadSopenharmony_ci 1 203 GLX opcode 6785bd8deadSopenharmony_ci 2 4 request length 6795bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 6805bd8deadSopenharmony_ci 4 ENUM target 6815bd8deadSopenharmony_ci 4 ENUM pname 6825bd8deadSopenharmony_ci => 6835bd8deadSopenharmony_ci 1 1 reply 6845bd8deadSopenharmony_ci 1 unused 6855bd8deadSopenharmony_ci 2 CARD16 sequence number 6865bd8deadSopenharmony_ci 4 m reply length, m=(n==1?0:n) 6875bd8deadSopenharmony_ci 4 unused 6885bd8deadSopenharmony_ci 4 CARD32 n 6895bd8deadSopenharmony_ci 6905bd8deadSopenharmony_ci if (n=1) this follows: 6915bd8deadSopenharmony_ci 6925bd8deadSopenharmony_ci 4 INT32 params 6935bd8deadSopenharmony_ci 12 unused 6945bd8deadSopenharmony_ci 6955bd8deadSopenharmony_ci otherwise this follows: 6965bd8deadSopenharmony_ci 6975bd8deadSopenharmony_ci 16 unused 6985bd8deadSopenharmony_ci n*4 LISTofINT32 params 6995bd8deadSopenharmony_ci 7005bd8deadSopenharmony_ci GetTexParameterIuivEXT 7015bd8deadSopenharmony_ci 7025bd8deadSopenharmony_ci 1 CARD8 opcode(X assigned) 7035bd8deadSopenharmony_ci 1 204 GLX opcode 7045bd8deadSopenharmony_ci 2 4 request length 7055bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 7065bd8deadSopenharmony_ci 4 ENUM target 7075bd8deadSopenharmony_ci 4 ENUM pname 7085bd8deadSopenharmony_ci => 7095bd8deadSopenharmony_ci 1 1 reply 7105bd8deadSopenharmony_ci 1 unused 7115bd8deadSopenharmony_ci 2 CARD16 sequence number 7125bd8deadSopenharmony_ci 4 m reply length, m=(n==1?0:n) 7135bd8deadSopenharmony_ci 4 unused 7145bd8deadSopenharmony_ci 4 CARD32 n 7155bd8deadSopenharmony_ci 7165bd8deadSopenharmony_ci if (n=1) this follows: 7175bd8deadSopenharmony_ci 7185bd8deadSopenharmony_ci 4 CARD32 params 7195bd8deadSopenharmony_ci 12 unused 7205bd8deadSopenharmony_ci 7215bd8deadSopenharmony_ci otherwise this follows: 7225bd8deadSopenharmony_ci 7235bd8deadSopenharmony_ci 16 unused 7245bd8deadSopenharmony_ci n*4 LISTofCARD32 params 7255bd8deadSopenharmony_ci 7265bd8deadSopenharmony_ciDependencies on ARB_texture_float 7275bd8deadSopenharmony_ci 7285bd8deadSopenharmony_ci The following changes should be made if ARB_texture_float is not 7295bd8deadSopenharmony_ci supported: 7305bd8deadSopenharmony_ci 7315bd8deadSopenharmony_ci The references to floating-point data types in section 3.8, p. 150 7325bd8deadSopenharmony_ci should be deleted. 7335bd8deadSopenharmony_ci 7345bd8deadSopenharmony_ci The language in section 3.8.1 should indicate that final 7355bd8deadSopenharmony_ci conversion always clamps when the internalformat is not integer. 7365bd8deadSopenharmony_ci 7375bd8deadSopenharmony_ci The description of table 3.16 should not mention the <f> 7385bd8deadSopenharmony_ci floating-point formats. 7395bd8deadSopenharmony_ci 7405bd8deadSopenharmony_ci Section 3.8.4 should indicate that border color values should be 7415bd8deadSopenharmony_ci clamped to [0,1] before being stored, if not specified with one of 7425bd8deadSopenharmony_ci the TexParameterI* functions. 7435bd8deadSopenharmony_ci 7445bd8deadSopenharmony_ci Section 3.8.8 should not mention clamping border color values to 7455bd8deadSopenharmony_ci [0,1] for fixed-point textures, since this occurs in 3.8.4 at 7465bd8deadSopenharmony_ci TexParameter specification. 7475bd8deadSopenharmony_ci 7485bd8deadSopenharmony_ciDependencies on ARB_color_buffer_float 7495bd8deadSopenharmony_ci 7505bd8deadSopenharmony_ci The following changes should be made if ARB_color_buffer_float is 7515bd8deadSopenharmony_ci not supported: 7525bd8deadSopenharmony_ci 7535bd8deadSopenharmony_ci Section 3.11.2, subsection "Shader Outputs: p. 196 should not 7545bd8deadSopenharmony_ci mention fragment clamping or color buffers with floating-point 7555bd8deadSopenharmony_ci formats. 7565bd8deadSopenharmony_ci 7575bd8deadSopenharmony_ci Chapter 4, p. 198 should not mention components represented as 7585bd8deadSopenharmony_ci floating-point values. 7595bd8deadSopenharmony_ci 7605bd8deadSopenharmony_ci Section 4.1.3, p. 200, section 4.1.4 p. 205, section 4.1.8 p. 206, 7615bd8deadSopenharmony_ci section 4.2.3 p. 215 and section 4.3.2 p. 222 should not mention 7625bd8deadSopenharmony_ci color buffers with a floating-point format. 7635bd8deadSopenharmony_ci 7645bd8deadSopenharmony_ci Section 4.2.3 p. 217 should not mention clamping the clear color 7655bd8deadSopenharmony_ci values to [0,1]. 7665bd8deadSopenharmony_ci 7675bd8deadSopenharmony_ciErrors 7685bd8deadSopenharmony_ci 7695bd8deadSopenharmony_ci INVALID_OPERATION is generated by Begin, DrawPixels, Bitmap, 7705bd8deadSopenharmony_ci CopyPixels, or a command that performs an explicit Begin if the 7715bd8deadSopenharmony_ci color buffer has an integer RGBA format and no fragment shader is 7725bd8deadSopenharmony_ci active. 7735bd8deadSopenharmony_ci 7745bd8deadSopenharmony_ci INVALID_ENUM is generated by DrawPixels, TexImage* and 7755bd8deadSopenharmony_ci SubTexImage* if <format> is one of the integer component formats 7765bd8deadSopenharmony_ci described in table 3.6 and <type> is FLOAT. 7775bd8deadSopenharmony_ci 7785bd8deadSopenharmony_ci INVALID_OPERATION is generated by TexImage* and SubTexImage* if 7795bd8deadSopenharmony_ci the texture internalformat is an integer format as described in 7805bd8deadSopenharmony_ci table 3.16 and <format> is not one of the integer component 7815bd8deadSopenharmony_ci formats described in table 3.6, or if the internalformat is not an 7825bd8deadSopenharmony_ci integer format and <format> is an integer format. 7835bd8deadSopenharmony_ci 7845bd8deadSopenharmony_ci INVALID_OPERATION is generated by CopyTexImage* and 7855bd8deadSopenharmony_ci CopyTexSubImage* if the texture internalformat is an integer 7865bd8deadSopenharmony_ci format and the read color buffer is not an integer format, or if 7875bd8deadSopenharmony_ci the internalformat is not an integer format and the read color 7885bd8deadSopenharmony_ci buffer is an integer format. 7895bd8deadSopenharmony_ci 7905bd8deadSopenharmony_ci INVALID_ENUM is generated by ReadPixels if <format> is an integer 7915bd8deadSopenharmony_ci format and <type> is FLOAT. 7925bd8deadSopenharmony_ci 7935bd8deadSopenharmony_ci INVALID_OPERATON is generated by ReadPixels if <format> is an 7945bd8deadSopenharmony_ci integer format and the color buffer is not an integer format, or 7955bd8deadSopenharmony_ci if <format> is not an integer format and the color buffer is an 7965bd8deadSopenharmony_ci integer format. 7975bd8deadSopenharmony_ci 7985bd8deadSopenharmony_ciNew State 7995bd8deadSopenharmony_ci 8005bd8deadSopenharmony_ci (modify table 6.33, p. 294) 8015bd8deadSopenharmony_ci 8025bd8deadSopenharmony_ci Minimum 8035bd8deadSopenharmony_ci Get Value Type Get Command Value Description Sec. Attribute 8045bd8deadSopenharmony_ci ------------------------ ---- ----------- ------- ---------------- ---- ---------- 8055bd8deadSopenharmony_ci RGBA_INTEGER_MODE_EXT B GetBooleanv - True if RGBA 2.7 - 8065bd8deadSopenharmony_ci components are 8075bd8deadSopenharmony_ci integers 8085bd8deadSopenharmony_ci 8095bd8deadSopenharmony_ciIssues 8105bd8deadSopenharmony_ci 8115bd8deadSopenharmony_ci How should the integer pixel path be triggered: by the destination 8125bd8deadSopenharmony_ci type, new source types, or new source formats? 8135bd8deadSopenharmony_ci 8145bd8deadSopenharmony_ci RESOLVED: New source formats, based on the precedence of 8155bd8deadSopenharmony_ci COLOR_INDEX and STENCIL_INDEX formats which invoke distinct 8165bd8deadSopenharmony_ci pixel path behavior with identical data types and independent 8175bd8deadSopenharmony_ci of the destination. 8185bd8deadSopenharmony_ci 8195bd8deadSopenharmony_ci Should pixel transfer operations be defined for the integer pixel 8205bd8deadSopenharmony_ci path? 8215bd8deadSopenharmony_ci 8225bd8deadSopenharmony_ci RESOLVED: No. Fragment shaders can achieve similar results 8235bd8deadSopenharmony_ci with more flexibility. There is no need to aggrandize this 8245bd8deadSopenharmony_ci legacy mechanism. 8255bd8deadSopenharmony_ci 8265bd8deadSopenharmony_ci What happens if a shader reads a float texel from an integer 8275bd8deadSopenharmony_ci texture or vice-versa? 8285bd8deadSopenharmony_ci 8295bd8deadSopenharmony_ci RESOLVED: The result is undefined. The shader must have 8305bd8deadSopenharmony_ci knowledge of the texture internal data type. 8315bd8deadSopenharmony_ci 8325bd8deadSopenharmony_ci How do integer textures behave in fixed function fragment 8335bd8deadSopenharmony_ci processing? 8345bd8deadSopenharmony_ci 8355bd8deadSopenharmony_ci RESOLVED: The fixed function texture pipeline assumes textures 8365bd8deadSopenharmony_ci return floating-point values, hence the return value from an 8375bd8deadSopenharmony_ci integer texture will not be in a meaningful format. 8385bd8deadSopenharmony_ci 8395bd8deadSopenharmony_ci How does TEXTURE_BORDER_COLOR work with integer textures? 8405bd8deadSopenharmony_ci 8415bd8deadSopenharmony_ci RESOLVED: The internal storage of border values effectively 8425bd8deadSopenharmony_ci becomes a union, and the returned values are interpreted as 8435bd8deadSopenharmony_ci the same type as the texture. New versions of TexParameter 8445bd8deadSopenharmony_ci allow specification of signed and unsigned integer border 8455bd8deadSopenharmony_ci values. 8465bd8deadSopenharmony_ci 8475bd8deadSopenharmony_ci How does logic op behave with RGBA mode rendering into integer 8485bd8deadSopenharmony_ci color buffer? 8495bd8deadSopenharmony_ci 8505bd8deadSopenharmony_ci RESOLVED: The color logic op operates when enabled when 8515bd8deadSopenharmony_ci rendering into integer color buffers. 8525bd8deadSopenharmony_ci 8535bd8deadSopenharmony_ci Logic op operations make sense for integer color buffers so the 8545bd8deadSopenharmony_ci COLOR_LOGIC_OP enable is respected when rendering into integer 8555bd8deadSopenharmony_ci color buffers. 8565bd8deadSopenharmony_ci 8575bd8deadSopenharmony_ci Blending does not apply to RGBA mode rendering when rendering 8585bd8deadSopenharmony_ci into integer color buffers (as section 4.1.8 is updated to say). 8595bd8deadSopenharmony_ci The color logic op (described in section 4.1.10) is not a blending 8605bd8deadSopenharmony_ci operation (though it does take priority over the blending enable). 8615bd8deadSopenharmony_ci 8625bd8deadSopenharmony_ciRevision History 8635bd8deadSopenharmony_ci 8645bd8deadSopenharmony_ci Rev. Date Author Changes 8655bd8deadSopenharmony_ci ---- -------- -------- ----------------------------------------- 8665bd8deadSopenharmony_ci 6 05/20/10 srahman Add GLX protocol. 8675bd8deadSopenharmony_ci 8685bd8deadSopenharmony_ci 5 07/15/07 pbrown Fix typo in GetTexParameterIuivEXT function 8695bd8deadSopenharmony_ci name in "New Procedures and Functions". 8705bd8deadSopenharmony_ci 8715bd8deadSopenharmony_ci 4 -- Pre-release revisions. 8725bd8deadSopenharmony_ci 873