Sur cette page

QQuickWindow::GraphicsStateInfo Struct

struct QQuickWindow::GraphicsStateInfo

Décrit certains états graphiques du RHI au moment de l'appel à beginExternalCommands(). Plus d'informations...

Variables publiques

Description détaillée

Documentation des variables membres

int GraphicsStateInfo::currentFrameSlot

Cette variable contient l'index du slot de l'image actuelle lors de l'enregistrement d'une image.

Lorsque le scenegraph effectue un rendu avec des API 3D de niveau inférieur telles que Vulkan ou Metal, il incombe à Qt 3D d'assurer le blocage chaque fois que l'on démarre une nouvelle image et que l'on constate que le CPU a déjà un certain nombre d'images d'avance sur le GPU (parce que le tampon de commande soumis dans l'image n° current - FramesInFlight ne s'est pas encore terminé). Avec d'autres API graphiques, comme OpenGL ou Direct 3D 11, ce niveau de contrôle n'est pas exposé au client de l'API, mais plutôt géré par l'implémentation de l'API graphique.

Par extension, cela signifie également que la double (ou triple) mise en mémoire tampon appropriée des ressources, telles que les tampons, doit être gérée par le client de l'API graphique. Le plus souvent, un tampon uniforme dont les données changent entre les images ne peut pas simplement modifier son contenu lors de la soumission d'une image, étant donné que l'image peut encore être active ("en vol") lors du démarrage de l'enregistrement de l'image suivante. Pour éviter de bloquer le pipeline, une solution consiste à disposer de plusieurs tampons (et d'allocations de mémoire) sous le capot, réalisant ainsi au moins un schéma à double tampon pour ces ressources.

Les applications qui intègrent un rendu effectué directement avec une API graphique telle que Vulkan peuvent vouloir effectuer une double ou triple mise en mémoire tampon similaire de leurs propres ressources graphiques, d'une manière compatible avec le processus de soumission de trames du moteur de rendu Qt. Cela implique de connaître les valeurs du nombre maximum de trames en vol (qui est typiquement de 2 ou 3) et l'index du slot de la trame courante, qui est un nombre allant de 0, 1, ..., FramesInFlight-1, et qui s'enroule ensuite autour. Le premier est exposé dans la variable framesInFlight. La seconde, l'indice actuel, est cette valeur.

Pour un exemple d'utilisation de ces valeurs dans la pratique, reportez-vous aux exemples {Graphique de scène - Vulkan sous QML} et {Graphique de scène - Importation de textures Vulkan}.

int GraphicsStateInfo::framesInFlight

Cette variable contient le nombre maximum d'images conservées en vol.

Voir currentFrameSlot pour une description détaillée.

© 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.