WebGLRenderingContext: compressedTexSubImage2D() method
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers.
The compressedTexSubImage2D() method of the WebGLRenderingContext interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image in a compressed format.
Compressed image formats are only available via the WebGL2RenderingContext or some WebGL extension.
Syntax
// WebGL 1:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
// Additionally available in WebGL 2:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset, srcLengthOverride)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, offset)
Parameters
- target
- 
A GLenumspecifying the binding point (target) of the active compressed texture. Possible values:- gl.TEXTURE_2D: A two-dimensional texture.
- gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X face for a cube-mapped texture.
- gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X face for a cube-mapped texture.
- gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y face for a cube-mapped texture.
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y face for a cube-mapped texture.
- gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z face for a cube-mapped texture.
- gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z face for a cube-mapped texture.
 
- level
- 
A GLintspecifying the level of detail. Level 0 is the base image level and level n is the n-th mipmap reduction level.
- xoffset
- 
A GLintspecifying the horizontal offset within the compressed texture image.
- yoffset
- 
A GLintspecifying the vertical offset within the compressed texture image.
- width
- 
A GLsizeispecifying the width of the compressed texture.
- height
- 
A GLsizeispecifying the height of the compressed texture.
- format
- 
A GLenumspecifying the compressed image format. For a list of possible values, seeWebGLRenderingContext.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 TypedArrayorDataViewcontaining the compressed texture data.
- srcOffsetOptional
- 
(WebGL 2 only) An integer specifying the index of srcDatato start reading from. Defaults to0.
- srcLengthOverrideOptional
- 
(WebGL 2 only) An integer specifying the number of elements in srcDatato read. Defaults tosrcData.length - srcOffset.
- imageSize
- 
(WebGL 2 only) A GLsizeispecifying the size of the image data in bytes.
- offset
- 
(WebGL 2 only) A GLintptrspecifying the starting address in the buffer bound togl.PIXEL_UNPACK_BUFFER.
Return value
None (undefined).
Examples
const ext =
  gl.getExtension("WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
gl.compressedTexSubImage2D(
  gl.TEXTURE_2D,
  0,
  256,
  256,
  512,
  512,
  ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
  textureData,
);
Specifications
| Specification | 
|---|
| WebGL Specification> # COMPRESSEDTEXSUBIMAGE2D> | 
Browser compatibility
Loading…
See also
- Using WebGL extensions
- WebGLRenderingContext.getExtension()
- WebGLRenderingContext.compressedTexImage2D()
- WebGL2RenderingContext.compressedTexSubImage3D()
- WebGL2RenderingContext.compressedTexImage3D()
- WEBGL_compressed_texture_s3tc
- WEBGL_compressed_texture_s3tc_srgb
- WEBGL_compressed_texture_etc
- WEBGL_compressed_texture_pvrtc
- WEBGL_compressed_texture_astc
- EXT_texture_compression_bptc
- EXT_texture_compression_rgtc