WebGLRenderingContext: texSubImage2D() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is available inWeb Workers.
ThetexSubImage2D() method of theWebGLRenderingContext interface of theWebGL API specifies a two-dimensional sub-rectangle for a texture image.
In this article
Syntax
// WebGL 1:texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, srcData)texSubImage2D(target, level, xoffset, yoffset, format, type, source)// Additionally available in WebGL 2:texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, srcData, srcOffset)texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, source)texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, offset)Parameters
targetA
GLenumspecifying the binding point (target) of the active 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.
levelA
GLintspecifying the level of detail. Level 0 is the base image level and leveln is the n-th mipmap reduction level.xoffsetA
GLintspecifying the lower left texel x coordinate of a width-wide by height-wide rectangular subregion of the texture array.yoffsetA
GLintspecifying the lower left texel y coordinate of a width-wide by height-wide rectangular subregion of the texture array.widthA
GLsizeispecifying the width of the texture in texels.heightA
GLsizeispecifying the height of the texture in texels.formatA
GLenumspecifying how each integer element in the raw texel data should be interpreted as color components. Possible values:gl.ALPHA: Discards the red, green and blue components and reads the alpha component.gl.RGB: Discards the alpha components and reads the red, green and blue components.gl.RGBA: Red, green, blue and alpha components are read from the color buffer.gl.LUMINANCE: Each color component is a luminance component, alpha is 1.0.gl.LUMINANCE_ALPHA: Each component is a luminance/alpha component.
When using the
EXT_sRGBextension:ext.SRGB_EXText.SRGB_ALPHA_EXT
When using a
WebGL2RenderingContext, the following values are available additionally:gl.REDgl.RED_INTEGERgl.RGgl.RG_INTEGERgl.RGB_INTEGERgl.RGBA_INTEGERgl.DEPTH_COMPONENTgl.DEPTH_STENCIL
typeA
GLenumspecifying the size of each integer element in the raw texel data. For the combinations offormatandtypeavailable, seeWebGLRenderingContext.texImage2D().
The texture source can be provided in one of three ways: from anArrayBuffer (possibly shared) usingsrcData andsrcOffset; from a DOM pixelsource; or, in WebGL 2, fromgl.PIXEL_UNPACK_BUFFER usingoffset.
srcDataA
TypedArrayorDataViewcontaining the compressed texture data. Its type must match thetypeparameter; seeWebGLRenderingContext.texImage2D().srcOffsetOptional(WebGL 2 only) An integer specifying the index of
srcDatato start reading from. Defaults to0.sourceRead from a DOM pixel source, which can be one of:
In WebGL 1, the
widthandheightare always inferred from the source. In WebGL 2, they can also be explicitly specified.offset(WebGL 2 only) A
GLintptrspecifying the starting address in the buffer bound togl.PIXEL_UNPACK_BUFFER.
Return value
None (undefined).
Examples
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image);Specifications
| Specification |
|---|
| WebGL Specification> # TEXSUBIMAGE2D> |
| WebGL 2.0 Specification> # 3.7.6> |