QSGNode Class
La classe QSGNode est la classe de base pour tous les nœuds du graphe de scène. Plus d'informations...
| En-tête : | #include <QSGNode> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Quick)target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake : | QT += quick |
| Héritée par : | QSGBasicGeometryNode, QSGOpacityNode, QSGRenderNode, et QSGTransformNode |
- Liste de tous les membres, y compris les membres hérités
- QSGNode fait partie de la classeQt Quick Scene Graph Node.
Types publics
| flags | DirtyState |
| enum | DirtyStateBit { DirtyMatrix, DirtyNodeAdded, DirtyNodeRemoved, DirtyGeometry, DirtyMaterial, …, DirtySubtreeBlocked } |
| enum | Flag { OwnedByParent, UsePreprocess, OwnsGeometry, OwnsMaterial, OwnsOpaqueMaterial, InternalReserved } |
| flags | Flags |
| enum | NodeType { BasicNodeType, GeometryNodeType, TransformNodeType, ClipNodeType, OpacityNodeType, RenderNodeType } |
Fonctions publiques
| QSGNode() | |
| virtual | ~QSGNode() |
| void | appendChildNode(QSGNode *node) |
| QSGNode * | childAtIndex(int i) const |
| int | childCount() const |
| QSGNode * | firstChild() const |
| QSGNode::Flags | flags() const |
| void | insertChildNodeAfter(QSGNode *node, QSGNode *after) |
| void | insertChildNodeBefore(QSGNode *node, QSGNode *before) |
| virtual bool | isSubtreeBlocked() const |
| QSGNode * | lastChild() const |
| void | markDirty(QSGNode::DirtyState bits) |
| QSGNode * | nextSibling() const |
| QSGNode * | parent() const |
| void | prependChildNode(QSGNode *node) |
| virtual void | preprocess() |
| QSGNode * | previousSibling() const |
| void | removeAllChildNodes() |
| void | removeChildNode(QSGNode *node) |
| void | setFlag(QSGNode::Flag f, bool enabled = true) |
| void | setFlags(QSGNode::Flags f, bool enabled = true) |
| QSGNode::NodeType | type() const |
Description détaillée
La classe QSGNode peut être utilisée comme conteneur d'enfants. Les enfants sont ajoutés à l'aide des commandes appendChildNode(), prependChildNode(), insertChildNodeBefore() et insertChildNodeAfter(). L'ordre des nœuds est important car les nœuds géométriques sont rendus en fonction de leur ordre dans le graphe de la scène.
Les nœuds du graphe de scène contiennent un mécanisme qui décrit les parties de la scène qui ont été modifiées. Il s'agit notamment des matrices combinées, de l'opacité accumulée, des modifications apportées à la hiérarchie des nœuds, etc. Ces informations peuvent être utilisées pour optimiser le moteur de rendu du graphe de scène. Pour que le moteur de rendu rende correctement les nœuds, il est important que les utilisateurs appellent QSGNode::markDirty() avec les drapeaux corrects lorsque les nœuds sont modifiés. La plupart des fonctions des classes de nœuds appellent implicitement markDirty(). Par exemple, QSGNode::appendChildNode() appellera markDirty() en passant par QSGNode::DirtyNodeAdded.
Si les nœuds changent à chaque image, la fonction preprocess() peut être utilisée pour appliquer les changements à un nœud pour chaque image rendue. L'utilisation de preprocess() doit être explicitement activée en définissant le drapeau QSGNode::UsePreprocess sur le nœud.
La fonction virtuelle isSubtreeBlocked() peut être utilisée pour désactiver un sous-arbre. Les nœuds d'un sous-arbre bloqué ne seront pas prétraités() et ne seront pas rendus.
Note : Toutes les classes avec le préfixe QSG doivent être utilisées uniquement sur le thread de rendu du graphe de scène. Voir Scene Graph and Rendering pour plus d'informations.
Documentation des types de membres
enum QSGNode::DirtyStateBit
flags QSGNode::DirtyState
Utilisé dans QSGNode::markDirty() pour indiquer comment le graphe de scène a changé.
| Constante | Valeur | Description |
|---|---|---|
QSGNode::DirtyMatrix | 0x0100 | La matrice d'un site QSGTransformNode a changé. |
QSGNode::DirtyNodeAdded | 0x0400 | Un nœud a été ajouté. |
QSGNode::DirtyNodeRemoved | 0x0800 | Un nœud a été supprimé. |
QSGNode::DirtyGeometry | 0x1000 | La géométrie d'un site QSGGeometryNode a changé. |
QSGNode::DirtyMaterial | 0x2000 | Le matériau d'un site QSGGeometryNode a changé. |
QSGNode::DirtyOpacity | 0x4000 | L'opacité d'un site QSGOpacityNode a changé. |
QSGNode::DirtySubtreeBlocked | 0x0080 | Le sous-arbre a été bloqué. |
Le type DirtyState est un typedef pour QFlags<DirtyStateBit>. Il stocke une combinaison OU de valeurs DirtyStateBit.
Voir aussi QSGNode::markDirty().
enum QSGNode::Flag
flags QSGNode::Flags
L'enum QSGNode::Flag décrit les drapeaux de l'enum QSGNode::Flag. QSGNode
| Constante | Valeur | Description |
|---|---|---|
QSGNode::OwnedByParent | 0x0001 | Le noeud appartient à son parent et sera supprimé lorsque le parent sera supprimé. |
QSGNode::UsePreprocess | 0x0002 | La fonction virtuelle preprocess() du noeud sera appelée avant le début du rendu. |
QSGNode::OwnsGeometry | 0x00010000 | Valable uniquement pour QSGGeometryNode et QSGClipNode. Le nœud est propriétaire de l'instance QSGGeometry et la supprimera lorsque le nœud sera détruit ou qu'une géométrie sera attribuée. |
QSGNode::OwnsMaterial | 0x00020000 | Valable uniquement pour QSGGeometryNode. Le nœud est propriétaire du matériau et le supprimera lorsque le nœud sera détruit ou qu'un matériau sera attribué. |
QSGNode::OwnsOpaqueMaterial | 0x00040000 | Valable uniquement pour QSGGeometryNode. Le nœud est propriétaire du matériau opaque et le supprimera lorsque le nœud sera détruit ou qu'un matériau lui sera attribué. |
QSGNode::InternalReserved | 0x01000000 | Réservé à un usage interne. |
Le type Flags est un typedef pour QFlags<Flag>. Il stocke une combinaison OU de valeurs de drapeaux.
enum QSGNode::NodeType
Peut être utilisé pour déterminer le type de nœud.
| Constante | Valeur | Description du nœud |
|---|---|---|
QSGNode::BasicNodeType | 0 | Le type de QSGNode |
QSGNode::GeometryNodeType | 1 | Le type de QSGGeometryNode |
QSGNode::TransformNodeType | 2 | Le type de QSGTransformNode |
QSGNode::ClipNodeType | 3 | Le type de QSGClipNode |
QSGNode::OpacityNodeType | 4 | Le type de QSGOpacityNode |
QSGNode::RenderNodeType | 6 | Le type de QSGRenderNode |
Voir également type().
Documentation sur les fonctions membres
QSGNode::QSGNode()
Construit un nouveau nœud
[virtual noexcept] QSGNode::~QSGNode()
Détruit le noeud.
Tous les enfants de ce nœud dont l'indicateur QSGNode::OwnedByParent est activé seront également supprimés.
void QSGNode::appendChildNode(QSGNode *node)
Ajoute node à la liste des enfants de ce nœud.
L'ordre des nœuds est important car les nœuds géométriques seront rendus dans l'ordre dans lequel ils sont ajoutés au graphe de la scène.
QSGNode *QSGNode::childAtIndex(int i) const
Renvoie l'enfant à l'index i.
Les enfants sont stockés en interne sous la forme d'une liste chaînée, de sorte que l'itération sur les enfants via l'index est sous-optimale.
int QSGNode::childCount() const
Renvoie le nombre de nœuds enfants.
QSGNode *QSGNode::firstChild() const
Renvoie le premier enfant de ce nœud.
Les enfants sont stockés dans une liste chaînée.
QSGNode::Flags QSGNode::flags() const
Renvoie l'ensemble des drapeaux de ce nœud.
Voir aussi setFlags().
void QSGNode::insertChildNodeAfter(QSGNode *node, QSGNode *after)
Insère node dans la liste des enfants de ce nœud après le nœud spécifié par after.
L'ordre des nœuds est important car les nœuds géométriques seront rendus dans l'ordre dans lequel ils sont ajoutés au graphe de la scène.
void QSGNode::insertChildNodeBefore(QSGNode *node, QSGNode *before)
Insère node dans la liste des enfants de ce nœud avant le nœud spécifié par before.
L'ordre des nœuds est important car les nœuds géométriques seront rendus dans l'ordre dans lequel ils sont ajoutés au graphe de la scène.
[virtual] bool QSGNode::isSubtreeBlocked() const
Indique si ce nœud et sa sous-arborescence peuvent être utilisés.
Les sous-arbres bloqués ne seront pas mis à jour et ne seront pas rendus.
Le site QSGOpacityNode renvoie une sous-arborescence bloquée lorsque l'opacité accumulée est de 0, par exemple.
QSGNode *QSGNode::lastChild() const
Renvoie le dernier enfant de ce nœud.
Les enfants sont stockés sous la forme d'une liste chaînée.
void QSGNode::markDirty(QSGNode::DirtyState bits)
Notifie à tous les moteurs de rendu connectés que le nœud est sale bits.
QSGNode *QSGNode::nextSibling() const
Renvoie le nœud suivant dans la liste des enfants du parent.
Les enfants sont stockés sous la forme d'une liste chaînée.
QSGNode *QSGNode::parent() const
Renvoie le nœud parent de ce nœud.
void QSGNode::prependChildNode(QSGNode *node)
Ajoute node à la liste des enfants de ce nœud.
L'ordre des nœuds est important car les nœuds géométriques seront rendus dans l'ordre dans lequel ils sont ajoutés au graphe de la scène.
[virtual] void QSGNode::preprocess()
Surchargez cette fonction pour effectuer un traitement sur le nœud avant qu'il ne soit rendu.
Le prétraitement doit être explicitement activé en définissant le drapeau QSGNode::UsePreprocess. L'indicateur doit être activé avant que le nœud ne soit ajouté au graphe de la scène et entraînera l'appel de la fonction preprocess() à chaque image du nœud.
Attention : Attention à ne pas supprimer des nœuds pendant qu'ils sont en cours de prétraitement. Il est possible, avec un léger impact sur les performances, de supprimer un seul nœud pendant son propre appel à la fonction preprocess. La suppression d'un sous-arbre contenant des nœuds qui utilisent également le prétraitement peut entraîner une erreur de segmentation. Ceci est fait pour des raisons de performance.
QSGNode *QSGNode::previousSibling() const
Renvoie le nœud précédant celui-ci dans la liste des enfants du parent.
Les enfants sont stockés sous la forme d'une liste chaînée.
void QSGNode::removeAllChildNodes()
Supprime tous les nœuds enfants de la liste des enfants de ce nœud.
void QSGNode::removeChildNode(QSGNode *node)
Supprime node de la liste des enfants de ce nœud.
void QSGNode::setFlag(QSGNode::Flag f, bool enabled = true)
Définit l'indicateur f sur ce nœud si enabled est vrai ; sinon, efface l'indicateur.
Voir aussi flags().
void QSGNode::setFlags(QSGNode::Flags f, bool enabled = true)
Définit les drapeaux f sur ce nœud si enabled est vrai ; sinon, efface les drapeaux.
Voir aussi flags().
QSGNode::NodeType QSGNode::type() const
Renvoie le type de ce nœud. Le type de nœud doit être l'un des types prédéfinis définis dans QSGNode::NodeType et peut être utilisé en toute sécurité pour convertir la classe correspondante.
© 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.