Sur cette page

Qt3DRender::QWaitFence Class

class Qt3DRender::QWaitFence

FrameGraphNode servait à attendre qu'une barrière dans le flux de commandes graphiques soit signalée. En savoir plus...

En-tête : #include <qwaitfence.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
Hérite de : Qt3DRender::QFrameGraphNode
Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

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

Les barrières permettent de synchroniser les charges de travail du GPU et du CPU. Les commandes GPU sont généralement non bloquantes. Lorsqu'elles sont émises, les commandes sont insérées dans des tampons de commandes 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 certain qu'une commande a bien été exécutée par le matériel. Les barrières constituent un moyen d’y parvenir. Cela est particulièrement important lors de l’utilisation de moteurs tiers avec Qt3D ; Qt3D ne doit accéder aux ressources partagées que lorsque l’on sait que les commandes de l’autre moteur ont fini de modifier la ressource.

QWaitFence est un nœud FrameGraph qui force l’attente de sa signalisation avant que les commandes suivantes ne soient insérées dans le flux de commandes. Il peut alors être utilisé conjointement avec QSetFence et dispose de propriétés permettant de configurer la durée d’attente et de déterminer s’il doit bloquer du côté du CPU.

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

Documentation des propriétés

handle : QVariant

Contient le descripteur de la barrière sous-jacente encapsulé dans un objet de type ` 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 descripteur utilisé. Actuellement, seuls les identifiants de « fence » OpenGL sont pris en charge.

Fonctions d'accès :

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

Signal de notification :

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

timeout : quint64

Spécifie la durée maximale, en nanosecondes, pendant laquelle il faut attendre que la barrière soit activée.

Fonctions d'accès :

quint64 timeout() const
void setTimeout(quint64 timeout)

Signal de notification :

void timeoutChanged(quint64 timeoutChanged)

waitOnCPU : bool

Indique si le processeur doit être bloqué en attendant que la barrière soit activée. La valeur par défaut est « false ».

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.