15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci ANGLE_texture_compression_dxt 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_ANGLE_texture_compression_dxt1 85bd8deadSopenharmony_ci GL_ANGLE_texture_compression_dxt3 95bd8deadSopenharmony_ci GL_ANGLE_texture_compression_dxt5 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciContributors 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci Gregg Tavares, Google Inc. 145bd8deadSopenharmony_ci Daniel Koch, TransGaming Inc. 155bd8deadSopenharmony_ci Al Patrick, Google Inc. 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciContacts 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci Gregg Tavares, Google Inc. (gman 'at' google 'dot' com) 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciStatus 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci Implemented in ANGLE ES2 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ciVersion 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ci Last Modified Date: Sept 22, 2012 285bd8deadSopenharmony_ci Author Revision: 2 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ciNumber 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci OpenGL ES Extension #111 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ciDependencies 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ci Requires OpenGL ES 1.0. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci The extension is written against the OpenGL ES 2.0 specification. 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciOverview 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci These extensions are exactly the same as EXT_texture_compression_dxt1 435bd8deadSopenharmony_ci except they additionally expose the COMPRESSED_RGBA_S3TC_DXT3_ANGLE and 445bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_ANGLE formats and have a size restrictions 455bd8deadSopenharmony_ci such that the size must be a multiple of four (except for mip levels 465bd8deadSopenharmony_ci where the dimensions are either 2 or 1). 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci See EXT_texture_compression_dxt1 for the full list of changes. Also 495bd8deadSopenharmony_ci see EXT_texture_compression_s3tc for a description of the formats. 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ciIP Status 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci A license to the S3TC Intellectual Property may be necessary for 545bd8deadSopenharmony_ci implementation of this extension. You should consult with your 555bd8deadSopenharmony_ci Attorney to determine the need for a license. 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ciNew Procedures and Functions 585bd8deadSopenharmony_ci 595bd8deadSopenharmony_ci None. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ciNew Types 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci None. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ciNew Tokens 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci Accepted by the <internalformat> parameter of CompressedTexImage2D 685bd8deadSopenharmony_ci and the <format> parameter of CompressedTexSubImage2D: 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_ANGLE 0x83F0 715bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83F1 725bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2 735bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL ES 2.0 Specification (Rasterization) 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci Add the following to Section 3.7.3 (Compressed Texture Images) 785bd8deadSopenharmony_ci (at the end of the description of the CompressedTexImage2D command): 795bd8deadSopenharmony_ci 805bd8deadSopenharmony_ci Compressed Internal Format Base Internal Format 815bd8deadSopenharmony_ci ========================== ==================== 825bd8deadSopenharmony_ci COMPRESSED_RGB_S3TC_DXT1_ANGLE RGB 835bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT1_ANGLE RGBA 845bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT3_ANGLE RGBA 855bd8deadSopenharmony_ci COMPRESSED_RGBA_S3TC_DXT5_ANGLE RGBA 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci Table 3.x: Specific Compressed Internal Formats 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci If <internalformat> is one of the S3TC formats listed in Table 3.x, 905bd8deadSopenharmony_ci the compressed texture is stored in the appropriate S3TC compressed 915bd8deadSopenharmony_ci texture format (see Appendix). The GL and the S3TC texture compression 925bd8deadSopenharmony_ci algorithm support only 2D images without borders. 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci CompressedTexImage2D will produce the INVALID_OPERATION error when 955bd8deadSopenharmony_ci <internalformat> is one of the values from Table 3.x under the following 965bd8deadSopenharmony_ci conditions: 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci * <border> is non-zero. 995bd8deadSopenharmony_ci * <width> is not one, two, or a multiple of four. 1005bd8deadSopenharmony_ci * <height> is not one, two, or a multiple of four. 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci Add the following to Section 3.7.3 (Compressed Texture Images) 1035bd8deadSopenharmony_ci (at the end of the description of the CompressedTexSubImage2D command): 1045bd8deadSopenharmony_ci 1055bd8deadSopenharmony_ci If the internal format of the texture image being modified is listed 1065bd8deadSopenharmony_ci in Table 3.x, the texture is stored in the appropriate S3TC compressed 1075bd8deadSopenharmony_ci texture format (see Appendix). Since DXT/S3TC images are easily edited 1085bd8deadSopenharmony_ci along 4x4 texel boundaries, the limitations of CompressedTexSubImage2D 1095bd8deadSopenharmony_ci are relaxed. CompressedTexSubImage2D will result in an INVALID_OPERATION 1105bd8deadSopenharmony_ci error only if one of the following conditions occurs: 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci * <width> is not a multiple of four or equal to TEXTURE_WIDTH. 1135bd8deadSopenharmony_ci * <height> is not a multipls of four or equal to TEXTURE_HEIGHT. 1145bd8deadSopenharmony_ci * <xoffset> or <yoffset> is not a multiple of four. 1155bd8deadSopenharmony_ci * <format> does not match the internal format of the texture image 1165bd8deadSopenharmony_ci being modified. 1175bd8deadSopenharmony_ci 1185bd8deadSopenharmony_ci The following restrictions at the end of section 3.7.3 do not apply 1195bd8deadSopenharmony_ci to S3TC DXT texture formats, since subimage modification is straightforward 1205bd8deadSopenharmony_ci as long as the subimage is properly aligned. 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ciErrors 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci INVALID_OPERATION is generated by CompressedTexImage2D if <internalformat> 1255bd8deadSopenharmony_ci is one of the compressed internal formats from Table 3.x and any of the 1265bd8deadSopenharmony_ci following apply: 1275bd8deadSopenharmony_ci - <border> is not equal to zero. 1285bd8deadSopenharmony_ci - <width> is not one, two, or a multiple of four. 1295bd8deadSopenharmony_ci - <height> is not one, two, or a multiple of four. 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci INVALID_OPERATION is generated by TexImage2D and CopyTexImage2D if 1325bd8deadSopenharmony_ci <internalformat> is one of the compressed internal formats from 1335bd8deadSopenharmony_ci Table 3.x. 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ci INVALID_OPERATION is generated by TexSubImage2D and CopyTexSubImage2D 1365bd8deadSopenharmony_ci if the internal format of the texture currently bound to <target> is 1375bd8deadSopenharmony_ci one of the compressed internal formats from Table 3.x. 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ci INVALID_OPERATION is generated by CompressedTexSubImage2D if <format> 1405bd8deadSopenharmony_ci is one of the compressed interal formats from Table 3.x and any of the 1415bd8deadSopenharmony_ci following apply: 1425bd8deadSopenharmony_ci - <width> is not a multiple of four or equal to TEXTURE_WIDTH; 1435bd8deadSopenharmony_ci - <height> is not a multiple of four or equal to TEXTURE_HEIGHT; 1445bd8deadSopenharmony_ci - <xoffset> or <yoffset> is not a multiple of four; 1455bd8deadSopenharmony_ci - <format> does not match the internal format of the texture image 1465bd8deadSopenharmony_ci being modified. 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ciNew State 1495bd8deadSopenharmony_ci 1505bd8deadSopenharmony_ci None. 1515bd8deadSopenharmony_ci 1525bd8deadSopenharmony_ciAppendix: 1535bd8deadSopenharmony_ci 1545bd8deadSopenharmony_ci The format for the S3TC Compressed Texture Images Formats is documented 1555bd8deadSopenharmony_ci in the appendix of EXT_texture_compression_s3tc. 1565bd8deadSopenharmony_ci 1575bd8deadSopenharmony_ciRevision History 1585bd8deadSopenharmony_ci 1595bd8deadSopenharmony_ci Revision 1, 2010/08/06 - gman 1605bd8deadSopenharmony_ci - Initial revision 1615bd8deadSopenharmony_ci Revision 2, 2012/09/22 - dgkoch 1625bd8deadSopenharmony_ci - Added DXT1 formats and documented multiple of 4 restriction. 1635bd8deadSopenharmony_ci 164