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

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.

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

Spezifikation
WebGPU
# dom-gpudevice-importexternaltexture

Browser-Kompatibilität

Siehe auch