15bd8deadSopenharmony_ciXXX - Not complete. 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci SGIX_image_compression 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_SGIX_image_compression 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1997/06/05 16:11:49 $ $Revision: 1.5 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci ??? 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci None. 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci This extension defines new pixel storage modes which are used in the 265bd8deadSopenharmony_ci conversion of image data to and from compressed formats on the client 275bd8deadSopenharmony_ci side. These new compression and decompression operations take place 285bd8deadSopenharmony_ci during the pixel packing and unpacking stages of the OpenGL pipeline, 295bd8deadSopenharmony_ci respectively, and obey the same semantics as other packing and 305bd8deadSopenharmony_ci unpacking modes. This extension defines a framework in which further 315bd8deadSopenharmony_ci extensions can provide support for specific compressed formats, and 325bd8deadSopenharmony_ci also provides additional infrastructure which is common to various 335bd8deadSopenharmony_ci compression techniques, without defining any specific compression 345bd8deadSopenharmony_ci formats. Other extensions will define compression formats which make 355bd8deadSopenharmony_ci use of this framework. A new pixel unpacking mode and a new pixel 365bd8deadSopenharmony_ci packing mode are defined which specify the compressed format of pixel 375bd8deadSopenharmony_ci data on the client side. The only legal value this extension defines 385bd8deadSopenharmony_ci for these storage modes is NONE; further compression extensions will 395bd8deadSopenharmony_ci define additional legal values. 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci Many compression techniques utilize various component subsamplings, so 425bd8deadSopenharmony_ci it is necessary to provide a mechanism to specify the up- and 435bd8deadSopenharmony_ci down-sampling of components as pixel data is decompressed from- and 445bd8deadSopenharmony_ci compressed to the client. This extension defines a new pixel storage 455bd8deadSopenharmony_ci mode to specify these sampling patterns, and four legal values. When 465bd8deadSopenharmony_ci pixel data is decompressed from the client and an unpacking upsampling 475bd8deadSopenharmony_ci mode other than SAMPLE_444_SGIX is specified, the upsampling is 485bd8deadSopenharmony_ci performed via simple component replication. This preserves all 495bd8deadSopenharmony_ci information in the incoming image data, so that if an application 505bd8deadSopenharmony_ci requires other types of filtering, they may be performed after 515bd8deadSopenharmony_ci decompression. Similarly, when pixel data is compressed to the client 525bd8deadSopenharmony_ci and a packing downsampling mode other than SAMPLE_444_SGIX is 535bd8deadSopenharmony_ci specified, the downsampling is performed via simple component 545bd8deadSopenharmony_ci decimation. If an application requires other types of filtering, they 555bd8deadSopenharmony_ci must be performed before compression. 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci Some compression formats specify a color space in which the pixels are 585bd8deadSopenharmony_ci expressed before compression and after decompression. To make support 595bd8deadSopenharmony_ci of these formats more transparent, this extension adds a conversion 605bd8deadSopenharmony_ci between the natural color space of the compression format and RGB. 615bd8deadSopenharmony_ci This conversion can be enabled separately for packing and for unpacking 625bd8deadSopenharmony_ci of pixel data. When it is enabled for unpacking, the pixel data will 635bd8deadSopenharmony_ci be converted to RGB after decompression. When it is enabled for 645bd8deadSopenharmony_ci packing, the pixel data will be assumed to be represented as RGB, and 655bd8deadSopenharmony_ci converted as necessary before compression. The client may wish to 665bd8deadSopenharmony_ci disable these automatic conversion in order to apply filtering before 675bd8deadSopenharmony_ci the color space conversion in the case of decompression, or after the 685bd8deadSopenharmony_ci color space conversion in the case of compression. When the 695bd8deadSopenharmony_ci conversions are disabled, the client is responsible for performing the 705bd8deadSopenharmony_ci appropriate color space conversions. The alternate color spaces must 715bd8deadSopenharmony_ci be defined by the additional compression format extensions. If a new 725bd8deadSopenharmony_ci format extension does not specify a preferred color space, this color 735bd8deadSopenharmony_ci space conversion has no effect. 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ciIssues 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci - Should this be split into multiple extensions? 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci - How should bitrate/quality be controlled for vbr techniques? 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci - Instead of requiring each compression format extension to specify 825bd8deadSopenharmony_ci its own color space, this could be specified by the client using the 835bd8deadSopenharmony_ci <format> parameter. This would require the creation of additional 845bd8deadSopenharmony_ci formats, but would also have the advantage of more accurately 855bd8deadSopenharmony_ci reflecting the format of pixel data, i.e., calling the format of DVC 865bd8deadSopenharmony_ci compressed data YCrCb rather than RGB. 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci - Should some additional support for up- and down-sampling methods 895bd8deadSopenharmony_ci other than replication and decimation be provided? 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci - Should we define an error for a bogus compressed frame? 925bd8deadSopenharmony_ci Something like COMPRESSION_DATA_ERROR? 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci - We define all compression standards as operating on RGBA 955bd8deadSopenharmony_ci floating-point images. Is this the correct decision? 965bd8deadSopenharmony_ci 975bd8deadSopenharmony_ci - We ignore color-index images. Is this the correct decision? 985bd8deadSopenharmony_ci 995bd8deadSopenharmony_ci - The current scheme for subrectangle modes doesn't permit the 1005bd8deadSopenharmony_ci old trick of drawing fields by setting ROW_LENGTH to twice 1015bd8deadSopenharmony_ci the actual width of the image. Probably the easiest way to 1025bd8deadSopenharmony_ci fix this would be to add some new pixel storage parameter 1035bd8deadSopenharmony_ci (FIELD_EXTRACT or something) which would be treated as 1045bd8deadSopenharmony_ci though it were part of ROW_LENGTH in the non-compressed 1055bd8deadSopenharmony_ci unpack case. The non-compressed unpack case is a little 1065bd8deadSopenharmony_ci harder -- it can be done by setting ROW_LEGNTH to one half 1075bd8deadSopenharmony_ci the width, but bytes past the end of the last scan line are 1085bd8deadSopenharmony_ci written. 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci - What about three- and four-dimensional images? 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci - What about three- and four-dimensional subrectangle modes? 1135bd8deadSopenharmony_ci 1145bd8deadSopenharmony_ciNew Procedures and Functions 1155bd8deadSopenharmony_ci 1165bd8deadSopenharmony_ci None. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ciNew Tokens 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci Accepted by the <pname> parameter of PixelStoref, PixelStorei, 1215bd8deadSopenharmony_ci GetBooleanv, GetIntegerv, GetFloatv and GetDoublev: 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci PACK_COMPRESSION_TYPE_SGIX 1245bd8deadSopenharmony_ci UNPACK_COMPRESSION_TYPE_SGIX 1255bd8deadSopenharmony_ci UNPACK_COMPRESSED_SIZE_SGIX 1265bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE_SGIX 1275bd8deadSopenharmony_ci PACK_SAMPLE_SGIX 1285bd8deadSopenharmony_ci UNPACK_SAMPLE_SGIX 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 1315bd8deadSopenharmony_ci GetFloatv and GetDoublev: 1325bd8deadSopenharmony_ci 1335bd8deadSopenharmony_ci PACK_COMPRESSED_SIZE_SGIX 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci Accepted by the <param> parameter of PixelStoref and PixelStorei 1365bd8deadSopenharmony_ci when the <pname> parameter is PACK_SAMPLE_SGIX or 1375bd8deadSopenharmony_ci UNPACK_SAMPLE_SGIX: 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci SAMPLE_444_SGIX 1405bd8deadSopenharmony_ci SAMPLE_422_SGIX 1415bd8deadSopenharmony_ci SAMPLE_411_SGIX 1425bd8deadSopenharmony_ci SAMPLE_420_SGIX 1435bd8deadSopenharmony_ci 1445bd8deadSopenharmony_ci Accepted by the <pname> parameter of PixelStoref and 1455bd8deadSopenharmony_ci PixelStorei with a <param> parameter of TRUE or FALSE and by 1465bd8deadSopenharmony_ci the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv 1475bd8deadSopenharmony_ci and GetDoublev: 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci PACK_FROM_RGB_SGIX 1505bd8deadSopenharmony_ci UNPACK_TO_RGB_SGIX 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci None. 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci 3.6.1 Pixel Storage Modes 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci The following is added to Table 3.1: 1615bd8deadSopenharmony_ci 1625bd8deadSopenharmony_ci Parameter Name Type Initial Value Valid Range 1635bd8deadSopenharmony_ci -------------- ---- ------------- ----------- 1645bd8deadSopenharmony_ci UNPACK_COMPRESSION_TYPE_SGIX integer NONE NONE 1655bd8deadSopenharmony_ci UNPACK_COMPRESSED_SIZE_SGIX integer 0 [0,inf) 1665bd8deadSopenharmony_ci UNPACK_SAMPLE_SGIX integer SAMPLE_444_SGIX SAMPLE_444_SGIX, SAMPLE_422_SGIX, SAMPLE_411_SGIX, SAMPLE_420_SGIX 1675bd8deadSopenharmony_ci UNPACK_TO_RGB_SGIX boolean TRUE TRUE/FALSE 1685bd8deadSopenharmony_ci 1695bd8deadSopenharmony_ci 3.6.3 Rasterization of Pixel Rectangles 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci The following is added to the introduction to section 3.6.3: 1725bd8deadSopenharmony_ci "Unpacking" refers to the reading of pixels from host memory. 1735bd8deadSopenharmony_ci Pixels are unpacked from host memory as either compressed or 1745bd8deadSopenharmony_ci uncompressed images. If PACK_COMPRESSION_TYPE_SGIX is set to 1755bd8deadSopenharmony_ci NONE, the images are stored as uncompressed data and are 1765bd8deadSopenharmony_ci unpacked from host memory as described below. If 1775bd8deadSopenharmony_ci PACK_COMPRESSION_TYPE_SGIX is set to a value other than NONE, 1785bd8deadSopenharmony_ci the images are compressed and are unpacked from host memory as 1795bd8deadSopenharmony_ci described in "Unpacking of Compressed Images". 1805bd8deadSopenharmony_ci 1815bd8deadSopenharmony_ci The title of the "Unpacking" subsection is changed to 1825bd8deadSopenharmony_ci "Unpacking of Uncompressed Images." All references to this 1835bd8deadSopenharmony_ci subsection are changed as well. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci A new subsection, "Unpacking of Compressed Images," is added 1865bd8deadSopenharmony_ci between "Unpacking of Uncompressed Images" and the "Conversion 1875bd8deadSopenharmony_ci to Floating-Point." The contents of the section are as 1885bd8deadSopenharmony_ci follows: 1895bd8deadSopenharmony_ci 1905bd8deadSopenharmony_ci In this section, we describe the unpacking of compressed 1915bd8deadSopenharmony_ci images. The first part describes how images are taken from 1925bd8deadSopenharmony_ci host memory as a byte stream. Next, a description GL's 1935bd8deadSopenharmony_ci upsampling algorithms is provided since they are used by 1945bd8deadSopenharmony_ci several compressed formats. After the upsampling description, 1955bd8deadSopenharmony_ci paragraphs added by other extensions describe the conversion 1965bd8deadSopenharmony_ci applied to the byte stream for a given 1975bd8deadSopenharmony_ci UNPACK_COMPRESSION_TYPE_SGIX. After these descriptions, we 1985bd8deadSopenharmony_ci describe the application of subrectangle pixel storage modes. 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci GL supports four types of upsampling: SAMPLE_444_SGIX, 2015bd8deadSopenharmony_ci SAMPLE_422_SGIX, SAMPLE_411_SGIX, and SAMPLE_420_SGIX. The 2025bd8deadSopenharmony_ci type of upsampling performed is determined by the setting of 2035bd8deadSopenharmony_ci the UNPACK_SAMPLE_SGIX pixel storage parameter. 2045bd8deadSopenharmony_ci XXX say how the upsampling is performed for each of the 2055bd8deadSopenharmony_ci things. 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ci Compressed images are taken from memory as an uninterrupted 2085bd8deadSopenharmony_ci sequence of bytes beginning at <data> whose length is given by 2095bd8deadSopenharmony_ci UNPACK_COMPRESSED_SIZE_SGIX. The byte stream is passed to the 2105bd8deadSopenharmony_ci GL and interpreted as determined by the compression type given 2115bd8deadSopenharmony_ci by UNPACK_COMPRESSION_TYPE_SGIX. The dimensions of the image 2125bd8deadSopenharmony_ci represented by the byte stream are determined as follows. The 2135bd8deadSopenharmony_ci width of the image is equal to the value of UNPACK_ROW_LENGTH 2145bd8deadSopenharmony_ci if this value is positive, or to <width> otherwise. The 2155bd8deadSopenharmony_ci height of the image is equal to the value of IMAGE_HEIGHT_EXT 2165bd8deadSopenharmony_ci if this value is positive, or to <height> otherwise. The 2175bd8deadSopenharmony_ci width and height refer to the the size of the image after 2185bd8deadSopenharmony_ci upsampling (see below). 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci The pixel storage parameters UNPACK_SWAP_BYTES, 2215bd8deadSopenharmony_ci UNPACK_LSB_FIRST, and UNPACK_ALIGNMENT are ignored for 2225bd8deadSopenharmony_ci compressed images. Subrectangle storage modes 2235bd8deadSopenharmony_ci (UNPACK_SKIP_ROWS, UNPACK_SKIP_PIXELS) are not applied as the 2245bd8deadSopenharmony_ci image is extracted from memory, but instead are applied after 2255bd8deadSopenharmony_ci the image has been decompressed. This operation is described 2265bd8deadSopenharmony_ci in detail at the end of this section. 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci Once the byte stream has been taken from host memory, it is 2295bd8deadSopenharmony_ci decompressed as determined by the setting of 2305bd8deadSopenharmony_ci UNPACK_COMPRESSION_TYPE_SGIX. The operations are described in 2315bd8deadSopenharmony_ci detail below. 2325bd8deadSopenharmony_ci 2335bd8deadSopenharmony_ci The output of the decompression algorithm is a width by height 2345bd8deadSopenharmony_ci image. A subrectangle of the image may be extracted as 2355bd8deadSopenharmony_ci determined by the pixel storage parameters UNPACK_SKIP_PIXELS, 2365bd8deadSopenharmony_ci UNPACK_SKIP_ROWS and by the <width> and <height> arguments to 2375bd8deadSopenharmony_ci the original entry point (see figure 3.8. The result of 2385bd8deadSopenharmony_ci application of the subrect algorithm is a <width> by <height> 2395bd8deadSopenharmony_ci image. 2405bd8deadSopenharmony_ci 2415bd8deadSopenharmony_ci To compute the subrectangle image, we consider the output of 2425bd8deadSopenharmony_ci the decompression algorithm as a two-dimensional array of 2435bd8deadSopenharmony_ci pixels Pin[0...(width-1)][0...(height-1)]. The first index 2445bd8deadSopenharmony_ci selects the column of the image, the second selects the row. 2455bd8deadSopenharmony_ci We consider the output of the subrectangle algorithm as a 2465bd8deadSopenharmony_ci two-dimensional array of pixels 2475bd8deadSopenharmony_ci Pout[0...(<width>-1)][0...(<height>-1)]. Each pixel the 2485bd8deadSopenharmony_ci output image is defined by: 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci Pout[i][j] = Pin[UNPACK_SKIP_PIXELS + i][UNPACK_SKIP_ROWS + j] 2515bd8deadSopenharmony_ci 2525bd8deadSopenharmony_ci In this equation, we define the "=" operation to set each 2535bd8deadSopenharmony_ci channel of the output pixel equal to the equivalent channel of 2545bd8deadSopenharmony_ci the input pixel. If any of the output pixels are generated 2555bd8deadSopenharmony_ci from pixels outside of the input image, the values of the 2565bd8deadSopenharmony_ci components of these pixels are undefined. 2575bd8deadSopenharmony_ci 2585bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 2595bd8deadSopenharmony_ciand the Frame Buffer) 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci 4.3.2 Reading Pixels 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci The following entries are added to Table 4.5: 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci Parameter Name Type Initial Value Valid Range 2665bd8deadSopenharmony_ci -------------- ---- ------------- ----------- 2675bd8deadSopenharmony_ci PACK_COMPRESSION_TYPE_SGIX integer NONE NONE 2685bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE_SGIX integer 0 [0,inf) 2695bd8deadSopenharmony_ci PACK_SAMPLE_SGIX integer SAMPLE_444_SGIX SAMPLE_444_SGIX, SAMPLE_422_SGIX, SAMPLE_411_SGIX, SAMPLE_420_SGIX 2705bd8deadSopenharmony_ci PACK_FROM_RGB_SGIX boolean TRUE TRUE/FALSE 2715bd8deadSopenharmony_ci 2725bd8deadSopenharmony_ci The following needs to be added to the end of the "Final 2735bd8deadSopenharmony_ci Conversion" subsection: If image compression is on 2745bd8deadSopenharmony_ci (PACK_COMPRESSION_TYPE_SGIX is set to other than NONE), no 2755bd8deadSopenharmony_ci conversion is applied. 2765bd8deadSopenharmony_ci 2775bd8deadSopenharmony_ci The subsection titled "Placement in Client Memory" is renamed 2785bd8deadSopenharmony_ci "Packing of Uncompressed Images." The following is added to 2795bd8deadSopenharmony_ci the start of the subsection: If image compression is not on 2805bd8deadSopenharmony_ci (PACK_COMPRESSION_TYPE_SGIX is set to NONE), the pixels of the 2815bd8deadSopenharmony_ci image are transferred to host memory as described in this 2825bd8deadSopenharmony_ci section. If compression is on, the pixels are transferred as 2835bd8deadSopenharmony_ci described in "Packing of Compressed Images." 2845bd8deadSopenharmony_ci 2855bd8deadSopenharmony_ci A new subsection, "Packing of Compressed Images," is added 2865bd8deadSopenharmony_ci after the subsection "Packing of Uncompressed Images." The 2875bd8deadSopenharmony_ci contents of the subsection are as follows: 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci If image compression is on (PACK_COMPRESSION_TYPE_SGIX is set 2905bd8deadSopenharmony_ci to something other than NONE), images are placed in memory as 2915bd8deadSopenharmony_ci described in this section. The floating-point image from the 2925bd8deadSopenharmony_ci final conversion step is used as the input to the compression 2935bd8deadSopenharmony_ci step. The algorithm used for the compression step is 2945bd8deadSopenharmony_ci determined by the value of PACK_COMPRESSION_TYPE_SGIX. 2955bd8deadSopenharmony_ci Algorithms are described in separate extensions. The size of 2965bd8deadSopenharmony_ci the image returned to the host is <width> by <height>. The 2975bd8deadSopenharmony_ci pixel pack parameters PACK_SWAP_BYTES, PACK_LSB_FIRST, 2985bd8deadSopenharmony_ci PACK_ROW_LENGTH, PACK_SKIP_ROWS, PACK_SKIP_PIXELS, and 2995bd8deadSopenharmony_ci PACK_ALIGNMENT are not considered when reading back compressed 3005bd8deadSopenharmony_ci images. 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci The output of the compression step is a byte stream. The 3035bd8deadSopenharmony_ci compression algorithm sets the value of 3045bd8deadSopenharmony_ci PACK_COMPRESSED_SIZE_SGIX to the length of the byte stream. 3055bd8deadSopenharmony_ci The bytes are placed in an uninterrupted stream starting at 3065bd8deadSopenharmony_ci the location <data> in host memory. If the value of 3075bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE_SGIX is greater than zero and the 3085bd8deadSopenharmony_ci value of PACK_COMPRESSED_SIZE_SGIX is greater than the value 3095bd8deadSopenharmony_ci of PACK_MAX_COMPRESSED_SIZE_SGIX, the error INVALID_OPERATION 3105bd8deadSopenharmony_ci is generated. If this occurs, the contents of the first 3115bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE_SGIX bytes after the <data> pointer 3125bd8deadSopenharmony_ci are undefined, but bytes outside this range are guaranteed to 3135bd8deadSopenharmony_ci be left unchanged. 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 3165bd8deadSopenharmony_ci 3175bd8deadSopenharmony_ci None. 3185bd8deadSopenharmony_ci 3195bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 3205bd8deadSopenharmony_ci 3215bd8deadSopenharmony_ci XXX 3225bd8deadSopenharmony_ci 3235bd8deadSopenharmony_ciAdditions to the GLX Specification 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ci 3265bd8deadSopenharmony_ciErrors 3275bd8deadSopenharmony_ci 3285bd8deadSopenharmony_ci XXX 3295bd8deadSopenharmony_ci 3305bd8deadSopenharmony_ci INVALID_OPERATION is generated if the compressed data requested by a 3315bd8deadSopenharmony_ci ReadPixels or GetTexImage will occupy more than 3325bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE bytes. 3335bd8deadSopenharmony_ci 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ci 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ciNew State 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 3405bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 3415bd8deadSopenharmony_ci UNPACK_COMPRESSION_TYPE GetIntegerv Z1* NONE client 3425bd8deadSopenharmony_ci UNPACK_COMPRESSED_SIZE GetIntegerv Z+ 0 client 3435bd8deadSopenharmony_ci UNPACK_SAMPLE_SGIX GetIntegerv Z4 SAMPLE_444_SGIX client 3445bd8deadSopenharmony_ci UNPACK_TO_RGB_SGIX GetBooleanv B TRUE client 3455bd8deadSopenharmony_ci PACK_COMPRESSION_TYPE GetIntegerv Z1 NONE client 3465bd8deadSopenharmony_ci PACK_COMPRESSED_SIZE GetIntegerv Z+ 0 client 3475bd8deadSopenharmony_ci PACK_MAX_COMPRESSED_SIZE GetIntegerv Z+ 0 client 3485bd8deadSopenharmony_ci PACK_SAMPLE_SGIX GetIntegerv Z4 SAMPLE_444_SGIX client 3495bd8deadSopenharmony_ci PACK_FROM_RGB_SGIX GetBooleanv B TRUE client 3505bd8deadSopenharmony_ci 3515bd8deadSopenharmony_ci 3525bd8deadSopenharmony_ciNew Implementation Dependent State 3535bd8deadSopenharmony_ci 3545bd8deadSopenharmony_ci None. 355