Spec-Zone.ru › Qt 6.1

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

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

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

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

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

Начиная с Qt 6.0, модель рендеринга на основе RHI является стандартной, и нет возможности вернуться к прямому использованию OpenGL.

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

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

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

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

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

  • По умолчанию - Запрос со строкой "rhi" или значением перечисления QSGRendererInterface::GraphicsApi, отличным от указанных ниже.
  • Программный - Запрос со строкой "software" или значением перечисления QSGRendererInterface::Software.
  • OpenVG - Запрос со строкой "openvg" или значением перечисления QSGRendererInterface::OpenVG.

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

Примечание: В сборках Qt, где OpenGL и Vulkan отключены, адаптация по умолчанию - software. Однако это не относится к Windows или macOS, так как на этих платформах всегда поддерживаются Direct 3D или Metal соответственно.

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

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

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

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

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

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-6.1/qtquick-visualcanvas-adaptations.html

Spec-Zone.ru

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