GPUCommandEncoder: copyTextureToTexture() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Die copyTextureToTexture()
Methode der
GPUCommandEncoder
Schnittstelle kodiert einen Befehl, der Daten von einer GPUTexture
zu einer anderen kopiert.
Syntax
copyTextureToTexture(source, destination, copySize)
Parameter
source
-
Ein Objekt (siehe Struktur des Kopiertexturobjekts), das die Textur definiert, von der die Daten kopiert werden. Zusammen mit
copySize
definiert es den Bereich der Quelltextur-Unterressource. destination
-
Ein Objekt (siehe Struktur des Kopiertexturobjekts), das die Textur definiert, in die die Daten geschrieben werden. Zusammen mit
copySize
definiert es den Bereich der Zieltextur-Unterressource. copySize
-
Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Lagenanzahl der kopierten Daten spezifiziert. Der Breite-Wert muss immer angegeben werden, während die Höhe und die Tiefe/Array-Lagenanzahl optional sind und bei Weglassen einen Standardwert von 1 haben.
Sie können zum Beispiel ein Array
[16, 16, 2]
oder sein äquivalentes Objekt{ width: 16, height: 16, depthOrArrayLayers: 2 }
übergeben.
Struktur des Kopiertexturobjekts
Ein Kopiertexturobjekt hat die folgende Struktur:
aspect
Optional-
Ein enumerierter Wert, der definiert, welche Aspekte der Textur die Daten von/nach kopiert werden. Mögliche Werte sind:
"all"
-
Alle verfügbaren Aspekte des Texturformats werden von/nach kopiert, was alles oder einen beliebigen der Farb-, Tiefen- und Schablonenastpekte bedeuten kann, je nach Format.
"depth-only"
-
Nur der Tiefen-Aspekt eines Tiefen- oder Schablonenformats wird von/nach kopiert.
"stencil-only"
-
Nur der Schablonen-Aspekt eines Tiefen- oder Schablonenformats wird von/nach kopiert.
Wenn weggelassen, nimmt
aspect
den Wert"all"
an. mipLevel
Optional-
Eine Zahl, die die Mip-Map-Ebene der Textur darstellt, von der/die auf die Daten kopiert werden. Wenn weggelassen, ist
mipLevel
standardmäßig 0. origin
Optional-
Ein Objekt oder Array, das den Ursprung des Kopier-/Zielbereichs angibt — die minimale Ecke des Texturbereichs, von dem/zu dem die Daten kopiert werden. Zusammen mit
size
wird das gesamte Ausmaß des Bereichs definiert, der kopiert wird. Diex
,y
undz
Werte sind standardmäßig 0, wennorigin
weggelassen wird.Zum Beispiel können Sie ein Array wie
[0, 0, 0]
oder sein äquivalentes Objekt{ x: 0, y: 0, z: 0 }
übergeben. texture
-
Ein
GPUTexture
Objekt, das die Textur darstellt, von der/zu der die Daten kopiert werden.
Rückgabewert
Keiner (Undefined
).
Validierung
Die folgenden Kriterien müssen erfüllt sein, wenn copyTextureToTexture()
aufgerufen wird, andernfalls wird ein GPUValidationError
generiert und der GPUCommandEncoder
wird ungültig.
Für den source
:
- Die
GPUTexture.usage
dessource
enthält dasGPUTextureUsage.COPY_SRC
Flag.
Für den destination
:
- Die
GPUTexture.usage
desdestination
enthält dasGPUTextureUsage.COPY_DST
Flag.
Für source
und destination
:
mipLevel
ist kleiner als dieGPUTexture.mipLevelCount
.origin.x
ist ein Vielfaches der Texelblock-Breite desGPUTexture.format
.origin.y
ist ein Vielfaches der Texelblock-Höhe desGPUTexture.format
.- Die Formate der Quell- und Zieltexturen sind kopierkompatibel.
- Die
sampleCount
der Quell- und Zieltexturen sind gleich. - Wenn das Format der Textur ein Tiefen- oder Schablonenformat ist oder mehr als 1 Probe hat, muss die Unterressourcengröße gleich
size
sein. - Die
sampleCount
der Textur ist 1. aspect
bezieht sich auf einen einzigen Aspekt des Texturformats.- Dieser Aspekt ist eine gültige Bildkopierquelle/-ziel gemäß den Tiefen- oder Schablonenformaten.
- Die Textur ist kompatibel mit dem
copySize
.
Beispiele
commandEncoder.copyTextureToTexture(
{
texture: sourceTexture,
},
{
texture: destinationTexture,
},
{
width: 16,
height: 16,
depthOrArrayLayers: 2,
},
);
Spezifikationen
Specification |
---|
WebGPU # dom-gpucommandencoder-copytexturetotexture |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API