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:
colorSpaceOptional-
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". labelOptional-
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 dasVideoFramegeschlossen 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
SecurityErrorDOMException-
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
Loading…
Siehe auch
- Die WebGPU API