QQuickWindow::GraphicsStateInfo Struct
struct QQuickWindow::GraphicsStateInfoDécrit certains aspects de l'état graphique de RHI au moment d'un appel à la fonction ` beginExternalCommands()`. En savoir plus...
Variables publiques
| int | currentFrameSlot |
| int | framesInFlight |
Documentation sur les variables membres
int GraphicsStateInfo::currentFrameSlot
Cette variable contient l'index de l'emplacement de l'image en cours lors de l'enregistrement d'une image.
Lorsque le graphe de scène est rendu à l’aide d’API 3D de bas niveau telles que Vulkan ou Metal, il incombe à Qt d’assurer le blocage à chaque démarrage d’une nouvelle image et de vérifier que le CPU a déjà une avance d’un certain nombre d’images sur le GPU (car le tampon de commandes soumis à l’image n° current - FramesInFlight n’est pas encore terminé). Avec d’autres API graphiques, telles qu’OpenGL ou Direct 3D 11, ce niveau de contrôle n’est pas exposé au client de l’API, mais est plutôt géré par l’implémentation de l’API graphique.
Par extension, cela signifie également que la gestion du double (ou triple) tamponnement des ressources, telles que les tampons, incombe au client de l’API graphique. Le plus souvent, un tampon uniforme dont les données changent d’une image à l’autre ne peut pas simplement modifier son contenu lors de la soumission d’une image, étant donné que celle-ci peut encore être active (« en cours de traitement ») au moment où l’enregistrement de l’image suivante commence. Pour éviter de bloquer le pipeline, une solution consiste à disposer de plusieurs tampons (et allocations de mémoire) en arrière-plan, mettant ainsi en œuvre au moins un schéma de double tampon pour ces ressources.
Les applications qui intègrent un rendu effectué directement via une API graphique telle que Vulkan peuvent souhaiter mettre en œuvre un double ou triple tampon similaire pour leurs propres ressources graphiques, d’une manière compatible avec le processus de soumission des images du moteur de rendu Qt. Cela implique alors de connaître les valeurs du nombre maximal d’images en cours de traitement (généralement 2 ou 3) et de l’index actuel de l’emplacement d’image, qui est un nombre allant de 0, 1, …, FramesInFlight-1, puis recommençant depuis le début. La première valeur est accessible via la variable ` framesInFlight `. La seconde, l’index actuel, correspond à cette valeur.
Pour voir un exemple d’utilisation concrète de ces valeurs, consultez les exemples {Scene Graph - Vulkan Under QML} et {Scene Graph - Vulkan Texture Import}.
int GraphicsStateInfo::framesInFlight
Cette variable contient le nombre maximal de trames conservées en vol.
Pour une description détaillée, consultez currentFrameSlot.
© 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.