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.
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.
getParameter
with the argument COMPRESSED_TEXTURE_FORMATS
will include the formats from this specification.
The following format-specific restrictions must be enforced:
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.
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.
internalformat
parameter:
COMPRESSED_RED_RGTC1_EXT
,
COMPRESSED_SIGNED_RED_RGTC1_EXT
,
COMPRESSED_RED_GREEN_RGTC2_EXT
,
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
internalformat
parameter:
COMPRESSED_RED_RGTC1_EXT
,
COMPRESSED_SIGNED_RED_RGTC1_EXT
,
COMPRESSED_RED_GREEN_RGTC2_EXT
,
COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
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
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