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