The WEBGL_compressed_texture_atc
extension is part of the WebGL API and exposes 3 ATC compressed texture formats. ATC is a proprietary compression algorithm for compressing textures on handheld devices.
Compressed textures reduce the amount of memory needed to store a texture on the GPU, allowing for higher resolution textures or more of the same resolution textures.
WebGL extensions are available using the {{domxref("WebGLRenderingContext.getExtension()")}} method. For more information, see also Using Extensions in the WebGL tutorial.
Availability: ATC compression is typically available on mobile devices with Adreno GPUs, that are currently only built into Qualcomm Snapdragon devices.
This extension is available to both, {{domxref("WebGLRenderingContext", "WebGL1", "", 1)}} and {{domxref("WebGL2RenderingContext", "WebGL2", "", 1)}} contexts.
Constants
The compressed texture formats are exposed by 3 constants and can be used in two functions: {{domxref("WebGLRenderingContext.compressedTexImage2D", "compressedTexImage2D()")}} and {{domxref("WebGLRenderingContext.compressedTexSubImage2D", "compressedTexSubImage2D()")}}.
ext.COMPRESSED_RGB_ATC_WEBGL
- Compresses RGB textures with no alpha channel.
ext.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL
- Compresses RGBA textures using explicit alpha encoding (useful when alpha transitions are sharp).
ext.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL
- Compresses RGBA textures using interpolated alpha encoding (useful when alpha transitions are gradient).
Examples
var ext = gl.getExtension("WEBGL_compressed_texture_atc"); var texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, texture); gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGB_ATC_WEBGL, 512, 512, 0, textureData);
Specifications
Specification | Status | Comment |
---|---|---|
{{SpecName('WEBGL_compressed_texture_atc', "", "WEBGL_compressed_texture_atc")}} | {{Spec2('WEBGL_compressed_texture_atc')}} | Initial definition. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatGeckoDesktop("18.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
See also
- {{domxref("WebGLRenderingContext.getExtension()")}}
- {{domxref("WebGLRenderingContext.compressedTexImage2D()")}}
- {{domxref("WebGLRenderingContext.compressedTexSubImage2D()")}}
- {{domxref("WebGLRenderingContext.getParameter()")}}