GPUDevice: importExternalTexture() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.


title: "GPUDevice: importExternalTexture()-Methode" short-title: importExternalTexture() slug: Web/API/GPUDevice/importExternalTexture page-type: web-api-instance-method status:

  • experimental browser-compat: api.GPUDevice.importExternalTexture

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die importExternalTexture()-Methode der GPUDevice-Schnittstelle nimmt ein HTMLVideoElement oder ein VideoFrame-Objekt als Eingabe und gibt ein GPUExternalTexture-Wrapper-Objekt zurück, das einen Schnappschuss des Videos enthält, der als Frame in GPU-Rendering-Operationen verwendet werden kann.

Syntax

js
importExternalTexture(descriptor)

Parameter

descriptor

Ein Objekt, das folgende Eigenschaften enthält:

colorSpace Optional

Ein enumerierter Wert, der den Farbraum angibt, der für den Videoframe verwendet werden soll. Mögliche Werte sind "srgb" und "display-p3". Wenn er weggelassen wird, ist colorSpace standardmäßig "srgb".

label Optional

Ein String, der eine Bezeichnung bereitstellt, die verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in GPUError-Nachrichten oder Konsolenwarnungen.

source

Die HTMLVideoElement oder VideoFrame Quelle des Videoschnappschusses.

Rückgabewert

Eine Instanz des GPUExternalTexture-Objekts.

Beachten Sie, dass der Zeitpunkt, zu dem das GPUExternalTexture-Objekt abläuft (zerstört wird), davon abhängt, was seine Quelle ist:

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn importExternalTexture() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und ein ungültiges GPUExternalTexture-Objekt zurückgegeben:

  • Der Videoschnappschuss muss verwendbar sein (z.B. die Videoquelle muss ordnungsgemäß geladen sein und darf keine Breite oder Höhe von 0 haben).

Ausnahmen

SecurityError DOMException

Wird ausgelöst, wenn die Videodatenquelle Cross-Origin ist.

Beispiele

Im WebGPU-Beispiel Video Uploading sample wird ein importExternalTexture()-Aufruf als Wert eines Bindgruppeneintrags resource verwendet, der beim Erstellen einer GPUBindGroup über einen GPUDevice.createBindGroup()-Aufruf angegeben wird:

js
//...

const uniformBindGroup = device.createBindGroup({
  layout: pipeline.getBindGroupLayout(0),
  entries: [
    {
      binding: 1,
      resource: sampler,
    },
    {
      binding: 2,
      resource: device.importExternalTexture({
        source: video,
      }),
    },
  ],
});

//...

Spezifikationen

Specification
WebGPU
# dom-gpudevice-importexternaltexture

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch