En esta página

QSGGeometryNode Class

La clase QSGGeometryNode se utiliza para todo el contenido renderizado en el gráfico de escena. Más...

Cabecera: #include <QSGGeometryNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Hereda: QSGBasicGeometryNode
Heredado de:

QSGImageNode, QSGRectangleNode, QSGSimpleRectNode, y QSGSimpleTextureNode

Funciones Públicas

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

Descripción Detallada

El QSGGeometryNode consiste en geometría y material. La geometría define la malla, los vértices y su estructura, a dibujar. El Material define cómo se rellena la forma.

El siguiente es un fragmento de código que ilustra cómo crear una línea roja utilizando 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 nodo de geometría debe tener tanto geometría como un material normal antes de ser añadido al gráfico de la escena. Cuando la geometría y los materiales se cambian después de que el nodo se haya añadido al gráfico de escena, el usuario también debe marcarlos como sucios utilizando QSGNode::markDirty().

El nodo de geometría admite dos tipos de materiales, el opaqueMaterial y el material normal. El opaqueMaterial se utiliza cuando la opacidad acumulada del gráfico de escena en el momento de la renderización es 1. El caso de uso principal es para casos especiales de renderización opaca para evitar que una operación extra en el fragment shader pueda tener un impacto significativo en el rendimiento de los chips gráficos integrados. El material opaco es opcional.

Nota: Todas las clases con el prefijo QSG deben utilizarse únicamente en el hilo de renderizado del gráfico de escena. Ver Gráfico de Escena y Renderizado para más información.

Véase también QSGGeometry y QSGMaterial.

Documentación de las funciones miembro

QSGGeometryNode::QSGGeometryNode()

Crea un nuevo nodo de geometría sin geometría ni material.

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

Elimina este nodo de geometría.

Las banderas QSGNode::OwnsMaterial, QSGNode::OwnsOpaqueMaterial y QSGNode::OwnsGeometry deciden si el nodo de geometría debe borrar también los materiales y la geometría. Por defecto, estas banderas están desactivadas.

QSGMaterial *QSGGeometryNode::material() const

Devuelve el material de QSGGeometryNode.

Véase también setMaterial().

QSGMaterial *QSGGeometryNode::opaqueMaterial() const

Devuelve el material opaco de QSGGeometryNode.

Véase también setOpaqueMaterial().

void QSGGeometryNode::setMaterial(QSGMaterial *material)

Establece el material de este nodo geométrico en material.

Los nodos de geometría deben tener un material antes de poder ser añadidos al gráfico de escena.

Si se cambia el material sin volver a llamar a setMaterial(), el usuario también debe marcar el material como sucio utilizando QSGNode::markDirty().

Véase también material().

void QSGGeometryNode::setOpaqueMaterial(QSGMaterial *material)

Establece el material opaco de esta geometría en material.

El material opaco será preferido por el renderizador sobre el material por defecto, devuelto por la función material(), si no es nulo y el elemento de geometría tiene una opacidad heredada de 1.

La opacidad se refiere a la opacidad del gráfico de la escena, el material todavía puede establecer QSGMaterial::Blending a true y dibujar píxeles transparentes.

Si se cambia el material sin volver a llamar a setOpaqueMaterial(), el usuario también debe marcar el material opaco como sucio utilizando QSGNode::markDirty().

Véase también 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.