Spec-Zone.ru › Qt 5.14

Адаптации графа сцены

Адаптации графа сцены в Qt Quick

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

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

Начиная с Qt 5.14, адаптация по умолчанию получает возможность рендеринга с помощью уровня абстракции графики — интерфейса аппаратного обеспечения для рендеринга Qt (RHI), предоставляемого модулем QtGui. При включенном режиме прямые вызовы OpenGL не выполняются. Вместо этого граф сцены выполняет рендеринг с использованием API, предоставляемых уровнем абстракции, который затем преобразуется в вызовы OpenGL, Vulkan, Metal или Direct 3D. Обработка шейдеров также унифицирована путем написания кода шейдеров один раз, компиляции в 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 или Direct 3D через 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.14/qtquick-visualcanvas-adaptations.html

Spec-Zone.ru

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