Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

GPUCommandEncoder: copyTextureToTexture() Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

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 Kopiervorlage für Texturobjekt), das die Textur definiert, von der die Daten kopiert werden. In Kombination mit copySize bestimmt es den Bereich des Queltextur-Subressourcen.

destination

Ein Objekt (siehe Kopiervorlage für Texturobjekt), das die Textur definiert, in die die Daten geschrieben werden. In Kombination mit copySize bestimmt es den Bereich des Zieltextur-Subressourcen.

copySize

Ein Objekt oder Array, das die Breite, Höhe und die Anzahl der Ebenen/Tiefenschichten der kopierten Daten angibt. Der Wert für die Breite muss immer angegeben werden, während die Werte für Höhe und Anzahl der Ebenen/Tiefenschichten 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.

Kopiervorlage für Texturobjekt

Ein Kopiervorlage für ein Texturobjekt hat die folgende Struktur:

aspect Optional

Ein enumerierter Wert, der bestimmt, welche Aspekte der Textur die Daten von/zu kopieren sind. Mögliche Werte sind:

"all"

Alle verfügbaren Aspekte des Texturformats werden von/zu kopiert, was je nach dem Format alle oder einige der folgenden Bereiche bedeuten kann: Farbe, Tiefe und Schablone.

"depth-only"

Nur der Tiefenaspekt eines depth-or-stencil format wird von/zu kopiert.

"stencil-only"

Nur der Schablonenaspekt eines Tiefen-oder-Schablonenformats wird von/zu kopiert.

Wenn ausgelassen, nimmt aspect den Wert "all" an.

mipLevel Optional

Eine Zahl, die die Mip-Map-Ebene der Textur angibt, von der/zu der die Daten kopiert werden. 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, von dem/zu dem die Daten kopiert werden. Gemeinsam mit size wird das gesamte Ausmaß des zu kopierenden Bereichs definiert. Die Werte x, y und z betragen standardmäßig 0, wenn origin 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/zu der die Daten kopiert werden.

Rückgabewert

Keiner (undefined).

Validierung

Die folgenden Bedingungen müssen erfüllt sein, wenn copyTextureToTexture() aufgerufen wird. Andernfalls wird ein GPUValidationError erzeugt und der GPUCommandEncoder wird ungültig.

Für die source:

  • Die GPUTexture.usage des source-Objekts muss das GPUTextureUsage.COPY_SRC-Flag enthalten.

Für die destination:

  • Die GPUTexture.usage des destination-Objekts muss das GPUTextureUsage.COPY_DST-Flag enthalten.

Für source und destination:

Beispiele

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

Spezifikationen

Spezifikation
WebGPU
# dom-gpucommandencoder-copytexturetotexture

Browser-Kompatibilität

Siehe auch