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
copySizedefiniert 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
copySizedefiniert 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:
aspectOptional-
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
aspectden Wert"all"an. mipLevelOptional-
Eine Zahl, die die Mip-Map-Ebene der Textur darstellt, von der/die auf die Daten kopiert werden. Wenn weggelassen, ist
mipLevelstandardmäßig 0. originOptional-
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
sizewird das gesamte Ausmaß des Bereichs definiert, der kopiert wird. Diex,yundzWerte sind standardmäßig 0, wennoriginweggelassen 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
GPUTextureObjekt, 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.usagedessourceenthält dasGPUTextureUsage.COPY_SRCFlag.
Für den destination:
- Die
GPUTexture.usagedesdestinationenthält dasGPUTextureUsage.COPY_DSTFlag.
Für source und destination:
mipLevelist kleiner als dieGPUTexture.mipLevelCount.origin.xist ein Vielfaches der Texelblock-Breite desGPUTexture.format.origin.yist ein Vielfaches der Texelblock-Höhe desGPUTexture.format.- Die Formate der Quell- und Zieltexturen sind kopierkompatibel.
- Die
sampleCountder 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
sizesein. - Die
sampleCountder Textur ist 1. aspectbezieht 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
Loading…
Siehe auch
- Die WebGPU API