WebGL
Khronos
 

WebGL EXT_texture_compression_rgtc Extension Specification

Name

EXT_texture_compression_rgtc

Contact

WebGL working group (public_webgl 'at' khronos.org)

Contributors

Olli Etuaho, NVIDIA

Members of the WebGL working group

Version

Last modified date: July 07, 2020
Revision: 5

Number

WebGL extension #39

Dependencies

Written against the WebGL API 1.0 specification.

Overview

This extension exposes the compressed texture format defined in the EXT_texture_compression_rgtc OpenGL extension to WebGL. Consult that extension specification for behavioral definitions, including error behaviors.

Updates of partial tiles detailed in the "Implementation Note" section of the EXT_texture_compression_rgtc specification must be supported in an implementation of this WebGL extension.

Unlike the OpenGL ES extension, this WebGL extension does not extend texImage2D entry point.

For compatibility reasons, the width and the height of the top level mip map are required to be a multiple of 4.

When this extension is enabled:

IDL

[Exposed=(Window,Worker), LegacyNoInterfaceObject]
interface EXT_texture_compression_rgtc {
    const GLenum COMPRESSED_RED_RGTC1_EXT = 0x8DBB;
    const GLenum COMPRESSED_SIGNED_RED_RGTC1_EXT = 0x8DBC;
    const GLenum COMPRESSED_RED_GREEN_RGTC2_EXT = 0x8DBD;
    const GLenum COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT = 0x8DBE;
};
  

New Tokens

compressedTexImage2D(GLenum internalformat)
Accepted by the internalformat parameter: COMPRESSED_RED_RGTC1_EXT, COMPRESSED_SIGNED_RED_RGTC1_EXT, COMPRESSED_RED_GREEN_RGTC2_EXT, COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
compressedTexSubImage2D(GLenum internalformat)
Accepted by the internalformat parameter: COMPRESSED_RED_RGTC1_EXT, COMPRESSED_SIGNED_RED_RGTC1_EXT, COMPRESSED_RED_GREEN_RGTC2_EXT, COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT

Errors

The error INVALID_VALUE is generated by compressedTexImage2D and compressedTexSubImage2D if the internalformat parameter is COMPRESSED_RED_RGTC1_EXT or COMPRESSED_SIGNED_RED_RGTC1_EXT and the byteLength of the ArrayBufferView is not:
ceil(width / 4) * ceil(height / 4) * 8
The error INVALID_VALUE is generated by compressedTexImage2D and compressedTexSubImage2D if the internalformat parameter is COMPRESSED_RED_GREEN_RGTC2_EXT or COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT and the byteLength of the ArrayBufferView is not:
ceil(width / 4) * ceil(height / 4) * 16
The error INVALID_OPERATION is generated by compressedTexImage2D and compressedTexSubImage2D if the level parameter is 0 and the width or height is not a multiple of 4.

Revision History

Revision 1, 2018/09/26

Revision 2, 2018/09/26

Revision 3, 2018/11/05

Revision 4, 2020/06/25

Revision 5, 2020/07/07