Â
WEBGL_compressed_texture_etc
ContactWebGL working group (public_webgl 'at' khronos.org)
ContributorsJeff Gilbert, Mozilla
Members of the WebGL working group
VersionLast modified date: September 30, 2016
Revision: 7
WebGL extension #29
DependenciesWritten against the WebGL API 1.0 specification.
OverviewThis extension exposes the compressed texture formats defined as core in the OpenGL ES 3.0 spec to WebGL. These include the ETC2 and EAC formats, where ETC2 is a superset of ETC1. ETC1 textures can be loaded using the ETC2 token value. All of these formats are in the ETC family.
Browsers should not advertise this extension when the WebGL implementation, or graphics driver, supports these formats by decompressing them.
When this extension is enabled:
COMPRESSED_R11_EAC
, COMPRESSED_SIGNED_R11_EAC
, COMPRESSED_RG11_EAC
, COMPRESSED_SIGNED_RG11_EAC
, COMPRESSED_RGB8_ETC2
, COMPRESSED_SRGB8_ETC2
, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_RGBA8_ETC2_EAC
, and COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
may be passed to the compressedTexImage2D
and compressedTexSubImage2D
entry points. In WebGL 2.0, they may also be passed to the compressedTexImage3D
and compressedTexSubImage3D
entry points with the TEXTURE_2D_ARRAY
target.getParameter
with the argument COMPRESSED_TEXTURE_FORMATS
will include the formats from this specification.validatedSize
(defined for each specific format below) is validated in the following ways:
compressedTexImage*D
or compressedTexSubImage*D
taking ArrayBufferView pixels
is called, then the byteLength
of the view must be equal to validatedSize
, or an INVALID_VALUE error is generated.compressedTexImage*D
or compressedTexSubImage*D
taking GLintptr offset
is called, and offset + validatedSize
is greater than the size of the bound PIXEL_UNPACK_BUFFER
, an INVALID_OPERATION
error is generated.validatedSize
is computed in the following way:
floor((width + 3) / 4) * floor((height + 3) / 4) * 8
validatedSize
is computed in the following way:
floor((width + 3) / 4) * floor((height + 3) / 4) * 16
[Exposed=(Window,Worker), LegacyNoInterfaceObject] interface WEBGL_compressed_texture_etc { /* Compressed Texture Formats */ const GLenum COMPRESSED_R11_EAC = 0x9270; const GLenum COMPRESSED_SIGNED_R11_EAC = 0x9271; const GLenum COMPRESSED_RG11_EAC = 0x9272; const GLenum COMPRESSED_SIGNED_RG11_EAC = 0x9273; const GLenum COMPRESSED_RGB8_ETC2 = 0x9274; const GLenum COMPRESSED_SRGB8_ETC2 = 0x9275; const GLenum COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276; const GLenum COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277; const GLenum COMPRESSED_RGBA8_ETC2_EAC = 0x9278; const GLenum COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279; };New Tokens
internalformat
parameter: COMPRESSED_R11_EAC
, COMPRESSED_SIGNED_R11_EAC
, COMPRESSED_RG11_EAC
, COMPRESSED_SIGNED_RG11_EAC
, COMPRESSED_RGB8_ETC2
, COMPRESSED_SRGB8_ETC2
, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_RGBA8_ETC2_EAC
or COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
internalformat
parameter: COMPRESSED_R11_EAC
, COMPRESSED_SIGNED_R11_EAC
, COMPRESSED_RG11_EAC
, COMPRESSED_SIGNED_RG11_EAC
, COMPRESSED_RGB8_ETC2
, COMPRESSED_SRGB8_ETC2
, COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
, COMPRESSED_RGBA8_ETC2_EAC
or COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
The error INVALID_VALUE
is generated by compressedTexImage2D
, compressedTexSubImage2D
, compressedTexImage3D
, and compressedTexSubImage3D
if the variant taking ArrayBufferView pixels
is called and the size restrictions above are not met.
The error INVALID_OPERATION
is generated by compressedTexImage2D
, compressedTexSubImage2D
, compressedTexImage3D
, and compressedTexSubImage3D
if the variant taking GLintptr offset
is called and the size restrictions above are not met.
Revision 1, 2013/12/9
Revision 2, 2014/07/15
Revision 3, 2014/12/12
Revision 4, 2015/01/31
Revision 5, 2016/09/16
Revision 6, 2016/09/21
Revision 7, 2016/09/30
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.5