Sur cette page

Qt3DRender::QWaitFence Class

class Qt3DRender::QWaitFence

FrameGraphNode utilisé pour attendre qu'une clôture dans le flux de commandes graphiques soit signalée. Plus...

En-tête : #include <QWaitFence>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
Hérite : Qt3DRender::QFrameGraphNode
Statut : Déclassé

Propriétés

Fonctions publiques

QVariant handle() const
Qt3DRender::QWaitFence::HandleType handleType() const
void setHandle(QVariant handle)
void setHandleType(Qt3DRender::QWaitFence::HandleType type)
void setTimeout(quint64 timeout)
void setWaitOnCPU(bool waitOnCPU)
quint64 timeout() const
bool waitOnCPU() const

Signaux

void handleChanged(QVariant handle)
void handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)
void timeoutChanged(quint64 timeoutChanged)
void waitOnCPUChanged(bool waitOnCPU)

Description détaillée

La clôture permet de synchroniser les charges de travail du GPU et du CPU. Les commandes du GPU sont généralement non bloquantes. Lorsqu'elles sont émises, les commandes sont insérées dans des tampons de commande qui seront lus ultérieurement par le GPU. Dans certains cas, vous souhaitez poursuivre le traitement ou émettre une commande spécifique uniquement lorsque vous êtes sûr qu'elle a été exécutée par le matériel. Les clôtures sont un moyen d'y parvenir. Ceci est particulièrement important lors de l'utilisation de moteurs tiers avec Qt3D, Qt3D ne devrait accéder aux ressources partagées que lorsque nous savons que la commande de l'autre moteur a fini de modifier la ressource.

QWaitFence est un noeud FrameGraph qui forcera à attendre qu'il soit signalé avant que les commandes suivantes ne soient insérées dans le flux de commandes. Il peut ensuite être utilisé en conjonction avec QSetFence et contient des propriétés pour configurer la durée d'attente et le blocage côté CPU.

Remarque : Qt 3D télécharge les ressources GPU (textures, shaders, tampons) avant d'émettre des appels de dessin.

Documentation des propriétés

handle : QVariant

Maintient la poignée de la clôture sous-jacente enveloppée dans un QVariant.

Fonctions d'accès :

QVariant handle() const
void setHandle(QVariant handle)

Signal de notification :

void handleChanged(QVariant handle)

handleType : HandleType

Spécifie le type de poignée utilisé. Actuellement, seuls les identifiants de clôture OpenGL sont pris en charge.

Fonctions d'accès :

Qt3DRender::QWaitFence::HandleType handleType() const
void setHandleType(Qt3DRender::QWaitFence::HandleType type)

Signal du notificateur :

void handleTypeChanged(Qt3DRender::QWaitFence::HandleType handleType)

timeout : quint64

Spécifie le temps maximum en nanosecondes à attendre pour que la clôture soit signalée.

Fonctions d'accès :

quint64 timeout() const
void setTimeout(quint64 timeout)

Signal du notificateur :

void timeoutChanged(quint64 timeoutChanged)

waitOnCPU : bool

Indique si l'unité centrale doit être bloquée en attendant que la clôture soit signalée. Cette valeur est fausse par défaut.

Fonctions d'accès :

bool waitOnCPU() const
void setWaitOnCPU(bool waitOnCPU)

Signal du notificateur :

void waitOnCPUChanged(bool waitOnCPU)

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