Spec-Zone.ru › Web APIs

GPURenderPassEncoder: метод setViewport()

Ограниченное использование

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

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

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

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

Примечание: Эта функция доступна в Web Workers.

Метод setViewport() интерфейса GPURenderPassEncoder устанавливает область просмотра, используемую на стадии растрирования, для линейного отображения от нормализованных координат устройства до координат области просмотра.

Синтаксис

setViewport(x, y, width, height, minDepth, maxDepth)

Параметры

x

Число, представляющее минимальное значение X области просмотра в пикселях.

y

Число, представляющее минимальное значение Y области просмотра в пикселях.

width

Число, представляющее ширину области просмотра в пикселях.

height

Число, представляющее высоту области просмотра в пикселях.

minDepth

Число, представляющее минимальное значение глубины области просмотра.

maxDepth

Число, представляющее максимальное значение глубины области просмотра.

Примечание: Если вызов setViewport() не выполнен, для каждого прохода рендеринга используются значения по умолчанию (0, 0, attachment width, attachment height, 0, 1).

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

None (Undefined).

Валидация

При вызове setViewport() должны быть соблюдены следующие критерии; в противном случае генерируется ошибка GPUValidationError, и GPURenderPassEncoder становится недействительным:

  • x, y, width, и height должны быть больше или равны 0.
  • x + width должно быть меньше или равно ширине прикреплений рендеринга прохода рендеринга (см. примечание ниже).
  • y + height должно быть меньше или равно высоте прикреплений рендеринга прохода рендеринга (см. примечание ниже).
  • minDepth и maxDepth должны находиться в диапазоне от 0,0 до 1,0 включительно.
  • minDepth должно быть меньше maxDepth.

Примечание: Обратите внимание на цвет и глубину/маску, указанные в описателе GPUCommandEncoder.beginRenderPass(); ширина и высота основаны на ширине и высоте GPUTexture, из которых происходят их view.

Примеры

Базовый пример

В типичном рендеринге на холсте можно использовать следующий код, чтобы уменьшить ширину и высоту рендерируемой графики вдвое:

passEncoder.setViewport(0, 0, canvas.width / 2, canvas.height / 2, 0, 1);

В контексте

В примере WebGPU Samples reversedZ, setViewport используется несколько раз для установки области просмотра для разных проходов рендеринга. Изучите пример кода для полного контекста.

Например:

// ...

colorPass.setViewport(
  (canvas.width * m) / 2,
  0,
  canvas.width / 2,
  canvas.height,
  0,
  1,
);

// ...

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

Спецификация
WebGPU
# dom-gpurenderpassencoder-setviewport

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

Рабочие столы Мобильные устройства
Хром Эдж Фаерфокс Опера Сафари Хром Android Фаерфокс для Android Опера Android Сафари на iOS Samsung Internet WebView Android
setViewport
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/GPURenderPassEncoder/setViewport

Spec-Zone.ru

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