WebGLTexture
The WebGLTexture interface is part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations.
WebGL textures
The WebGLTexture
object does not define any methods or properties of its own and its content is not directly accessible. When working with WebGLTexture
objects, the following methods of the WebGLRenderingContext
are useful:
WebGLRenderingContext.bindTexture()
WebGLRenderingContext.createTexture()
WebGLRenderingContext.deleteTexture()
WebGLRenderingContext.isTexture()
See also the WebGL tutorial on Using textures in WebGL.
WebXR opaque textures
When using WebXR layers, the XRWebGLBinding
object will return instances of an opaque WebGLTexture
for the color and depth/stencil attachments.
WebXR methods that return opaque WebGLTexture
objects:
The WebXR opaque texture is identical to the standard WebGLTexture
with the following exceptions:
- A WebXR opaque texture is invalid outside a WebXR
requestAnimationFrame()
callback for its session. - A WebXR opaque texture is invalid until it is returned by
XRWebGLBinding.getSubImage()
orXRWebGLBinding.getViewSubImage()
. - A WebXR opaque texture for the color attachment contains colors with premultiplied alpha.
- At the end of a
requestAnimationFrame()
callback a WebXR opaque texture is unbounded and detached from allWebGLShader
objects. - A WebXR opaque texture behaves as though it was allocated with
texStorage2D
ortexStorage3D
, as appropriate, even when using a WebGL 1.0 context. - If a WebXR opaque texture calls
WebGLRenderingContext.deleteTexture()
, anINVALID_OPERATION
error is thrown. - Changes to the dimension or format of a WebXR opaque texture are not allowed. GL functions may only alter the texel values and texture parameters.
Examples
Creating a texture
var canvas = document.getElementById('canvas'); var gl = canvas.getContext('webgl'); var texture = gl.createTexture();
Specifications
Specification |
---|
WebGL Specification (WebGL) # 5.9 |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
WebGLTexture |
9 |
12 |
4 |
11 |
12 |
5.1 |
Yes |
25 |
Yes |
12 |
8 |
1.5 |
worker_support |
No |
No |
44 |
No |
No |
No |
No |
No |
No |
No |
No |
No |
See also
WebGLRenderingContext.bindTexture()
WebGLRenderingContext.createTexture()
WebGLRenderingContext.deleteTexture()
WebGLRenderingContext.isTexture()
WebGLRenderingContext.compressedTexImage2D()
WebGLRenderingContext.compressedTexSubImage2D()
WebGLRenderingContext.copyTexImage2D()
WebGLRenderingContext.copyTexSubImage2D()
WebGLRenderingContext.generateMipmap()
WebGLRenderingContext.getTexParameter()
WebGLRenderingContext.texImage2D()
WebGLRenderingContext.texSubImage2D()
WebGLRenderingContext.texParameterf()
WebGLRenderingContext.texParameteri()
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture