GPUDevice: importExternalTexture() метод
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Экспериментальная функция: Это экспериментальная технология
Внимательно проверьте таблицу совместимости браузеров таблица совместимости браузеров перед использованием в производстве.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в Web Workers.
Метод importExternalTexture() интерфейса GPUDevice принимает объект HTMLVideoElement или VideoFrame в качестве входных данных и возвращает объект-обёртку GPUExternalTexture, содержащий моментальный снимок видео, который можно использовать в качестве кадра в операциях рендеринга в GPU.
Синтаксис
importExternalTexture(descriptor)
Параметры
descriptor-
Объект, содержащий следующие свойства:
colorSpaceНеобязательно-
Перечисление, определяющее цветовое пространство для кадра видео. Возможные значения:
"srgb"и"display-p3". Если опущено, значение по умолчаниюcolorSpace-"srgb". labelНеобязательно-
Строка, предоставляющая метку, которая может быть использована для идентификации объекта, например, в сообщениях
GPUErrorили предупреждениях консоли. source-
Источник видео снимка,
HTMLVideoElementилиVideoFrame.
Возвращаемое значение
Экземпляр объекта GPUExternalTexture.
Обратите внимание, что момент истечения срока действия (удаления) объекта GPUExternalTexture зависит от источника:
- Объекты
GPUExternalTextureсо ссылкой наHTMLVideoElementистекают, как только они используются (например, в группе связей). - Объекты
GPUExternalTextureсо ссылкой наVideoFrameистекают только когдаVideoFrameзакрыт, например, через вызовVideoFrame.close().
Проверка
При вызове importExternalTexture() должны быть соблюдены следующие условия, в противном случае генерируется GPUValidationError и возвращается недопустимый объект GPUExternalTexture:
- Моментальный снимок видео должен быть пригоден к использованию (например, источник видео загружен правильно и не имеет ширины или высоты 0).
Исключения
-
SecurityErrorDOMException -
Генерируется, если данные источника видео находятся в другом домене.
Примеры
В примере WebGPU загрузки видео вызов importExternalTexture() используется в качестве значения для записи группы связей resource, когда создается GPUBindGroup с помощью вызова GPUDevice.createBindGroup():
//...
const uniformBindGroup = device.createBindGroup({
layout: pipeline.getBindGroupLayout(0),
entries: [
{
binding: 1,
resource: sampler,
},
{
binding: 2,
resource: device.importExternalTexture({
source: video,
}),
},
],
});
//...
Спецификации
| Спецификация |
|---|
| WebGPU # dom-gpudevice-importexternaltexture |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
importExternalTexture |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
113В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версияВ настоящее время поддерживается только на Linux и Windows. |
99В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версия | 121 | Нет | 81 | Нет | 25.0 | 121 |
color_space_display-p3 |
121В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
121В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 107В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 121 | Нет | 81 | Нет | 25.0 | 121 |
videoframe_source |
116В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
116В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 102В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
предварительная версия | 121 | Нет | 81 | Нет | 25.0 | 121 |
См. также
- API WebGPU
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/GPUDevice/importExternalTexture