QSGGeometryNode Class
Die Klasse „QSGGeometryNode“ wird für alle gerenderten Inhalte im Szenengraphen verwendet. Mehr...
| Header: | #include <QSGGeometryNode> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake: | QT += quick |
| Erbt von: | QSGBasicGeometryNode |
| Vererbt an: | QSGImageNode, QSGRectangleNode, QSGSimpleRectNode sowie QSGSimpleTextureNode |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QSGGeometryNode ist Teil der Qt Quick -Klassen für Szenengraph-Knoten.
Öffentliche Funktionen
| QSGGeometryNode() | |
| virtual | ~QSGGeometryNode() override |
| QSGMaterial * | material() const |
| QSGMaterial * | opaqueMaterial() const |
| void | setMaterial(QSGMaterial *material) |
| void | setOpaqueMaterial(QSGMaterial *material) |
Ausführliche Beschreibung
Der QSGGeometryNode besteht aus Geometrie und Material. Die Geometrie definiert das zu zeichnende Netz, die Scheitelpunkte und deren Struktur. Das Material definiert, wie die Form ausgefüllt wird.
Der folgende Codeausschnitt veranschaulicht, wie mit einem „QSGGeometryNode“ eine rote Linie erstellt wird:
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);Ein Geometrie-Knoten muss sowohl über eine Geometrie als auch über ein normales Material verfügen, bevor er dem Szenengraphen hinzugefügt wird. Wenn die Geometrie und die Materialien geändert werden, nachdem der Knoten dem Szenengraphen hinzugefügt wurde, sollte der Benutzer sie ebenfalls mithilfe von ` QSGNode::markDirty()` als „dirty“ markieren.
Der Geometrie-Knoten unterstützt zwei Arten von Materialien: das „ opaqueMaterial “ und das normale Material. Das „ opaqueMaterial “ wird verwendet, wenn die kumulierte Deckkraft des Szenengraphen zum Zeitpunkt des Renderings 1 beträgt. Der Hauptanwendungsfall besteht darin, das opake Rendering als Sonderfall zu behandeln, um eine zusätzliche Operation im Fragment-Shader zu vermeiden, die bei eingebetteten Grafikchips erhebliche Auswirkungen auf die Leistung haben kann. Das opake Material ist optional.
Hinweis: Alle Klassen mit dem Präfix „QSG“ sollten ausschließlich im Rendering-Thread des Szenengraphen verwendet werden. Weitere Informationen finden Sie unter „Szenengrafik und Rendering “.
Siehe auch „ QSGGeometry “ und „ QSGMaterial “.
Dokumentation zu den Member-Funktionen
QSGGeometryNode::QSGGeometryNode()
Erstellt einen neuen Geometrie-Knoten ohne Geometrie und Material.
[override virtual noexcept] QSGGeometryNode::~QSGGeometryNode()
Löscht diesen Geometrieknoten.
Die Flags „ QSGNode::OwnsMaterial “, „ QSGNode::OwnsOpaqueMaterial “ und „ QSGNode::OwnsGeometry “ legen fest, ob der Geometrieknoten auch die Materialien und die Geometrie löschen soll. Standardmäßig sind diese Flags deaktiviert.
QSGMaterial *QSGGeometryNode::material() const
Gibt das Material des ` QSGGeometryNode` zurück.
Siehe auch setMaterial().
QSGMaterial *QSGGeometryNode::opaqueMaterial() const
Gibt das opake Material des „ QSGGeometryNode “ zurück.
Siehe auch setOpaqueMaterial().
void QSGGeometryNode::setMaterial(QSGMaterial *material)
Legt das Material dieses Geometrieknotens auf „ material “ fest.
Geometrieknoten müssen über ein Material verfügen, bevor sie zum Szenenbaum hinzugefügt werden können.
Wird das Material geändert, ohne dass setMaterial() erneut aufgerufen wird, muss der Benutzer das Material zusätzlich mit QSGNode::markDirty() als „dirty“ markieren.
Siehe auch ` material()`.
void QSGGeometryNode::setOpaqueMaterial(QSGMaterial *material)
Legt das undurchsichtige Material dieser Geometrie auf „ material “ fest.
Das undurchsichtige Material wird vom Renderer gegenüber dem Standardmaterial bevorzugt, das von der Funktion ` material()` zurückgegeben wird, sofern es nicht null ist und das Geometrieelement eine geerbte Opazität von 1 aufweist.
Die Opazität bezieht sich auf die Opazität im Szenenbaum; das Material darf weiterhin „ QSGMaterial::Blending “ auf „true“ setzen und transparente Pixel zeichnen.
Wird das Material geändert, ohne setOpaqueMaterial() erneut aufzurufen, muss der Benutzer das undurchsichtige Material zusätzlich mit QSGNode::markDirty() als „dirty“ markieren.
Siehe auch 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.