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

js
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. Die x-, y- und z-Werte betragen standardmäßig 0, wenn origin 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:

Für das destination:

Für source und destination:

Beispiele

js
commandEncoder.copyTextureToTexture(
  {
    texture: sourceTexture,
  },
  {
    texture: destinationTexture,
  },
  {
    width: 16,
    height: 16,
    depthOrArrayLayers: 2,
  },
);

Spezifikationen

Specification
WebGPU
# dom-gpucommandencoder-copytexturetotexture

Browser-Kompatibilität

Siehe auch