GPUCommandEncoder: copyTextureToTexture() method
The copyTextureToTexture()
method of the GPUCommandEncoder
interface encodes a command that copies data from one GPUTexture
to another.
Syntax
copyTextureToTexture(source, destination, copySize)
Parameters
-
source
-
An object (see Copy texture object structure) defining the texture to copy the data from. Combined with copySize
, this defines the region of the source texture subresource.
-
destination
-
An object (see Copy texture object structure) defining the texture to write the data to. Combined with copySize
, this defines the region of the destination texture subresource.
-
copySize
-
An object or array specifying the width, height, and depth/array layer count of the copied data. The width value must always be specified, while the height and depth/array layer count values are optional and will default to 1 if omitted.
What follows is a sample copySize
array:
The object equivalent would look like this:
{
width: 16,
height: 16,
depthOrArrayLayers: 2
}
Copy texture object structure
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.
Return value
Validation
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
:
Examples
commandEncoder.copyTextureToTexture(
{
texture: sourceTexture,
},
{
texture: destinationTexture,
},
{
width: 16,
height: 16,
depthOrArrayLayers: 2,
},
);
Specifications
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 |
copyTextureToTexture |
113Currently supported on ChromeOS, macOS, and Windows only.
|
113Currently supported on ChromeOS, macOS, and Windows only.
|
previewCurrently supported on Linux and Windows only.
|
No |
99Currently supported on ChromeOS, macOS, and Windows only.
|
No |
No |
No |
No |
No |
No |
No |
See also