Spec-Zone.ru › Qt 5.15

Адаптации графического представления сцены

Адаптации графического представления сцены в Qt Quick

Изначально Qt Quick всегда полагался на OpenGL (OpenGL ES 2.0 или OpenGL 2.0) для анализа графического представления сцены и рендеринга результатов на целевом изображении

Начиная с Qt 5.8, Qt Quick также поддерживает рендеринг в программном обеспечении с помощью OpenVG и Direct3D 12. Это реализуется с помощью дополнительных адаптаций графического представления сцены, либо в виде плагинов (d3d12, openvg), либо встроенных в библиотеку Qt Quick (software). По умолчанию адаптация по-прежнему использует OpenGL напрямую.

Начиная с Qt 5.14, адаптация по умолчанию приобретает возможность рендеринга с помощью абстрактного уровня графики — Qt Rendering Hardware Interface (RHI), предоставляемого модулем QtGui. При включении прямые вызовы OpenGL не выполняются. Вместо этого графическое представление сцены рендерится с использованием API, предоставляемых абстрактным уровнем, который затем преобразуется в вызовы OpenGL, Vulkan, Metal или Direct3D. Обработка шейдеров также унифицирована путем написания кода шейдеров один раз, компиляции в SPIR-V, а затем преобразования в язык, соответствующий различным API графики.

Переключение между адаптациями в вашем приложении

В отличие от software или d3d12, RHI-базированный рендерер не является дополнительной адаптацией и всегда встроен. Начиная с Qt 5.14, его можно включить, задав переменную окружения QSG_RHI с ненулевым значением перед запуском приложения или через QQuickWindow::setSceneGraphBackend() в сочетании с QSGRendererInterface::GraphicsApi. Если ничего из этого не сделано, используется OpenGL напрямую, как и в предыдущих версиях.

Переключение на другую адаптацию можно выполнить двумя способами:

  • Использование переменной окружения — Установите QT_QUICK_BACKEND или устаревшую переменную окружения QMLSCENE_DEVICE перед запуском приложений.
  • Использование API C++ — Вызовите QQuickWindow::setSceneGraphBackend() на ранней стадии в функции main() приложения.

Поддерживаются следующие бэкэнды:

  • По умолчанию — Запрос с помощью строки "" или значения перечисления QSGRendererInterface::GraphicsApi, отличного от указанных ниже.
  • Программное обеспечение — Запрос с помощью строки "software" или значения перечисления QSGRendererInterface::Software.
  • Direct3D 12 — Запрос с помощью строки "d3d12" или значения перечисления QSGRendererInterface::Direct3D12.
  • OpenVG — Запрос с помощью строки "openvg" или значения перечисления QSGRendererInterface::OpenVG.

Чтобы узнать, какой бэкэнд используется, можно включить протоколирование базовой информации о графическом представлении сцены с помощью переменной окружения QSG_INFO или категории протоколирования qt.scenegraph.general. В результате на вывод отладки будет выведена некоторая информация во время запуска приложения.

Примечание: В сборках Qt с отключенным OpenGL адаптация по умолчанию — software. Это может измениться в будущих выпусках.

Примечание: Обычно адаптации, отличные от адаптации по умолчанию, имеют ряд ограничений, так как они вряд ли предоставят набор функций, на 100% совместимый с OpenGL. Однако эти адаптации могут предоставить свои собственные преимущества в определенных областях. Для получения дополнительной информации о различных адаптациях см. разделы ниже.

Адаптация по умолчанию

При непосредственном использовании OpenGL адаптация по умолчанию способна предоставить полный набор функций Qt Quick 2. Для получения более подробной информации см. Адаптация по умолчанию.

При использовании OpenGL, Vulkan, Metal или Direct3D через RHI адаптация по умолчанию способна предоставить большинство функций, включая полный рендерер группирования, описанный в Адаптация по умолчанию, но некоторые дополнительные функции могут быть недоступны на данный момент в Qt 5.14.

Адаптация программного обеспечения

Адаптация программного обеспечения — это альтернативный рендерер для Qt Quick 2, использующий движок растеризации для рендеринга содержимого графического представления сцены. Для получения более подробной информации см. Адаптация программного обеспечения.

Direct3D 12 (экспериментальная версия)

Адаптация Direct3D 12 — это альтернативный рендерер для Qt Quick 2 при работе в Windows 10, как для приложений Win32, так и для UWP-приложений. Для получения более подробной информации см. Адаптация Direct3D 12.

OpenVG

Адаптация OpenVG — это альтернативный рендерер для Qt Quick 2, который рендерит содержимое графического представления сцены с помощью команд OpenVG для предоставления ускоренной графики 2D-векторов и растровой графики. Для получения более подробной информации см. Адаптация OpenVG.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qtquick-visualcanvas-adaptations.html

Spec-Zone.ru

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