GPUCanvasContext: метод configure()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Экспериментальная версия: Это экспериментальная технология экспериментальная технология
Перед использованием в производстве тщательно проверьте таблицу совместимости браузеров таблицу совместимости браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Примечание: Эта функция доступна в рабочих потоках.
Метод configure() интерфейса GPUCanvasContext настраивает контекст для рендеринга с помощью заданного GPUDevice. При вызове холст первоначально очищается до прозрачного чёрного цвета.
Синтаксис
configure(configuration)
Параметры
configuration-
Объект, содержащий следующие свойства:
alphaModeНеобязательно-
Перечисление, определяющее влияние альфа-значений на содержимое текстур, возвращаемых методом
getCurrentTexture()при чтении, отображении или использовании в качестве источника изображения. Возможные значения:-
opaque: Значения альфа игнорируются — если текстура не является непрозрачной, канал альфа очищается до 1,0 при использовании в качестве источника изображения или отображении на экране. Это значение по умолчанию. -
premultiplied: Значения цвета умножаются на их альфа-значение. Например, 100% красный при 50% альфа — это[0.5, 0, 0, 0.5].
-
colorSpaceНеобязательно-
Цветовое пространство, в котором следует отображать значения, записанные в текстуры, возвращаемые
getCurrentTexture(). Возможные значения —srgb(значение по умолчанию) иdisplay-p3. device-
GPUDevice, откуда будет поступать информация для рендеринга контекста. format-
Формат текстур, возвращаемых
getCurrentTexture(). Может бытьbgra8unorm,rgba8unorm, илиrgba16float. Оптимальный формат текстуры холста для текущей системы можно получить с помощьюGPU.getPreferredCanvasFormat(). Рекомендуется использовать этот метод — если при настройке контекста холста вы не используете предпочтительный формат, это может привести к дополнительной нагрузке, такой как дополнительные копии текстур, в зависимости от платформы. toneMappingНеобязательно-
Объект, задающий параметры тональной коррекции для контекста — как отображать содержимое связанных текстур. Это позволяет WebGPU отображать цвета ярче, чем
white(#FFFFFF). Возможные свойства:modeНеобязательно-
Перечисление, определяющее режим тональной коррекции для холста. Возможные значения:
standard-
Значение по умолчанию. Ограничивает отображаемое содержимое стандартным динамическим диапазоном (SDR) дисплея. В этом режиме все значения цвета в цветовом пространстве экрана ограничены интервалом
[0, 1]. extended-
Разрешает отображение содержимого в полном динамическом диапазоне высокой яркости (HDR) дисплея, если он доступен. Режим HDR позволяет отображать более широкий диапазон цветов и уровней яркости с более точными инструкциями о том, какой цвет должен быть отображён в каждом случае. Этот режим соответствует
"standard"в диапазоне[0, 1]экрана. Ограничение или проекция выполняется до расширенного динамического диапазона экрана, но не[0, 1].
usageНеобязательно-
Битовые флаги, определяющие разрешённое использование текстур, возвращаемых
getCurrentTexture(). Возможные значения:-
GPUTextureUsage.COPY_SRC: Текстура может быть использована в качестве источника для операции копирования, например, аргумента source в вызовеGPUCommandEncoder.copyTextureToBuffer(). -
GPUTextureUsage.COPY_DST: Текстура может использоваться в качестве назначения для операции копирования/записи, например, аргумента destination в вызовеGPUCommandEncoder.copyTextureToTexture(). -
GPUTextureUsage.RENDER_ATTACHMENT: Текстура может использоваться как цветная прикреплённая область в проходе рендеринга, например, в представлении цветного прикрепления в вызовеGPUCommandEncoder.beginRenderPass().GPUTextureUsage.RENDER_ATTACHMENTявляется значением по умолчаниюusage, но обратите внимание, что оно не включается автоматически, если явно задано другое значение; в таких случаях его нужно включить дополнительно. -
GPUTextureUsage.TEXTURE_BINDING: Текстура может быть связана для использования в качестве текстуры с выборкой в шейдере, например, в записи группы связей в вызовеGPUDevice.createBindGroup(). -
GPUTextureUsage.STORAGE_BINDING: Текстура может быть связана для использования в качестве хранилища текстуры в шейдере, например, в записи группы связей в вызовеGPUDevice.createBindGroup().
Обратите внимание, что несколько возможных значений использования можно указать с помощью оператора побитового ИЛИ. Например,
usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.RENDER_ATTACHMENT. -
viewFormatsНеобязательно-
Массив форматов, которые могут использовать представления, созданные из текстур, возвращаемых
getCurrentTexture(). См. Форматы текстур для всех возможных значений.
Возвращаемое значение
Ничего (undefined).
Примеры
Основные примеры
const canvas = document.querySelector("#gpuCanvas");
const context = canvas.getContext("webgpu");
context.configure({
device: device,
format: navigator.gpu.getPreferredCanvasFormat(),
alphaMode: "premultiplied",
});
Демонстрации HDR toneMapping
См. пример Частицы (HDR) и тест поддержки HDR.
Спецификации
| Спецификация |
|---|
| WebGPU # dom-gpucanvascontext-configure |
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
configure |
113["В настоящее время поддерживается только на ChromeOS, macOS и Windows.", "Форматrgba8unorm в настоящее время не поддерживается на macOS. См. ошибку 40823053."] |
113["В настоящее время поддерживается только на ChromeOS, macOS и Windows.", "Форматrgba8unorm в настоящее время не поддерживается на macOS. См. ошибку 40823053."] |
превьюВ настоящее время поддерживается только на Linux и Windows. |
99["В настоящее время поддерживается только на ChromeOS, macOS и Windows.", "Форматrgba8unorm в настоящее время не поддерживается на macOS. См. ошибку 40823053."] |
превью | 121 | Нет | 81 | Нет | 25.0 | 121 |
toneMapping |
129В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
129В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 115В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 129В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | 86В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
Нет | Нет | 129В настоящее время поддерживается только на ChromeOS, macOS и Windows. |
См. также
- 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/GPUCanvasContext/configure