Sur cette page

QSGGeometryNode Class

La classe QSGGeometryNode est utilisée pour tous les contenus rendus dans le graphe de scène. Plus d'informations...

En-tête : #include <QSGGeometryNode>
CMake : find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake : QT += quick
Hérite : QSGBasicGeometryNode
Hérités par :

QSGImageNode, QSGRectangleNode, QSGSimpleRectNode, et QSGSimpleTextureNode

Fonctions publiques

QSGGeometryNode()
virtual ~QSGGeometryNode() override
QSGMaterial *material() const
QSGMaterial *opaqueMaterial() const
void setMaterial(QSGMaterial *material)
void setOpaqueMaterial(QSGMaterial *material)

Description détaillée

Le nœud QSGGeometryNode se compose d'une géométrie et d'un matériau. La géométrie définit le maillage, les sommets et leur structure, à dessiner. Le matériau définit la manière dont la forme est remplie.

L'extrait de code suivant illustre la création d'une ligne rouge à l'aide d'un QSGGeometryNode :

QSGGeometry *geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 2);
geometry->setDrawingMode(QSGGeometry::DrawLines);
geometry->setLineWidth(3);
geometry->vertexDataAsPoint2D()[0].set(0, 0);
geometry->vertexDataAsPoint2D()[1].set(width(), height());

QSGFlatColorMaterial *material = new QSGFlatColorMaterial;
material->setColor(QColor(255, 0, 0));

QSGGeometryNode *node = new QSGGeometryNode;
node->setGeometry(geometry);
node->setFlag(QSGNode::OwnsGeometry);
node->setMaterial(material);
node->setFlag(QSGNode::OwnsMaterial);

Un nœud géométrique doit avoir une géométrie et un matériau normal avant d'être ajouté au graphe de scène. Lorsque la géométrie et les matériaux sont modifiés après l'ajout du nœud au graphe de scène, l'utilisateur doit également les marquer comme sales à l'aide de QSGNode::markDirty().

Le nœud géométrique prend en charge deux types de matériaux, le matériau opaqueMaterial et le matériau normal. Le matériau opaqueMaterial est utilisé lorsque l'opacité cumulée du graphe de scène au moment du rendu est de 1. Le principal cas d'utilisation est le rendu opaque spécial pour éviter une opération supplémentaire dans le nuanceur de fragment qui peut avoir un impact significatif sur les performances des puces graphiques intégrées. Le matériau opaque est facultatif.

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.

Voir également QSGGeometry et QSGMaterial.

Documentation des fonctions membres

QSGGeometryNode::QSGGeometryNode()

Crée un nouveau nœud géométrique sans géométrie ni matériau.

[override virtual noexcept] QSGGeometryNode::~QSGGeometryNode()

Supprime ce nœud géométrique.

Les drapeaux QSGNode::OwnsMaterial, QSGNode::OwnsOpaqueMaterial et QSGNode::OwnsGeometry déterminent si le nœud géométrique doit également supprimer les matériaux et la géométrie. Par défaut, ces drapeaux sont désactivés.

QSGMaterial *QSGGeometryNode::material() const

Renvoie la matière du site QSGGeometryNode.

Voir aussi setMaterial().

QSGMaterial *QSGGeometryNode::opaqueMaterial() const

Renvoie le matériau opaque du site QSGGeometryNode.

Voir aussi setOpaqueMaterial().

void QSGGeometryNode::setMaterial(QSGMaterial *material)

Définit le matériau de ce nœud géométrique à material.

Les nœuds géométriques doivent avoir un matériau avant de pouvoir être ajoutés au graphe de scène.

Si le matériau est modifié sans appeler setMaterial() à nouveau, l'utilisateur doit également marquer le matériau comme sale à l'aide de QSGNode::markDirty().

Voir également material().

void QSGGeometryNode::setOpaqueMaterial(QSGMaterial *material)

Définit le matériau opaque de cette géométrie à material.

La matière opaque sera préférée par le moteur de rendu à la matière par défaut, telle que renvoyée par la fonction material(), si elle n'est pas nulle et si l'élément géométrique a une opacité héritée de 1.

L'opacité se réfère à l'opacité du graphe de scène, le matériau est toujours autorisé à fixer QSGMaterial::Blending à true et à dessiner des pixels transparents.

Si le matériau est modifié sans appeler à nouveau setOpaqueMaterial(), l'utilisateur doit également marquer le matériau opaque comme sale à l'aide de QSGNode::markDirty().

Voir également opaqueMaterial().

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