Sur cette page

Adaptations du graphe de scène

Adaptations du graphe de scène dans Qt Quick

Dans Qt 5.0, Qt Quick s'appuyait toujours sur OpenGL (OpenGL ES 2.0 ou OpenGL 2.0) pour analyser le graphe de scène et afficher les résultats sur une cible de rendu.

À partir de Qt 5.8, Qt Quick prend également en charge le rendu logiciel et le rendu via OpenVG. Cela est rendu possible grâce à des adaptations supplémentaires du graphe de scène, sous forme de plugins (openvg) ou intégrées à la bibliothèque Qt Quick (rendu logiciel). L'adaptation par défaut continue de s'appuyer directement sur OpenGL.

À partir de Qt 5.14, l'adaptation par défaut offre la possibilité d'effectuer le rendu via une couche d'abstraction graphique, l'interface matérielle de rendu Qt (RHI), fournie par le Qt GUI module. Lorsqu’elle est activée, aucun appel OpenGL direct n’est effectué. Au lieu de cela, le graphe de scène effectue le rendu à l’aide des API fournies par la couche d’abstraction, qui sont ensuite traduites en appels OpenGL, Vulkan, Metal ou Direct 3D. La gestion des shaders est également unifiée : il suffit d’écrire le code du shader une seule fois, de le compiler en SPIR-V, puis de le traduire dans le langage adapté aux différentes API graphiques.

À partir de Qt 6.0, le modèle de rendu basé sur la RHI est le modèle par défaut, et il n’existe aucune option permettant de revenir à l’utilisation directe d’OpenGL.

Basculer entre les adaptations dans votre application

Contrairement à software, le moteur de rendu basé sur RHI n’est pas une adaptation supplémentaire, mais est toujours intégré. À partir de Qt 6.0, il est toujours activé. Sur les plateformes où plusieurs API graphiques sont disponibles, le graphe de scène effectue un choix spécifique à la plateforme. Si cela n’est pas souhaité, les applications peuvent forcer l’utilisation d’une API graphique spécifique en définissant la variable d’environnement ` QSG_RHI_BACKEND ` ou via ` QQuickWindow::setGraphicsApi()` en combinaison avec ` QSGRendererInterface::GraphicsApi`.

Le passage à une autre adaptation peut s’effectuer de deux manières :

  • Utiliser une variable d’environnement : définissez la variable d’environnement QT_QUICK_BACKEND ou l’ancienne variable QMLSCENE_DEVICE avant de lancer les applications.
  • Utiliser une API C++ : appeler la fonction QQuickWindow::setSceneGraphBackend() dès le début de la fonction main() de l’application.

Les backends suivants sont pris en charge :

Pour déterminer quel backend est utilisé, vous pouvez activer la journalisation des informations de base sur le graphe de scène via la variable d’environnement ` QSG_INFO ` ou la catégorie de journalisation ` qt.scenegraph.general `. Cela entraîne l’affichage de certaines informations dans la sortie de débogage, lors du démarrage de l’application.

Remarque : dans les versions de Qt où OpenGL et Vulkan sont tous deux désactivés, l’adaptation par défaut est software. Cela ne s’applique toutefois pas à Windows ni à macOS, car ces plateformes ont toujours le support de Direct 3D ou de Metal, respectivement, activé.

Remarque : en règle générale , les adaptations autres que celle par défaut s'accompagnent d'un certain nombre de limitations, car elles sont peu susceptibles d'offrir un ensemble de fonctionnalités 100 % compatible avec OpenGL. Toutefois, ces adaptations peuvent présenter des avantages spécifiques dans certains domaines. Pour plus d'informations sur les différentes adaptations, reportez-vous aux sections ci-dessous.

Adaptation par défaut

Lorsque vous utilisez OpenGL directement, l’adaptation par défaut est capable de fournir l’ensemble complet des fonctionnalités d’ Qt Quick ie 2. Pour plus de détails, consultez la section Adaptation par défaut.

Adaptation logicielle

L'adaptation logicielle est un moteur de rendu alternatif pour Qt Quick 2 qui utilise le moteur de peinture raster pour rendre le contenu de l'arbre de scène. Pour plus de détails, voir « Adaptation logicielle ».

OpenVG

L'adaptation OpenVG est un moteur de rendu alternatif pour Qt Quick 2 qui rend le contenu de l’arborescence de scène à l’aide de commandes OpenVG afin de fournir des graphismes vectoriels et raster 2D accélérés par le matériel. Pour plus de détails, consultez la section « Adaptation OpenVG ».

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.