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

View in English Always switch to English

GPUDevice: importExternalTexture() 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.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

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 die folgenden Eigenschaften enthält:

colorSpace Optional

Ein enumerierter Wert, der den Farbraum angibt, der für den Video-Frame verwendet werden soll. Mögliche Werte sind "srgb" und "display-p3". Wenn weggelassen, ist der Standardwert für colorSpace "srgb".

label Optional

Eine Zeichenfolge, die ein Label bereitstellt, das zur Identifizierung des Objekts verwendet werden kann, z. B. in GPUError-Nachrichten oder Konsolenwarnungen.

source

Die HTMLVideoElement oder VideoFrame-Quelle des Video-Schnappschusses.

Rückgabewert

Eine Instanz des GPUExternalTexture-Objekts.

Beachten Sie, dass der Zeitpunkt, wann das GPUExternalTexture-Objekt verfällt (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 Video-Schnappschuss ist verwendbar (z. B. die Videoquelle ist ordnungsgemäß geladen und hat keine Breite oder Höhe von 0).

Ausnahmen

SecurityError DOMException

Wird ausgelöst, wenn die Videoquelldaten cross-origin sind.

Beispiele

Im WebGPU-Beispiel Video Uploading sample wird ein importExternalTexture()-Aufruf als Wert eines Bind-Gruppe-Eintrags resource verwendet, der beim Erstellen einer GPUBindGroup über einen GPUDevice.createBindGroup()-Aufruf spezifiziert 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

Siehe auch