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
importExternalTexture(descriptor) Parameter
descriptor-
Ein Objekt, das die folgenden Eigenschaften enthält:
colorSpaceOptional-
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ürcolorSpace"srgb". labelOptional-
Eine Zeichenfolge, die ein Label bereitstellt, das zur Identifizierung des Objekts verwendet werden kann, z. B. in
GPUError-Nachrichten oder Konsolenwarnungen. source-
Die
HTMLVideoElementoderVideoFrame-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:
GPUExternalTexture-Objekte mit einerHTMLVideoElement-Quelle verfallen, sobald sie verwendet werden (zum Beispiel in einer Bind-Gruppe).GPUExternalTexture-Objekte mit einerVideoFrame-Quelle verfallen nur, wenn dasVideoFramegeschlossen wird, zum Beispiel durch einenVideoFrame.close()-Aufruf.
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
SecurityErrorDOMException-
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:
// … 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
Loading…
Siehe auch
- Die WebGPU API