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 Kopier-Texturobjekts), das die Textur definiert, von der die Daten kopiert werden. In Kombination mit
copySize
definiert dies den Bereich der Quelltextur-Subressource. destination
-
Ein Objekt (siehe Struktur des Kopier-Texturobjekts), das die Textur definiert, in die die Daten geschrieben werden. In Kombination mit
copySize
definiert dies den Bereich der Zieltextur-Subressource. copySize
-
Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Schichtanzahl der kopierten Daten angibt. Der Wert für die Breite muss immer angegeben werden, während die Werte für Höhe und Tiefe/Array-Schichtanzahl optional sind und standardmäßig 1 betragen, wenn sie weggelassen werden.
Zum Beispiel können Sie ein Array
[16, 16, 2]
oder ein gleichwertiges Objekt{ width: 16, height: 16, depthOrArrayLayers: 2 }
übergeben.
Struktur des Kopier-Texturobjekts
Ein Kopier-Texturobjekt hat die folgende Struktur:
aspect
Optional-
Ein enumerierter Wert, der definiert, welche Aspekte der Textur kopiert werden sollen. Mögliche Werte sind:
"all"
-
Alle verfügbaren Aspekte des Texturformats werden kopiert, was je nach Format alle oder beliebige der Farb-, Tiefen- und Stenzelelemente bedeuten kann.
"depth-only"
-
Nur der Tiefenaspekt eines Depth-or-Stencil-Formats wird kopiert.
"stencil-only"
-
Nur der Stenzelelement-Aspekt eines Depth-or-Stencil-Formats wird kopiert.
Wird
aspect
weggelassen, wird ein Wert von"all"
verwendet. mipLevel
Optional-
Eine Zahl, die die Mip-Map-Ebene der Textur darstellt, von der die Daten kopiert werden. Wenn weggelassen, ist der Standardwert von
mipLevel
0. origin
Optional-
Ein Objekt oder Array, das den Ursprung der Kopie/destination angibt — die minimale Ecke des Texturbereichs, von der die Daten kopiert werden. Zusammen mit
size
definiert dies den vollständigen Umfang des zu kopierenden Bereichs. Diex
-,y
- undz
-Werte betragen standardmäßig 0, wennorigin
teilweise oder vollständig weggelassen wird.Zum Beispiel können Sie ein Array wie
[0, 0, 0]
oder ein gleichwertiges Objekt{ x: 0, y: 0, z: 0 }
übergeben. texture
-
Ein
GPUTexture
-Objekt, das die Textur darstellt, von 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
erzeugt und der GPUCommandEncoder
wird ungültig.
Für den source
:
- Die
GPUTexture.usage
vonsource
beinhaltet dasGPUTextureUsage.COPY_SRC
-Flag.
Für das destination
:
- Die
GPUTexture.usage
vonsource
beinhaltet dasGPUTextureUsage.COPY_DST
-Flag.
Für source
und destination
:
mipLevel
ist kleiner als dieGPUTexture.mipLevelCount
.origin.x
ist ein Vielfaches der Texelblockbreite desGPUTexture.format
.origin.y
ist ein Vielfaches der Texelblockhöhe desGPUTexture.format
.- Die
texture
-Formate der Quell- und Zieltexture
GPUTexture.format
sind kopierkompatibel. - Die
texture
-Probeanzahl der Quell- und Zieltexture
GPUTexture.sampleCount
sind gleich. - Wenn das
GPUTexture.format
ein Depth-or-Stencil-Format ist oder derGPUTexture.sampleCount
mehr als 1 beträgt, ist die Subressourcengröße gleichsize
. - Die
texture
GPUTexture.sampleCount
beträgt 1. aspect
bezieht sich auf einen einzelnen Aspekt desGPUTexture.format
.- Dieser Aspekt ist gemäß Depth-or-Stencil-Formaten eine gültige Bildkopiequelle/-ziel.
- Die
texture
ist mit dercopySize
kompatibel.
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