Qt Quick Adaptation OpenVG
L'adaptation OpenVG est un moteur de rendu alternatif pour Qt Quick 2 qui rend le contenu du graphe de scène à l’aide de commandes OpenVG afin de fournir des graphismes 2D vectoriels et matriciels accélérés par le matériel. Tout comme l’adaptation logicielle, certaines fonctionnalités et optimisations ne sont plus disponibles. La plupart des applications « Qt Quick 2 » fonctionneront sans modification, mais toute tentative d’utilisation de fonctionnalités non prises en charge sera ignorée.
Exigence EGL
Contrairement au moteur de rendu OpenGL par défaut, il n’existe pas de prise en charge intégrée pour obtenir un contexte OpenVG. Cela signifie que le moteur de rendu est chargé de demander et de gérer le contexte actuel. Pour ce faire, vous utilisez directement EGL dans le moteur de rendu OpenVG. Par conséquent, le moteur de rendu OpenVG ne peut être utilisé qu’avec des plugins de plateforme prenant en charge la création de QWindows compatibles avec QSurfaceFormat::OpenVG. À partir de cette fenêtre, le moteur de rendu peut obtenir une EGLSurface qui peut ensuite être utilisée avec un EGLContext pour rendre du contenu OpenVG.
Rendu
Le moteur de rendu OpenVG utilise l’API OpenVG pour envoyer des commandes et des données à un GPU vectoriel qui effectue le rendu du graphe de scène de manière accélérée, déchargeant ainsi le CPU du rendu graphique. De nombreuses opérations, telles que le rendu de rectangles et de glyphes de polices, sont parfaitement adaptées à OpenVG car elles peuvent être représentées sous forme de chemins qui sont tracés et remplis. Le rendu des éléments du graphe de scène qui impliqueraient généralement des textures est géré dans le moteur de rendu OpenVG à l’aide de VGImage. De plus, lorsque vous effectuez un rendu sur des surfaces hors écran (comme avec les couches), la sous-arborescence de la scène est rendue dans un VGImage qui peut être réutilisé dans la scène.
Boucle de rendu
Le moteur de rendu OpenVG reproduit le comportement de la boucle de rendu Basic et exécute toutes les commandes OpenVG dans un seul thread.
Pour plus d’informations sur les boucles de rendu, consultez la section « Graphique de scène » deQt Quick .
Effets de shader
ShaderEffect Les composants d’ QtQuick 2 ne peuvent pas être rendus par l’adaptation OpenVG. Bien qu’il soit possible d’utiliser des calques d’éléments ( ShaderEffectSource ) et des calques d’éléments QML (QML Item Layers) (qui sont tous deux des surfaces hors écran), il n’est pas possible de leur appliquer des effets de shader via l’élément « ShaderEffect ». Cela s’explique par le fait qu’OpenVG ne dispose pas d’une API permettant d’appliquer des opérations de shader par sommet et par fragment. Cependant, vous pouvez éventuellement tirer parti des opérations de filtrage d’image (Image Filter) de l’API OpenVG pour obtenir des effets similaires à ceux fournis par ShaderEffects dans les éléments personnalisés. Pour intégrer un rendu OpenVG personnalisé, utilisez QSGRenderNode en combinaison avec QSGRendererInterface.
Effets de particules
Il n'est pas possible de rendre des effets de particules avec l'adaptation OpenVG. Dans la mesure du possible, supprimez complètement les particules de la scène. Sinon, elles nécessiteront toujours un certain traitement, même si elles ne sont pas visibles.
Rendu du texte
Le rendu du texte avec l’adaptation OpenVG repose sur le rendu des chemins des glyphes et n’utilise pas la technique des champs de distance, contrairement au backend OpenGL.
Transformations de perspective
L'API OpenVG ne permet pas de transformer les chemins à l'aide de transformations non affines, mais cela est possible avec Qt Quick. Par conséquent, lorsque vous affichez des composants utilisant des chemins, tels que les rectangles et le texte, tout en appliquant des transformations de perspective, le backend OpenVG effectue d'abord le rendu dans un VGImage avant d'appliquer les transformations. Ce comportement consomme davantage de mémoire lors de l’exécution et prend plus de temps ; évitez-le si possible.
© 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.