Spec-Zone.ru › Web APIs

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API