GPUCommandEncoder: copyTextureToTexture() Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
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 Copy Texture Objekts), das die Textur definiert, von der die Daten kopiert werden. In Kombination mit
copySizedefiniert dies den Bereich der Quelltextur-Subresource. destination-
Ein Objekt (siehe Struktur des Copy Texture Objekts), das die Textur definiert, in die die Daten geschrieben werden sollen. In Kombination mit
copySizedefiniert dies den Bereich der Zieltextur-Subresource. copySize-
Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Schichtenzahl der kopierten Daten angibt. Der Breitenwert muss immer angegeben werden, während die Höhen- und Tiefen-/Array-Schichtenzahl optional sind und auf 1 standardmäßig gesetzt werden, wenn sie weggelassen werden.
Zum Beispiel können Sie ein Array
[16, 16, 2]oder sein gleichwertiges Objekt{ width: 16, height: 16, depthOrArrayLayers: 2 }übergeben.
Struktur des Copy Texture Objekts
Ein Copy Texture Objekt hat die folgende Struktur:
aspectOptional-
Ein enumerierter Wert, der definiert, welche Aspekte der Textur kopiert werden. Mögliche Werte sind:
"all"-
Alle verfügbaren Aspekte des Texturformats werden kopiert, was je nach Format alle oder einige von Farbe, Tiefe und Schablone bedeuten kann.
"depth-only"-
Nur der Tiefenaspekt eines Tiefen-oder-Schablonen-Formats wird kopiert.
"stencil-only"-
Nur der Schablonen-Aspekt eines Tiefen-oder-Schablonen-Formats wird kopiert.
Wenn weggelassen, nimmt
aspectden Wert"all". mipLevelOptional-
Eine Zahl, die das Mip-Map-Level der Textur angibt, von der/dem die Daten kopiert werden. Wenn weggelassen, hat
mipLevelden Standardwert 0. originOptional-
Ein Objekt oder Array, das den Ursprung der Kopie/Zielfestlegung angibt — die minimale Ecke des Texturbereichs, von dem die Daten kopiert werden. Zusammen mit
sizedefiniert dies das gesamte Ausmaß des zu kopierenden Bereichs. Diex,yundzWerte haben den Standardwert 0, wenn ein Teil vonoriginweggelassen wird.Zum Beispiel können Sie ein Array wie
[0, 0, 0]oder sein gleichwertiges Objekt{ x: 0, y: 0, z: 0 }übergeben. texture-
Ein
GPUTexture-Objekt, das die Textur repräsentiert, von 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 erzeugt und der GPUCommandEncoder wird ungültig.
Für die source:
- Die
GPUTexture.usagevonsourceumfasst dasGPUTextureUsage.COPY_SRC-Flag.
Für die destination:
- Die
GPUTexture.usagevonsourceumfasst dasGPUTextureUsage.COPY_DST-Flag.
Für source und destination:
mipLevelist kleiner als dieGPUTexture.mipLevelCount.origin.xist ein Vielfaches der Texel-Blockbreite desGPUTexture.format.origin.yist ein Vielfaches der Texel-Blockhöhe desGPUTexture.format.- Die Formate der Quell- und Zieltextur
GPUTexture.formatsind kopierkompatibel. - Die Formate
GPUTexture.sampleCountder Quell- und Zieltextur sind gleich. - Wenn das
GPUTexture.formatein Tiefen-oder-Schablonen-Format ist oderGPUTexture.sampleCountmehr als 1 ist, muss die Subresource-Größe gleichsizesein. - Die
GPUTexture.sampleCountdertextureist 1. aspectbezieht sich auf einen einzelnen Aspekt desGPUTexture.format.- Dieser Aspekt ist eine gültige Bildkopiequelle bzw. ein Ziel gemäß Tiefen-oder-Schablonen-Formaten.
- Die
textureist mit dercopySizekompatibel.
Beispiele
commandEncoder.copyTextureToTexture(
{
texture: sourceTexture,
},
{
texture: destinationTexture,
},
{
width: 16,
height: 16,
depthOrArrayLayers: 2,
},
);
Spezifikationen
| Spezifikation |
|---|
| WebGPU> # dom-gpucommandencoder-copytexturetotexture> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API