Sur cette page

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 en utilisant les commandes OpenVG pour fournir des graphiques vectoriels et matriciels 2D 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'y a pas de support intégré pour acquérir un contexte OpenVG. Cela signifie que le moteur de rendu est responsable de la demande et de la gestion du contexte actuel. Pour ce faire, vous utilisez EGL directement dans le moteur de rendu OpenVG. Par conséquent, le moteur de rendu OpenVG ne peut être utilisé qu'avec des plugins de plateforme qui permettent de créer des QWindows avec le support de 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 le contenu OpenVG.

Rendu

Le moteur de rendu OpenVG utilise l'API OpenVG pour envoyer des commandes et des données à un GPU vectoriel qui rend le graphique de la scène de manière accélérée, en déchargeant le CPU du rendu graphique. De nombreuses opérations, comme le rendu des rectangles et des glyphes de police, sont idéales pour 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 typiquement 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), le sous-arbre de la scène est rendu dans une VGImage qui peut être réutilisée dans la scène.

Boucle de rendu

Le moteur de rendu OpenVG reflète 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, voir Qt Quick Scene Graph.

Effets de shaders

ShaderEffect Les composants de QtQuick 2 ne peuvent pas être rendus par l'adaptation OpenVG. Bien qu'il soit possible d'utiliser ShaderEffectSource et QML Item Layers (qui sont tous deux des surfaces hors écran), il n'est pas possible de leur appliquer des effets de shaders via l'élément ShaderEffect. Ceci est dû au fait qu'OpenVG n'a pas d'API pour appliquer des opérations de shaders par vertex et par fragment. Cependant, vous pouvez tirer parti des opérations de filtre d'image dans l'API OpenVG pour obtenir des effets similaires à ceux que ShaderEffects fournit 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 traitement, même si elles ne sont pas visibles.

Rendu de texte

Le rendu du texte avec l'adaptation OpenVG est basé sur le rendu des chemins des glyphes, et n'utilise pas la technique des champs de distance, contrairement au backend OpenGL.

Transformations de la perspective

L'API OpenVG ne permet pas de transformer les chemins avec des transformations non affines, mais c'est possible avec Qt Quick. En conséquence, lorsque vous rendez des composants utilisant des chemins comme des rectangles et du texte tout en appliquant des transformations de perspective, le backend OpenVG rend d'abord vers une VGImage avant d'appliquer les transformations. Ce comportement utilise plus de mémoire au moment 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.