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 Snapshot des Videos enthält, der als Frame in GPU-Rendering-Operationen verwendet werden kann.
Syntax
importExternalTexture(descriptor)
Parameter
descriptor
-
Ein Objekt mit den folgenden Eigenschaften:
colorSpace
Optional-
Ein enumerierter Wert, der den Farbraum spezifiziert, der für den Videoframe verwendet werden soll. Mögliche Werte sind
"srgb"
und"display-p3"
. Wenn er weggelassen wird, ist der Standardwert fürcolorSpace
"srgb"
. label
Optional-
Ein String, der eine Bezeichnung zur Verfügung stellt, um das Objekt zu identifizieren, beispielsweise in
GPUError
-Meldungen oder Konsolenwarnungen. source
-
Die Quelle des Video-Snapshots, ein
HTMLVideoElement
oderVideoFrame
.
Rückgabewert
Eine Instanz des GPUExternalTexture
-Objekts.
Beachten Sie, dass der Moment, in dem das GPUExternalTexture
-Objekt abläuft (zerstört wird), 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 derVideoFrame
geschlossen wird, z.B. durch einenVideoFrame.close()
-Aufruf.
Validierung
Folgende Kriterien müssen erfüllt sein, wenn importExternalTexture()
aufgerufen wird, andernfalls wird ein GPUValidationError
generiert und ein ungültiges GPUExternalTexture
-Objekt zurückgegeben:
- Der Videosnapshot muss verwendbar sein (z.B. die Videoquelle ist korrekt geladen und hat keine Breite oder Höhe von 0).
Ausnahmen
SecurityError
DOMException
-
Wird ausgelöst, wenn die Videodatenquelle eine Cross-Origin-Ressource ist.
Beispiele
Im WebGPU-Beispiel Video Uploading Sample wird ein importExternalTexture()
-Aufruf als Wert eines Bind-Gruppen-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
Siehe auch
- Die WebGPU API