files/en-us/web/api/webglrenderingcontext/texsubimage2d/index.md
{{APIRef("WebGL")}}{{AvailableInWorkers}}
The texSubImage2D() method of the {{domxref("WebGLRenderingContext")}} interface of the WebGL API specifies a two-dimensional sub-rectangle for a texture image.
// 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)
target
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
xoffset
yoffset
width
height
format
: A {{domxref("WebGL_API/Types", "GLenum")}} specifying 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 {{domxref("EXT_sRGB")}} extension:
ext.SRGB_EXText.SRGB_ALPHA_EXTWhen using a {{domxref("WebGL2RenderingContext")}}, the following values are available additionally:
gl.REDgl.RED_INTEGERgl.RGgl.RG_INTEGERgl.RGB_INTEGERgl.RGBA_INTEGERgl.DEPTH_COMPONENTgl.DEPTH_STENCILtype
format and type available, see {{domxref("WebGLRenderingContext.texImage2D()")}}.The texture source can be provided in one of three ways: from an {{jsxref("ArrayBuffer")}} (possibly shared) using srcData and srcOffset; from a DOM pixel source; or, in WebGL 2, from gl.PIXEL_UNPACK_BUFFER using offset.
srcData
type parameter; see {{domxref("WebGLRenderingContext.texImage2D()")}}.srcOffset {{optional_inline}}
srcData to start reading from. Defaults to 0.source
: Read from a DOM pixel source, which can be one of:
In WebGL 1, the width and height are always inferred from the source. In WebGL 2, they can also be explicitly specified.
offset
gl.PIXEL_UNPACK_BUFFER.None ({{jsxref("undefined")}}).
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image);
{{Specifications}}
{{Compat}}