Spec-Zone.ru › Qt 6.0

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

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

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

Начиная с Qt 5.8, Qt Quick также поддерживает отрисовку в программном обеспечении и с помощью OpenVG. Это достигается за счёт дополнительных адаптаций графического дерева сцены, представленных в виде плагинов (openvg) или встроенных в библиотеку Qt Quick (программное обеспечение). По умолчанию адаптация продолжает работать непосредственно с 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 перед запуском приложения.
  • Использование API C++ — Вызовите 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 соответственно.

Примечание: Обычно адаптации, отличные от стандартной, имеют ряд ограничений, так как маловероятно, что они обеспечат функциональность, полностью совместимую с 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.0/qtquick-visualcanvas-adaptations.html

Spec-Zone.ru

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