WebGL2RenderingContext: compressedTexSubImage3D() method

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2021⁩.

Note: This feature is available in Web Workers.

The compressedTexSubImage3D() method of the WebGL2RenderingContext interface of the WebGL API specifies a three-dimensional sub-rectangle for a texture image in a compressed format.

Compressed image formats are only available via some WebGL extension.

Syntax

js
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, offset)

compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData)
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData, srcOffset)
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData, srcOffset, srcLengthOverride)

Parameters

target

A GLenum specifying the binding point (target) of the active compressed texture. Possible values:

  • gl.TEXTURE_3D: A three-dimensional texture.
  • gl.TEXTURE_2D_ARRAY: A two-dimensional array texture.
level

A GLint specifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.

xoffset

A GLint specifying the x offset within the compressed texture image.

yoffset

A GLint specifying the y offset within the compressed texture image.

zoffset

A GLint specifying the z offset within the compressed texture image.

width

A GLsizei specifying the width of the compressed texture in texels.

height

A GLsizei specifying the height of the compressed texture in texels.

depth

A GLsizei specifying the depth of the texture/the number of textures in a TEXTURE_2D_ARRAY.

format

A GLenum specifying the compressed image format. For a list of possible values, see WebGLRenderingContext.compressedTexImage2D().

The texture source can be provided in one of two ways: from an ArrayBuffer (possibly shared) using srcData, srcOffset, and srcLengthOverride; or, in WebGL 2, from gl.PIXEL_UNPACK_BUFFER using imageSize and offset.

srcData

A TypedArray or DataView containing the compressed texture data.

srcOffset Optional

An integer specifying the index of srcData to start reading from. Defaults to 0.

srcLengthOverride Optional

An integer specifying the number of elements in srcData to read. Defaults to srcData.length - srcOffset.

imageSize

A GLsizei specifying the size of the image data in bytes.

offset

A GLintptr specifying the starting address in the buffer bound to gl.PIXEL_UNPACK_BUFFER.

Return value

None (undefined).

Examples

js
gl.compressedTexSubImage3D(
  gl.TEXTURE_3D,
  0,
  0,
  0,
  512,
  512,
  512,
  gl.COMPRESSED_R11_EAC,
  textureData,
);

Specifications

Specification
WebGL 2.0 Specification
# 3.7.6

Browser compatibility

See also