GPUCommandEncoder: copyTextureToTexture()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
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 dies den Bereich der Quelltextursubressource. destination
-
Ein Objekt (siehe Struktur des Kopiertexturobjekts), das die Textur definiert, in die die Daten geschrieben werden. Zusammen mit
copySize
definiert dies den Bereich der Zieltextursubressource. copySize
-
Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Schichtanzahl der kopierten Daten angibt. Der Breitenwert muss immer angegeben werden, während die Werte für Höhe und Tiefe/Array-Schichtanzahl optional sind und, falls ausgelassen, standardmäßig auf 1 gesetzt werden.
Was folgt, ist ein Beispiel für ein
copySize
-Array:js[16, 16, 2];
Das entsprechende Objekt würde folgendermaßen aussehen:
js{ width: 16, height: 16, depthOrArrayLayers: 2 }
Struktur des Kopiertexturobjekts
Ein Kopiertexturobjekt hat die folgende Struktur:
aspect
Optional-
Ein enumerierter Wert, der definiert, welche Aspekte der Textur die Daten von/zu kopieren sind. Mögliche Werte sind:
"all"
-
Alle verfügbaren Aspekte des Texturformats werden von/zu kopiert. Das kann je nach Formattyp Farbe, Tiefe und Stencil umfassen.
"depth-only"
-
Nur der Tiefenaspekt eines Tiefen-oder-Stencilformats wird von/zu kopiert.
"stencil-only"
-
Nur der Stencil-Aspekt eines Tiefen-oder-Stencilformats wird von/zu kopiert.
Falls weggelassen, nimmt
aspect
den Wert"all"
an. mipLevel
Optional-
Eine Zahl, die die Mip-Map-Ebene der Textur darstellt, von der/zu der die Daten kopiert werden. Falls weggelassen, ist
mipLevel
standardmäßig 0. origin
Optional-
Ein Objekt oder Array, das den Ursprung des Kopier-/Ziels angibt — die minimale Ecke des Texturbereichs, von der/zu der die Daten kopiert werden. Zusammen mit
size
wird der volle Umfang des Bereichs definiert, von dem/zu dem kopiert wird. Diex
,y
undz
-Werte standardisieren auf 0, wennorigin
weggelassen wird.Was folgt, ist ein Beispiel-Array:
js[0, 0, 0];
Das entsprechende Objekt würde folgendermaßen aussehen:
js{ x: 0, y: 0, z: 0 }
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, ansonsten wird ein GPUValidationError
generiert und der GPUCommandEncoder
wird ungültig.
Für source
:
- Der
source
-GPUTexture.usage
muss dasGPUTextureUsage.COPY_SRC
-Flag enthalten.
Für destination
:
- Der
destination
-GPUTexture.usage
muss dasGPUTextureUsage.COPY_DST
-Flag enthalten.
Für source
und destination
:
mipLevel
ist kleiner als dieGPUTexture.mipLevelCount
.origin.x
ist ein Vielfaches der Texel-Blockbreite desGPUTexture.format
.origin.y
ist ein Vielfaches der Texel-Blockhöhe desGPUTexture.format
.- Die
texture
-Formate sowohl der Quelle als auch des Ziels sind kopierkompatibel. - Die
texture
-Sample-Anzahlen sowohl der Quelle als auch des Ziels sind gleich. - Falls das
GPUTexture.format
ein Depth-or-Stencil-Format ist oder dieGPUTexture.sampleCount
größer als 1 ist, ist die Subresourcengröße gleichsize
. - Die
texture
-GPUTexture.sampleCount
ist 1. aspect
bezieht sich auf einen einzigen Aspekt desGPUTexture.format
.- Dieser Aspekt ist eine gültige Bildkopiequelle/-zieldestination gemäß Depth-or-Stencil-Formaten.
- Die
texture
ist kompatibel mit dercopySize
.
Beispiele
commandEncoder.copyTextureToTexture(
{
texture: sourceTexture,
},
{
texture: destinationTexture,
},
{
width: 16,
height: 16,
depthOrArrayLayers: 2,
},
);
Spezifikationen
Specification |
---|
WebGPU # dom-gpucommandencoder-copytexturetotexture |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Die WebGPU API