15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci NV_texture_compression_s3tc 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_NV_texture_compression_s3tc 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciContributors 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Contributors to the OpenGL EXT_texture_compression_s3tc extension 125bd8deadSopenharmony_ci Greg Roth, NVIDIA 135bd8deadSopenharmony_ci 145bd8deadSopenharmony_ciContact 155bd8deadSopenharmony_ci 165bd8deadSopenharmony_ci Ian Stewart, NVIDIA Corporation (istewart 'at' nvidia.com) 175bd8deadSopenharmony_ci 185bd8deadSopenharmony_ciStatus 195bd8deadSopenharmony_ci 205bd8deadSopenharmony_ci Complete. 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciVersion 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci Last Modifed Date: Sep 27, 2012 255bd8deadSopenharmony_ci NVIDIA Revision: 1 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ciNumber 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ci OpenGL ES Extension #128 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ciDependencies 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci This extension is written against the OpenGL ES 2.0.25 345bd8deadSopenharmony_ci Specification. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci This extension interacts with NV_texture_array 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ciOverview 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ci This extension adds support for S3's S3TC texture compression 415bd8deadSopenharmony_ci formats, including DXT1, DXT3, and DXT5. For the DXT1 format, 425bd8deadSopenharmony_ci this specification supports an RGB-only mode and a special RGBA 435bd8deadSopenharmony_ci mode with single-bit alpha. 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciIP Status 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci Contact S3 Incorporated (http://www.s3.com) regarding any 485bd8deadSopenharmony_ci intellectual property issues associated with implementing this 495bd8deadSopenharmony_ci extension. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci WARNING: Vendors able to support S3TC texture compression in 525bd8deadSopenharmony_ci Direct3D drivers do not necessarily have the right to use the same 535bd8deadSopenharmony_ci functionality in OpenGL ES. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ciNew Tokens 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci Accepted by the <internalformat> parameter of CompressedTexImage2D 585bd8deadSopenharmony_ci and CompressedTexSubImage2D: 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV 0x83F0 615bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV 0x83F1 625bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_NV 0x83F2 635bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV 0x83F3 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0.25 Specification 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci Modify Section 3.7.3, "Compressed Texture Images" 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci (Replace first two sentences with) 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Texture images may also be specified or modified using image data 725bd8deadSopenharmony_ci already stored in a known compressed image format. The GL defines 735bd8deadSopenharmony_ci some specific compressed formats, and others may be defined by GL 745bd8deadSopenharmony_ci extensions. 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci (Insert after section describing CompressedTexImage2D) 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci The specific compressed texture formats supported by 795bd8deadSopenharmony_ci CompressedTexImage2D, and the corresponding base internal format 805bd8deadSopenharmony_ci for each specific format, are defined in table 3.X. 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci Table 3.X: "Specific compressed texture formats" 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci Compressed Internal Formats Base Internal Format 855bd8deadSopenharmony_ci =========================== ==================== 865bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV RGB 875bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV RGBA 885bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_NV RGBA 895bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV RGBA 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci (Replace last paragraph with) 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ci If the internal format is one of COMPRESSED_RGB_S3TC_DXT1_NV, 945bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV, COMPRESSED_RGBA_S3TC_DXT3_NV, or 955bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV, the compressed texture is stored 965bd8deadSopenharmony_ci using one of several S3TC compressed texture image formats and is 975bd8deadSopenharmony_ci easily edited along 4x4 texel boundaries. In this case, 985bd8deadSopenharmony_ci CompressedTexImage2D will result in an INVALID_OPERATION error 995bd8deadSopenharmony_ci if one of the following conditions occurs: 1005bd8deadSopenharmony_ci 1015bd8deadSopenharmony_ci * <width> is not a multiple of four, and <width> plus 1025bd8deadSopenharmony_ci <xoffset> is not equal to TEXTURE_WIDTH; 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci * <height> is not a multiple of four, and <height> plus 1055bd8deadSopenharmony_ci <yoffset> is not equal to TEXTURE_HEIGHT; or 1065bd8deadSopenharmony_ci 1075bd8deadSopenharmony_ci * <xoffset> or <yoffset> is not a multiple of four. 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci For any other formats, calling CompressedTexSubImage2D will result 1105bd8deadSopenharmony_ci in an INVALID_OPERATION error if <xoffset> or <yoffset> is not 1115bd8deadSopenharmony_ci equal to zero, or if <width> and <height> do not match the width 1125bd8deadSopenharmony_ci and height of the texture, respectively. The contents of any texel 1135bd8deadSopenharmony_ci outside the region modified by the call are undefined. These 1145bd8deadSopenharmony_ci restrictions may be relaxed for other specific compressed internal 1155bd8deadSopenharmony_ci formats whose images are easily modified. 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ciInteractions with NV_texture_array 1185bd8deadSopenharmony_ci 1195bd8deadSopenharmony_ci If NV_texture_array is supported, the S3TC compressed formats may 1205bd8deadSopenharmony_ci also be used as the internal formats given to 1215bd8deadSopenharmony_ci CompressedTexImage3DNV and CompressedTexSubImage3DNV. The 1225bd8deadSopenharmony_ci restrictions for the <width>, <height>, <xoffset>, and <yoffset> 1235bd8deadSopenharmony_ci parameters of the CompressedTexSubImage2D function when used with 1245bd8deadSopenharmony_ci S3TC compressed texture formats, described in this extension, also 1255bd8deadSopenharmony_ci apply to the identically named parameters of 1265bd8deadSopenharmony_ci CompressedTexSubImage3DNV. 1275bd8deadSopenharmony_ci 1285bd8deadSopenharmony_ciErrors 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci INVALID_OPERATION is generated by CopyTexSubImage2D if the texture 1315bd8deadSopenharmony_ci image <level> bound to <target> has internal format 1325bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV, COMPRESSED_RGBA_S3TC_DXT1_NV, 1335bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_NV, or COMPRESSED_RGBA_S3TC_DXT5_NV. 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci INVALID_OPERATION is generated by CompressedTexSubImage2D if 1365bd8deadSopenharmony_ci <internalformat> is COMPRESSED_RGB_S3TC_DXT1_NV, 1375bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV, COMPRESSED_RGBA_S3TC_DXT3_NV, or 1385bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV and any of the following apply: 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci * <width> is not a multiple of four, and <width> plus 1415bd8deadSopenharmony_ci <xoffset> is not equal to the texture width; 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci * <height> is not a multiple of four, and <height> plus 1445bd8deadSopenharmony_ci <yoffset> is not equal to the texture height; or 1455bd8deadSopenharmony_ci 1465bd8deadSopenharmony_ci * <xoffset> or <yoffset> is not a multiple of four. 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ciNew State 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci The queries for NUM_COMPRESSED_TEXTURE_FORMATS and 1515bd8deadSopenharmony_ci COMPRESSED_TEXTURE_FORMATS include COMPRESSED_RGB_S3TC_DXT1_NV, 1525bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV, COMPRESSED_RGBA_S3TC_DXT3_NV, and 1535bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV. 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ciAppendix 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ci S3TC Compressed Texture Image Formats 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci Compressed texture images stored using the S3TC compressed image 1605bd8deadSopenharmony_ci formats are represented as a collection of 4x4 texel blocks, where 1615bd8deadSopenharmony_ci each block contains 64 or 128 bits of texel data. The image is 1625bd8deadSopenharmony_ci encoded as a normal 2D raster image in which each 4x4 block is 1635bd8deadSopenharmony_ci treated as a single pixel. If an S3TC image has a width or height 1645bd8deadSopenharmony_ci that is not a multiple of four, the data corresponding to texels 1655bd8deadSopenharmony_ci outside the image are irrelevant and undefined. 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci When an S3TC image with a width of <w>, height of <h>, and block 1685bd8deadSopenharmony_ci size of <blocksize> (8 or 16 bytes) is decoded, the corresponding 1695bd8deadSopenharmony_ci image size (in bytes) is: 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci ceil(<w>/4) * ceil(<h>/4) * blocksize. 1725bd8deadSopenharmony_ci 1735bd8deadSopenharmony_ci When decoding an S3TC image, the block containing the texel at 1745bd8deadSopenharmony_ci offset (<x>, <y>) begins at an offset (in bytes) relative to the 1755bd8deadSopenharmony_ci base of the image of: 1765bd8deadSopenharmony_ci 1775bd8deadSopenharmony_ci blocksize * (ceil(<w>/4) * floor(<y>/4) + floor(<x>/4)). 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci The data corresponding to a specific texel (<x>, <y>) are 1805bd8deadSopenharmony_ci extracted from a 4x4 texel block using a relative (x,y) value of 1815bd8deadSopenharmony_ci 1825bd8deadSopenharmony_ci (<x> modulo 4, <y> modulo 4). 1835bd8deadSopenharmony_ci 1845bd8deadSopenharmony_ci There are four distinct S3TC image formats: 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV: Each 4x4 block of texels consists of 1875bd8deadSopenharmony_ci 64 bits of RGB image data. 1885bd8deadSopenharmony_ci 1895bd8deadSopenharmony_ci Each RGB image data block is encoded as a sequence of 8 bytes, 1905bd8deadSopenharmony_ci called (in order of increasing address): 1915bd8deadSopenharmony_ci 1925bd8deadSopenharmony_ci c0_lo, c0_hi, c1_lo, c1_hi, bits_0, bits_1, bits_2, bits_3 1935bd8deadSopenharmony_ci 1945bd8deadSopenharmony_ci The 8 bytes of the block are decoded into three quantities: 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ci color0 = c0_lo + c0_hi * 256 1975bd8deadSopenharmony_ci color1 = c1_lo + c1_hi * 256 1985bd8deadSopenharmony_ci bits = bits_0 + 256 * (bits_1 + 256 * (bits_2 + 256 * bits_3)) 1995bd8deadSopenharmony_ci 2005bd8deadSopenharmony_ci color0 and color1 are 16-bit unsigned integers that are 2015bd8deadSopenharmony_ci unpacked to RGB colors RGB0 and RGB1 as though they were 2025bd8deadSopenharmony_ci 16-bit packed pixels with a <format> of RGB and a type of 2035bd8deadSopenharmony_ci UNSIGNED_SHORT_5_6_5. 2045bd8deadSopenharmony_ci 2055bd8deadSopenharmony_ci bits is a 32-bit unsigned integer, from which a two-bit 2065bd8deadSopenharmony_ci control code is extracted for a texel at location (x,y) in the 2075bd8deadSopenharmony_ci block using: 2085bd8deadSopenharmony_ci 2095bd8deadSopenharmony_ci code(x,y) = bits[2*(4*y+x)+1 .. 2*(4*y+x)+0] 2105bd8deadSopenharmony_ci 2115bd8deadSopenharmony_ci where bit 31 is the most significant and bit 0 is the least 2125bd8deadSopenharmony_ci significant bit. 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci The RGB color for a texel at location (x,y) in the block is 2155bd8deadSopenharmony_ci given by: 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci RGB0, if color0 > color1 and code(x,y) == 0 2185bd8deadSopenharmony_ci RGB1, if color0 > color1 and code(x,y) == 1 2195bd8deadSopenharmony_ci (2*RGB0+RGB1)/3, if color0 > color1 and code(x,y) == 2 2205bd8deadSopenharmony_ci (RGB0+2*RGB1)/3, if color0 > color1 and code(x,y) == 3 2215bd8deadSopenharmony_ci 2225bd8deadSopenharmony_ci RGB0, if color0 <= color1 and code(x,y) == 0 2235bd8deadSopenharmony_ci RGB1, if color0 <= color1 and code(x,y) == 1 2245bd8deadSopenharmony_ci (RGB0+RGB1)/2, if color0 <= color1 and code(x,y) == 2 2255bd8deadSopenharmony_ci BLACK, if color0 <= color1 and code(x,y) == 3 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci Arithmetic operations are done per component, and BLACK refers 2285bd8deadSopenharmony_ci to an RGB color where red, green, and blue are all zero. 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci Since this image has an RGB format, there is no alpha 2315bd8deadSopenharmony_ci component and the image is considered fully opaque. 2325bd8deadSopenharmony_ci 2335bd8deadSopenharmony_ci 2345bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_NV: Each 4x4 block of texels consists 2355bd8deadSopenharmony_ci of 64 bits of RGB image data and minimal alpha information. The 2365bd8deadSopenharmony_ci RGB components of a texel are extracted in the same way as 2375bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV. 2385bd8deadSopenharmony_ci 2395bd8deadSopenharmony_ci The alpha component for a texel at location (x,y) in the block 2405bd8deadSopenharmony_ci is given by: 2415bd8deadSopenharmony_ci 2425bd8deadSopenharmony_ci 0.0, if color0 <= color1 and code(x,y) == 3 2435bd8deadSopenharmony_ci 1.0, otherwise 2445bd8deadSopenharmony_ci 2455bd8deadSopenharmony_ci 2465bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_NV: Each 4x4 block of texels consists 2475bd8deadSopenharmony_ci of 64 bits of uncompressed alpha image data followed by 64 bits of 2485bd8deadSopenharmony_ci RGB image data. 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci Each RGB image data block is encoded according to the 2515bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV format, with the exception that 2525bd8deadSopenharmony_ci the two code bits always use the non-transparent encodings. 2535bd8deadSopenharmony_ci In other words, they are treated as though color0 > color1, 2545bd8deadSopenharmony_ci regardless of the actual values of color0 and color1. 2555bd8deadSopenharmony_ci 2565bd8deadSopenharmony_ci Each alpha image data block is encoded as a sequence of 8 2575bd8deadSopenharmony_ci bytes, called (in order of increasing address): 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci a0, a1, a2, a3, a4, a5, a6, a7 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci The 8 bytes of the block are decoded into one 64-bit integer: 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci alpha = a0 + 256 * (a1 + 256 * (a2 + 256 * (a3 + 256 * (a4 + 2645bd8deadSopenharmony_ci 256 * (a5 + 256 * (a6 + 256 * a7)))))) 2655bd8deadSopenharmony_ci 2665bd8deadSopenharmony_ci alpha is a 64-bit unsigned integer, from which a four-bit 2675bd8deadSopenharmony_ci alpha value is extracted for a texel at location (x,y) in the 2685bd8deadSopenharmony_ci block using: 2695bd8deadSopenharmony_ci 2705bd8deadSopenharmony_ci alpha(x,y) = bits[4*(4*y+x)+3 .. 4*(4*y+x)+0] 2715bd8deadSopenharmony_ci 2725bd8deadSopenharmony_ci where bit 63 is the most significant and bit 0 is the least 2735bd8deadSopenharmony_ci significant bit. 2745bd8deadSopenharmony_ci 2755bd8deadSopenharmony_ci The alpha component for a texel at location (x,y) in the block 2765bd8deadSopenharmony_ci is given by alpha(x,y) / 15. 2775bd8deadSopenharmony_ci 2785bd8deadSopenharmony_ci 2795bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_NV: Each 4x4 block of texels consists 2805bd8deadSopenharmony_ci of 64 bits of compressed alpha image data followed by 64 bits of 2815bd8deadSopenharmony_ci RGB image data. 2825bd8deadSopenharmony_ci 2835bd8deadSopenharmony_ci Each RGB image data block is encoded according to the 2845bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_NV format, with the exception that 2855bd8deadSopenharmony_ci the two code bits always use the non-transparent encodings. 2865bd8deadSopenharmony_ci In other words, they are treated as though color0 > color1, 2875bd8deadSopenharmony_ci regardless of the actual values of color0 and color1. 2885bd8deadSopenharmony_ci 2895bd8deadSopenharmony_ci Each alpha image data block is encoded as a sequence of 8 2905bd8deadSopenharmony_ci bytes, called (in order of increasing address): 2915bd8deadSopenharmony_ci 2925bd8deadSopenharmony_ci alpha0, alpha1, bits_0, bits_1, bits_2, bits_3, bits_4, bits_5 2935bd8deadSopenharmony_ci 2945bd8deadSopenharmony_ci The alpha0 and alpha1 are 8-bit unsigned bytes converted to 2955bd8deadSopenharmony_ci alpha components by multiplying by 1/255. 2965bd8deadSopenharmony_ci 2975bd8deadSopenharmony_ci The 6 "bits" bytes of the block are decoded into one 48-bit 2985bd8deadSopenharmony_ci integer: 2995bd8deadSopenharmony_ci 3005bd8deadSopenharmony_ci bits = bits_0 + 256 * (bits_1 + 256 * (bits_2 + 256 * (bits_3 + 3015bd8deadSopenharmony_ci 256 * (bits_4 + 256 * bits_5)))) 3025bd8deadSopenharmony_ci 3035bd8deadSopenharmony_ci bits is a 48-bit unsigned integer, from which a three-bit 3045bd8deadSopenharmony_ci control code is extracted for a texel at location (x,y) in the 3055bd8deadSopenharmony_ci block using: 3065bd8deadSopenharmony_ci 3075bd8deadSopenharmony_ci code(x,y) = bits[3*(4*y+x)+2 .. 3*(4*y+x)+0] 3085bd8deadSopenharmony_ci 3095bd8deadSopenharmony_ci where bit 47 is the most significant and bit 0 is the least 3105bd8deadSopenharmony_ci significant bit. 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ci The alpha component for a texel at location (x,y) in the block 3135bd8deadSopenharmony_ci is given by: 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci alpha0, code(x,y) == 0 3165bd8deadSopenharmony_ci alpha1, code(x,y) == 1 3175bd8deadSopenharmony_ci 3185bd8deadSopenharmony_ci (6*alpha0 + 1*alpha1)/7, alpha0 > alpha1 and code(x,y) == 2 3195bd8deadSopenharmony_ci (5*alpha0 + 2*alpha1)/7, alpha0 > alpha1 and code(x,y) == 3 3205bd8deadSopenharmony_ci (4*alpha0 + 3*alpha1)/7, alpha0 > alpha1 and code(x,y) == 4 3215bd8deadSopenharmony_ci (3*alpha0 + 4*alpha1)/7, alpha0 > alpha1 and code(x,y) == 5 3225bd8deadSopenharmony_ci (2*alpha0 + 5*alpha1)/7, alpha0 > alpha1 and code(x,y) == 6 3235bd8deadSopenharmony_ci (1*alpha0 + 6*alpha1)/7, alpha0 > alpha1 and code(x,y) == 7 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ci (4*alpha0 + 1*alpha1)/5, alpha0 <= alpha1 and code(x,y) == 2 3265bd8deadSopenharmony_ci (3*alpha0 + 2*alpha1)/5, alpha0 <= alpha1 and code(x,y) == 3 3275bd8deadSopenharmony_ci (2*alpha0 + 3*alpha1)/5, alpha0 <= alpha1 and code(x,y) == 4 3285bd8deadSopenharmony_ci (1*alpha0 + 4*alpha1)/5, alpha0 <= alpha1 and code(x,y) == 5 3295bd8deadSopenharmony_ci 0.0, alpha0 <= alpha1 and code(x,y) == 6 3305bd8deadSopenharmony_ci 1.0, alpha0 <= alpha1 and code(x,y) == 7 3315bd8deadSopenharmony_ci 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ciIssues 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ci None 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ciRevision History 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci Rev. Date Author Changes 3405bd8deadSopenharmony_ci ---- -------- --------- ------------------------------------- 3415bd8deadSopenharmony_ci 1 09/27/2012 istewart First revision, based of the 3425bd8deadSopenharmony_ci EXT_texture_compression_s3tc 3435bd8deadSopenharmony_ci specification. 3445bd8deadSopenharmony_ci 3455bd8deadSopenharmony_ci# vim:ai:ts=4:sts=4:expandtab:textwidth=70 346