GPUDevice: importExternalTexture() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
title: "GPUDevice: importExternalTexture()-Methode" short-title: importExternalTexture() slug: Web/API/GPUDevice/importExternalTexture page-type: web-api-instance-method status:
- experimental browser-compat: api.GPUDevice.importExternalTexture
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
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 folgende 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 er weggelassen wird, istcolorSpace
standardmäßig"srgb"
. label
Optional-
Ein String, der eine Bezeichnung bereitstellt, die verwendet werden kann, um das Objekt zu identifizieren, zum Beispiel in
GPUError
-Nachrichten oder Konsolenwarnungen. source
-
Die
HTMLVideoElement
oderVideoFrame
Quelle des Videoschnappschusses.
Rückgabewert
Eine Instanz des GPUExternalTexture
-Objekts.
Beachten Sie, dass der Zeitpunkt, zu 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 Bindgruppe).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
erzeugt und ein ungültiges GPUExternalTexture
-Objekt zurückgegeben:
- Der Videoschnappschuss muss verwendbar sein (z.B. die Videoquelle muss ordnungsgemäß 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 Bindgruppeneintrags resource
verwendet, der beim Erstellen einer GPUBindGroup
über einen GPUDevice.createBindGroup()
-Aufruf angegeben 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
BCD tables only load in the browser
Siehe auch
- Die WebGPU API