EXT_texture_compression_rgtc WebGL working group (public_webgl 'at' khronos.org) Olli Etuaho, NVIDIA Members of the WebGL working group 39

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.

Compression formats COMPRESSED_RED_RGTC1_EXT, COMPRESSED_SIGNED_RED_RGTC1_EXT, COMPRESSED_RED_GREEN_RGTC2_EXT, and COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT may be passed to the compressedTexImage2D and compressedTexSubImage2D entry points. Calling getParameter with the argument COMPRESSED_TEXTURE_FORMATS will include the formats from this specification.

The following format-specific restrictions must be enforced:

COMPRESSED_RED_RGTC1_EXT
COMPRESSED_SIGNED_RED_RGTC1_EXT

The byteLength of the ArrayBufferView, pixels, passed to compressedTexImage2D or compressedTexSubImage2D must be equal to the following number of bytes:

ceil(width / 4) * ceil(height / 4) * 8

If it is not, an INVALID_VALUE error is generated.

COMPRESSED_RED_GREEN_RGTC2_EXT
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT

The byteLength of the ArrayBufferView, pixels, passed to compressedTexImage2D or compressedTexSubImage2D must be equal to the following number of bytes:

ceil(width / 4) * ceil(height / 4) * 16

If it is not, an INVALID_VALUE error is generated.

[NoInterfaceObject] 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; }; 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
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
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
Initial revision. Rename to EXT_texture_compression_rgtc from WEBGL_compressed_texture_rgtc