GPUDevice: importExternalTexture()-Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
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:
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 weggelassen, ist der Standardwert fürcolorSpace
"srgb"
. label
Optional-
Ein String, der ein Label bereitstellt, das benutzt werden kann, um das Objekt zu identifizieren, zum Beispiel in
GPUError
-Nachrichten oder Konsolenwarnungen. source
-
Die Quelle des Videoschnappschusses:
HTMLVideoElement
oderVideoFrame
.
Rückgabewert
Eine Instanz des GPUExternalTexture
-Objekts.
Beachten Sie, dass der Moment des Ablaufs (Zerstörung) des GPUExternalTexture
-Objekts davon abhängt, was seine Quelle ist:
GPUExternalTexture
-Objekte mit einerHTMLVideoElement
-Quelle laufen ab, sobald sie verwendet werden (z.B. in einer Bind-Gruppe).GPUExternalTexture
-Objekte mit einerVideoFrame
-Quelle laufen nur ab, wenn dasVideoFrame
geschlossen wird, zum Beispiel durch einen Aufruf vonVideoFrame.close()
.
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 Videoframe muss nutzbar sein (z.B. die Videoquelle muss ordentlich 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 Bind-Gruppen-Entries 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
Siehe auch
- Die WebGPU API