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:
colorSpace
Optional-
Ein enumerierter Wert, der den Farbraum für den Videoframe angibt. Mögliche Werte sind
"srgb"
und"display-p3"
. Wenn ausgelassen, ist der Standardwert fürcolorSpace
"srgb"
. label
Optional-
Ein String, der ein Label bereitstellt, das zur Identifizierung des Objekts dienen kann, zum Beispiel in
GPUError
-Meldungen oder Konsolenwarnungen. source
-
Die
HTMLVideoElement
- oderVideoFrame
-Quelle des Video-Schnappschusses.
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 (zum Beispiel in einer Bind-Gruppe).GPUExternalTexture
-Objekte mit einerVideoFrame
-Quelle laufen erst 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
generiert und ein ungültiges GPUExternalTexture
-Objekt zurückgegeben:
- Der Video-Schnappschuss muss verwendbar sein (z. B. die Videoquelle ist ordnungsgemäß geladen und hat nicht die Breite oder Höhe von 0).
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-Eintrags resource
verwendet, der bei der Erstellung 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