The copyTextureToTexture() method of the GPUCommandEncoder interface encodes a command that copies data from one GPUTexture to another.
copyTextureToTexture(source, destination, copySize)
A copy texture object has the following structure:
-
aspect Optional
-
An enumerated value defining which aspects of the texture to copy the data from/to. Possible values are:
"all" -
All available aspects of the texture format will be copied from/to, which can mean all or any of color, depth, and stencil, depending on what kind of format you are dealing with.
"depth-only" -
Only the depth aspect of a depth-or-stencil format will be copied from/to.
"stencil-only" -
Only the stencil aspect of a depth-or-stencil format will be copied from/to.
If omitted, aspect takes a value of "all".
-
mipLevel Optional
-
A number representing the mip-map level of the texture to copy the data from/to. If omitted, mipLevel defaults to 0.
-
origin Optional
-
An object or array specifying the origin of the copy/destination — the minimum corner of the texture region to copy the data from/to. Together with size, this defines the full extent of the region to copy from/to. The x, y, and z values default to 0 if any of all of origin is omitted.
What follows is a sample array:
The object equivalent would look like this:
texture -
A GPUTexture object representing the texture to copy the data from/to.
The following criteria must be met when calling copyTextureToTexture(), otherwise a GPUValidationError is generated and the GPUCommandEncoder becomes invalid.
For the source:
For the destination:
For source and destination:
commandEncoder.copyTextureToTexture(
{
texture: sourceTexture,
},
{
texture: destinationTexture,
},
{
width: 16,
height: 16,
depthOrArrayLayers: 2,
},
);