Spec-Zone.ru › Qt

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

Адаптации графического дерева сцены в 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 соответственно.

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

Spec-Zone.ru

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