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 Kopier-Texturobjekts), das die Quelle der Textur definiert, aus der die Daten kopiert werden. Zusammen mit
copySize
definiert dies den Bereich der Quelltextur-Unterressource. destination
-
Ein Objekt (siehe Struktur des Kopier-Texturobjekts), das die Zieltextur definiert, in die die Daten geschrieben werden sollen. Zusammen mit
copySize
definiert dies den Bereich der Zieltextur-Unterressource. copySize
-
Ein Objekt oder Array, das die Breite, Höhe und Tiefe/Array-Ebenenanzahl der kopierten Daten angibt. Der Breitenwert muss immer angegeben werden, während die Höhe und die Tiefe/Array-Ebenenanzahl optional sind und standardmäßig 1 betragen, wenn sie weggelassen werden.
Zum Beispiel können Sie ein Array
[16, 16, 2]
oder das entsprechende 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 einen der Farb-, Tiefen- und Stencil-Aspekte bedeuten kann.
"depth-only"
-
Nur der Tiefen-Aspekt eines Tiefen-oder-Stencil-Formats wird kopiert.
"stencil-only"
-
Nur der Stencil-Aspekt eines Tiefen-oder-Stencil-Formats wird kopiert.
Wenn weggelassen, nimmt
aspect
den Wert"all"
an. mipLevel
Optional-
Eine Zahl, die die Mip-Map-Ebene der Textur angibt, von der kopiert werden soll. Wenn weggelassen, ist der Standardwert für
mipLevel
0. origin
Optional-
Ein Objekt oder Array, das den Ursprung der Kopie/Ziel angibt – die minimale Ecke des Texturbereichs, aus dem kopiert werden soll. Zusammen mit
size
definiert dies den vollständigen Umfang des Bereiches, aus dem kopiert werden soll. Diex
,y
undz
-Werte sind standardmäßig 0, fallsorigin
ganz oder teilweise weggelassen wird.Zum Beispiel können Sie ein Array wie
[0, 0, 0]
oder das entsprechende Objekt{ x: 0, y: 0, z: 0 }
übergeben. texture
-
Ein
GPUTexture
-Objekt, das die Textur repräsentiert, von der kopiert werden soll.
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 die source
:
- Die
source
'sGPUTexture.usage
enthält dasGPUTextureUsage.COPY_SRC
-Flag.
Für die destination
:
- Die
source
'sGPUTexture.usage
enthält dasGPUTextureUsage.COPY_DST
-Flag.
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 Quell- und Zieltextur
GPUTexture.format
s sind kopierkompatibel. - Die Quell- und Zieltextur
GPUTexture.sampleCount
s sind gleich. - Wenn das
GPUTexture.format
ein Tiefen-oder-Stencil-Format ist oderGPUTexture.sampleCount
größer als 1 ist, ist die Unterressourcengröße gleichsize
. - Das
texture
'sGPUTexture.sampleCount
ist 1. aspect
bezieht sich auf einen einzelnen Aspekt desGPUTexture.format
.- Dieser Aspekt ist eine gültige Bildkopierquelle/Ziel gemäß Tiefen-oder-Stencil-Formate.
- Das
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
Siehe auch
- Die WebGPU API