files/en-us/web/api/ext_texture_compression_bptc/index.md
{{APIRef("WebGL")}}
The EXT_texture_compression_bptc extension is part of the WebGL API and exposes 4 BPTC compressed texture formats. These compression formats are called BC7 and BC6H in Microsoft's DirectX API.
WebGL extensions are available using the {{domxref("WebGLRenderingContext.getExtension()")}} method. For more information, see also Using Extensions in the WebGL tutorial.
[!NOTE] Support depends on the system's graphics driver. There is no support on Windows.
This extension is available to both, {{domxref("WebGLRenderingContext", "WebGL1", "", 1)}} and {{domxref("WebGL2RenderingContext", "WebGL2", "", 1)}} contexts.
The compressed texture formats are exposed by 4 constants and can be used in two functions: {{domxref("WebGLRenderingContext.compressedTexImage2D", "compressedTexImage2D()")}} and {{domxref("WebGLRenderingContext.compressedTexSubImage2D", "compressedTexSubImage2D()")}}.
ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
const ext = gl.getExtension("EXT_texture_compression_bptc");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(
gl.TEXTURE_2D,
0,
ext.COMPRESSED_RGBA_BPTC_UNORM_EXT,
128,
128,
0,
textureData,
);
{{Specifications}}
{{Compat}}