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
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
| Spezifikation |
|---|
| WebGPU> # dom-gpudevice-importexternaltexture> |
Browser-Kompatibilität
Siehe auch
- Die WebGPU API