15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SGIX_packed_6bytes 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_SGIX_packed_6bytes 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci $Date: 1999/04/03 08:41:01 $ $Revision: 1.3 $ 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 162 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci EXT_abgr affects the definition of this extension 205bd8deadSopenharmony_ci Histogram affects the definition of this extension 215bd8deadSopenharmony_ci Convolution affects the definition of this extension 225bd8deadSopenharmony_ci Color_table affects the definition of this extension 235bd8deadSopenharmony_ci SGIS_texture4D affects the definition of this extension 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciOverview 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci This extension provides support for packing four component pixels 285bd8deadSopenharmony_ci into a 6-byte field, where each component is represented by 12 bits. 295bd8deadSopenharmony_ci Since the pixel is represented by 6 unsigned bytes it is inferred 305bd8deadSopenharmony_ci that the fields or components of the pixel are not proper machine 315bd8deadSopenharmony_ci types. However, since the pixel as a whole can be resepresented 325bd8deadSopenharmony_ci as an integral number of bytes, the pixel storage modes, including 335bd8deadSopenharmony_ci PACK_SKIP_PIXELS, PACK_ROW_LENGTH, PACK_SKIP_ROWS, PACK_IMAGE_HEIGHT_EXT, 345bd8deadSopenharmony_ci PACK_SKIP_IMAGES_EXT, PACK_SWAP_BYTES, PACK_ALIGNMENT, and their unpacking 355bd8deadSopenharmony_ci counterparts all work correctly. 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ciNew Procedures and Functions 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ci None 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ciNew Tokens 425bd8deadSopenharmony_ci 435bd8deadSopenharmony_ci Accepted by the <type> parameter of DrawPixels, ReadPixels, TexImage1D, 445bd8deadSopenharmony_ci TexImage2D, GetTexImage, TexImage3D, TexSubImage1D, 455bd8deadSopenharmony_ci TexSubImage2D, TexSubImage3D, GetHistogram, GetMinmax, 465bd8deadSopenharmony_ci ConvolutionFilter1D, ConvolutionFilter2D, ConvolutionFilter3D, 475bd8deadSopenharmony_ci GetConvolutionFilter, SeparableFilter2D, SeparableFilter3D, 485bd8deadSopenharmony_ci GetSeparableFilter, ColorTable, GetColorTable, TexImage4DSGIS, 495bd8deadSopenharmony_ci and TexSubImage4DSGIS: 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci 6BYTES_12_12_12_12_SGIX 0x???? 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 Specification (OpenGL Operation) 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci None 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 Specification (Rasterization) 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci The token defined by this extension is added to Table 3.5: 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci <type> Parameter Corresponding Special 625bd8deadSopenharmony_ci Token Value GL Data Type Interpretation 635bd8deadSopenharmony_ci ---------------- ------------- -------------- 645bd8deadSopenharmony_ci UNSIGNED_BYTE ubyte No 655bd8deadSopenharmony_ci BITMAP ubyte Yes 665bd8deadSopenharmony_ci BYTE byte No 675bd8deadSopenharmony_ci UNSIGNED_SHORT ushort No 685bd8deadSopenharmony_ci SHORT short No 695bd8deadSopenharmony_ci UNSIGNED_INT uint No 705bd8deadSopenharmony_ci INT int No 715bd8deadSopenharmony_ci FLOAT float No 725bd8deadSopenharmony_ci BITMAP ubyte Yes 735bd8deadSopenharmony_ci UNSIGNED_BYTE_3_3_2 ubyte Yes 745bd8deadSopenharmony_ci UNSIGNED_BYTE_3_3_2_REV ubyte Yes 755bd8deadSopenharmony_ci UNSIGNED_SHORT_5_6_5 ushort Yes 765bd8deadSopenharmony_ci UNSIGNED_SHORT_5_6_5_REV ushort Yes 775bd8deadSopenharmony_ci UNSIGNED_SHORT_4_4_4_4 ushort Yes 785bd8deadSopenharmony_ci UNSIGNED_SHORT_4_4_4_4_REV ushort Yes 795bd8deadSopenharmony_ci UNSIGNED_SHORT_5_5_5_1 ushort Yes 805bd8deadSopenharmony_ci UNSIGNED_SHORT_5_5_5_1_REV ushort Yes 815bd8deadSopenharmony_ci UNSIGNED_INT_8_8_8_8 uint Yes 825bd8deadSopenharmony_ci UNSIGNED_INT_8_8_8_8_REV uint Yes 835bd8deadSopenharmony_ci UNSIGNED_INT_10_10_10_2 uint Yes 845bd8deadSopenharmony_ci UNSIGNED_INT_10_10_10_2_REV uint Yes 855bd8deadSopenharmony_ci UNSIGNED_6BYTES_12_12_12_12_SGIX 6*ubyte Yes 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci Table 3.5: DrawPixels and ReadPixels <type> parameter values and the 885bd8deadSopenharmony_ci corresponding GL data types. Refer to table 2.2 for definitions of 895bd8deadSopenharmony_ci GL data types. Special interpretations are described near the end 905bd8deadSopenharmony_ci of section 3.6.4. 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci [Additions to Section 3.6.4 of the GL Specification (Rasterization of Pixel 935bd8deadSopenharmony_ci Rectangles) is made as follows:] 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci 3.6.4 Rasterization of Pixel Rectangles 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci Unpacking 985bd8deadSopenharmony_ci --------- 995bd8deadSopenharmony_ci [Modify fourth paragraph to read:] 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci Calling DrawPixels with a <type> of UNSIGNED_BYTE_3_3_2, UNSIGNED_BYTE_3_3_2_REV, 1025bd8deadSopenharmony_ci UNSIGNED_SHORT_5_6_5, UNSIGNED_SHORT_5_6_5_REV, UNSIGNED_SHORT_4_4_4_4, 1035bd8deadSopenharmony_ci UNSIGNED_SHORT_4_4_4_4_REV, UNSIGNED_SHORT_5_5_5_1, UNSIGNED_SHORT_5_5_5_1_REV, 1045bd8deadSopenharmony_ci UNSIGNED_INT_8_8_8_8, UNSIGNED_INT_8_8_8_8_REV, UNSIGNED_INT_10_10_10_2, or 1055bd8deadSopenharmony_ci UNSIGNED_INT_10_10_10_2_REV is a special case in which all the components of 1065bd8deadSopenharmony_ci each group are packed into a single unsigned byte, unsigned short, or unsigned int, 1075bd8deadSopenharmony_ci depending on the type. Additionally, calling DrawPixels with a <type> of 1085bd8deadSopenharmony_ci UNSIGNED_6BYTES_12_12_12_12_SGIX is a special case in which all the components of 1095bd8deadSopenharmony_ci each group are is packed into 6 bytes. The number of components per packed pixel 1105bd8deadSopenharmony_ci is fixed by the <type>, and must match the number of components per group as 1115bd8deadSopenharmony_ci indicated by the <format> parameter, as listed in table 3.8. The error 1125bd8deadSopenharmony_ci INVALID_OPERATION is generated if a mismatch occurs. This constraint also holds 1135bd8deadSopenharmony_ci for all other functions that accept or return pixel data using <type> and <format> 1145bd8deadSopenharmony_ci parameters to define the type and format of that data. 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci A new table is added to demonstrate bitfield locations <type> 1175bd8deadSopenharmony_ci UNSIGNED_6BYTES_12_12_12_12_SGIX. The bitfield locations for the first, second, 1185bd8deadSopenharmony_ci third and fourth component for this pixel type is shown in Table 3.12. 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ci 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 1225bd8deadSopenharmony_ci +--------------------------------+--------------------------------------+ 1235bd8deadSopenharmony_ci | | | 1245bd8deadSopenharmony_ci +--------------------------------+--------------------------------------+ 1255bd8deadSopenharmony_ci first second 1265bd8deadSopenharmony_ci element element 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ci 1295bd8deadSopenharmony_ci 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1305bd8deadSopenharmony_ci +--------------------------------+--------------------------------------+ 1315bd8deadSopenharmony_ci | | | 1325bd8deadSopenharmony_ci +--------------------------------+--------------------------------------+ 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci third fourth 1355bd8deadSopenharmony_ci element element 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci Table 3.12 UNSIGNED_6BYTES_12_12_12_SGIX format 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci [Add to the paragraph describing byte swapping:] 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci If byte swapping is enabled with UNSIGNED_6BYTES_12_12_12_SGIX as the <type>, 1425bd8deadSopenharmony_ci the byte swapping is performed as follows: 1435bd8deadSopenharmony_ci 1445bd8deadSopenharmony_ci given the 6byte ordering as 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci b5 b4 b3 b2 b1 b0 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci where b# represents the byte index or order, then byte swapping yields 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci b4 b5 b2 b3 b0 b1 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 1565bd8deadSopenharmony_ciand the Framebuffer) 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci [Make the following addition to Table 4.7] 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci <type> GL Data Component 1615bd8deadSopenharmony_ci Parameter Type Conversion Formula 1625bd8deadSopenharmony_ci --------- ------- ------------------ 1635bd8deadSopenharmony_ci UNSIGNED_INT_10_10_10_2_EXT uint c = ((2**N)-1)*f 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ci Table 4.7: Reversed component conversions - used when component data 1665bd8deadSopenharmony_ci are being returned to client memory. Color, normal, and depth 1675bd8deadSopenharmony_ci components are converted from the internal floating-point 1685bd8deadSopenharmony_ci representation (f) to a datum of the specified GL data type (c) using 1695bd8deadSopenharmony_ci the equations in this table. All arithmetic is done in the internal 1705bd8deadSopenharmony_ci floating point format. These conversions apply to component data 1715bd8deadSopenharmony_ci returned by GL query commands and to components of pixel data returned 1725bd8deadSopenharmony_ci to client memory. The equations remain the same even if the 1735bd8deadSopenharmony_ci implemented ranges of the GL data types are greater than the minimum 1745bd8deadSopenharmony_ci required ranges. (Refer to table 2.2.) Equations with N as the 1755bd8deadSopenharmony_ci exponent are performed for each bitfield of the packed data type, 1765bd8deadSopenharmony_ci with N set to the number of bits in the bitfield. 1775bd8deadSopenharmony_ci 1785bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 1795bd8deadSopenharmony_ci 1805bd8deadSopenharmony_ci None 1815bd8deadSopenharmony_ci 1825bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci None 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ciAdditions to the GLX Specification 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci None 1895bd8deadSopenharmony_ci 1905bd8deadSopenharmony_ciGLX Protocol 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci None 1935bd8deadSopenharmony_ci 1945bd8deadSopenharmony_ciDependencies on EXT_abgr 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ci If EXT_abgr is not implemented, then the references to ABGR_EXT in this 1975bd8deadSopenharmony_ci file are invalid, and should be ignored. 1985bd8deadSopenharmony_ci 1995bd8deadSopenharmony_ciDependencies on Histogram 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci If EXT_histogram is not implemented, then the references to 2025bd8deadSopenharmony_ci GetHistogramEXT and GetMinmaxEXT in this file are invalid, and should be 2035bd8deadSopenharmony_ci ignored. 2045bd8deadSopenharmony_ci 2055bd8deadSopenharmony_ciDependencies on Convolution 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ci If EXT_convolution is not implemented, then the references to 2085bd8deadSopenharmony_ci ConvolutionFilter1DEXT, ConvolutionFilter2DEXT, ConvolutionFilter3DEXT, 2095bd8deadSopenharmony_ci GetConvolutionFilterEXT, SeparableFilter2DEXT, SeparableFilter3DEXT, and 2105bd8deadSopenharmony_ci GetSeparableFilterEXT in this file are invalid, and should be ignored. 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ciDependencies on Color_table 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci If Color_table is not implemented, then the references to 2155bd8deadSopenharmony_ci ColorTableSGI and GetColorTableSGI in this file are invalid, and should 2165bd8deadSopenharmony_ci be ignored. 2175bd8deadSopenharmony_ci 2185bd8deadSopenharmony_ciDependencies on SGIS_texture4D 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci If SGIS_texture4D is not implemented, then the references to 2215bd8deadSopenharmony_ci TexImage4DSGIS and TexSubImage4DSGIS in this file are invalid, and should 2225bd8deadSopenharmony_ci be ignored. 2235bd8deadSopenharmony_ci 2245bd8deadSopenharmony_ci 2255bd8deadSopenharmony_ciErrors 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci INVALID_OPERATION is generated by GenericPixelFunction if its <type> 2285bd8deadSopenharmony_ci parameter is UNSIGNED_6BYTES_12_12_12_SGIX and its 2295bd8deadSopenharmony_ci <format> parameter does not specify four components. 2305bd8deadSopenharmony_ci 2315bd8deadSopenharmony_ciNew State 2325bd8deadSopenharmony_ci 2335bd8deadSopenharmony_ci None 2345bd8deadSopenharmony_ci 2355bd8deadSopenharmony_ciNew Implementation Dependent State 2365bd8deadSopenharmony_ci 2375bd8deadSopenharmony_ci None 238