GPUTexture
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
Note: This feature is available inWeb Workers.
TheGPUTexture interface of theWebGPU API represents a container used to store 1D, 2D, or 3D arrays of data, such as images, to use in GPU rendering operations.
AGPUTexture object instance is created using theGPUDevice.createTexture() method.
In this article
Instance properties
depthOrArrayLayersRead onlyA number representing the depth or layer count of the
GPUTexture(pixels, or number of layers).dimensionRead onlyAn enumerated value representing the dimension of the set of texels for each
GPUTexturesubresource.formatRead onlyAn enumerated value representing the format of the
GPUTexture. See theTexture formats section of the specification for all the possible values. Also seeTier 1 and Tier 2 texture formats.heightRead onlyA number representing the height of the
GPUTexturein pixels.labelA string providing a label that can be used to identify the object, for example in
GPUErrormessages or console warnings.mipLevelCountRead onlyA number representing the number of mip levels of the
GPUTexture.sampleCountRead onlyA number representing the sample count of the
GPUTexture.usageRead onlyThebitwise flags representing the allowed usages of the
GPUTexture.widthRead onlyA number representing the width of the
GPUTexturein pixels.
Instance methods
createView()Creates a
GPUTextureViewrepresenting a specific view of theGPUTexture.destroy()Destroys the
GPUTexture.
Examples
In the WebGPU samplesTextured Cube sample, a texture to use on the faces of a cube is created by:
- Loading the image into an
HTMLImageElementand creating an image bitmap usingcreateImageBitmap(). - Creating a new
GPUTextureusingcreateTexture(). - Copying the image bitmap into the texture using
GPUQueue.copyExternalImageToTexture().
// …let cubeTexture;{ const img = document.createElement("img"); img.src = new URL( "../../../assets/img/Di-3d.png", import.meta.url, ).toString(); await img.decode(); const imageBitmap = await createImageBitmap(img); cubeTexture = device.createTexture({ size: [imageBitmap.width, imageBitmap.height, 1], format: "rgba8unorm", usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT, }); device.queue.copyExternalImageToTexture( { source: imageBitmap }, { texture: cubeTexture }, [imageBitmap.width, imageBitmap.height], );}// …Specifications
| Specification |
|---|
| WebGPU> # gputexture> |
Browser compatibility
See also
- TheWebGPU API