Spec-Zone.ru › Web APIs

GPUCommandEncoder: метод copyTextureToTexture()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная функция: Это экспериментальная технология
Перед использованием в производственной среде внимательно проверьте таблицу совместимости с браузерами.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Метод copyTextureToTexture() интерфейса GPUCommandEncoder кодирует команду, копирующую данные из одной GPUTexture в другую.

Синтаксис

copyTextureToTexture(source, destination, copySize)

Параметры

source

Объект (см. Структура объекта копирования текстуры), определяющий текстуру, из которой копируются данные. В сочетании с copySize он определяет область подресурса исходной текстуры.

destination

Объект (см. Структура объекта копирования текстуры), определяющий текстуру, в которую записываются данные. В сочетании с copySize он определяет область подресурса целевой текстуры.

copySize

Объект или массив, определяющий ширину, высоту и глубину/количество слоев массива копируемых данных. Ширина всегда должна быть указана, а высота и глубина/количество слоев массива — необязательны и по умолчанию равны 1, если не указаны.

Вот пример массива copySize:

[16, 16, 2];

Эквивалентный объект выглядит так:

{
  width: 16,
  height: 16,
  depthOrArrayLayers: 2
}

Структура объекта копирования текстуры

Объект копирования текстуры имеет следующую структуру:

aspect Необязательно

Перечисление, определяющее, какие аспекты текстуры копировать. Возможные значения:

"all"

Будут скопированы все доступные аспекты формата текстуры, что может означать все или любые из цветового, глубины и трафарета в зависимости от типа формата.

"depth-only"

Будет скопирован только аспект глубины формата глубины или трафарета.

"stencil-only"

Будет скопирован только аспект трафарета формата глубины или трафарета.

Если не указано, aspect принимает значение "all".

mipLevel Необязательно

Число, представляющее уровень mip-маски текстуры для копирования данных. Если не указано, mipLevel по умолчанию равен 0.

origin Необязательно

Объект или массив, определяющий начало копирования/назначения — крайнюю нижнюю точку области текстуры для копирования данных. Вместе с size он определяет весь объём области для копирования. Значения x, y и z по умолчанию равны 0, если какой-либо или все origin не указаны.

Пример массива:

[0, 0, 0];

Эквивалентный объект:

{
  x: 0,
  y: 0,
  z: 0
}
texture

Объект GPUTexture, представляющий текстуру для копирования данных.

Возвращаемое значение

Ничего (Undefined).

Проверка

При вызове copyTextureToTexture() должны быть соблюдены следующие критерии, в противном случае генерируется GPUValidationError, и GPUCommandEncoder становится недействительным.

Для source:

  • source's GPUTexture.usage включает флаг GPUTextureUsage.COPY_SRC.

Для destination:

  • source's GPUTexture.usage включает флаг GPUTextureUsage.COPY_DST.

Для source и destination:

  • mipLevel меньше, чем GPUTexture.mipLevelCount.
  • origin.x кратно ширине блока текселей GPUTexture.format.
  • origin.y кратно высоте блока текселей GPUTexture.format.
  • Исходная и целевая texture GPUTexture.format совместимы для копирования.
  • Исходная и целевая texture GPUTexture.sampleCount равны.
  • Если GPUTexture.format — формат глубины или трафарета или GPUTexture.sampleCount больше 1, размер подресурса равен size.
  • texture's GPUTexture.sampleCount равно 1.
  • aspect ссылается на один аспект GPUTexture.format.
  • Этот аспект является допустимым источником/назначением копирования изображения в соответствии с форматами глубины или трафарета.
  • texture совместим с copySize.

Примеры

commandEncoder.copyTextureToTexture(
  {
    texture: sourceTexture,
  },
  {
    texture: destinationTexture,
  },
  {
    width: 16,
    height: 16,
    depthOrArrayLayers: 2,
  },
);

Спецификации

Спецификация
WebGPU
# dom-gpucommandencoder-copytexturetotexture

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
copyTextureToTexture
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
113В настоящее время поддерживается только на ChromeOS, macOS и Windows.
предварительная версияВ настоящее время поддерживается только на Linux и Windows.
99В настоящее время поддерживается только на 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/GPUCommandEncoder/copyTextureToTexture

Spec-Zone.ru

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