PySide6.QtQuick.QSGGeometryNode¶
- class QSGGeometryNode¶
QSGGeometryNode
类用于场景图中所有渲染的内容。更多…继承自:
QSGSimpleTextureNode
,QSGSimpleRectNode
,QSGRectangleNode
,QSGNinePatchNode
,QSGImageNode
概要¶
方法¶
def
__init__()
def
activeMaterial()
def
material()
def
opaqueMaterial()
def
renderOrder()
def
setMaterial()
def
setRenderOrder()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QSGGeometryNode
由几何体和材质组成。几何体定义了要绘制的网格、顶点及其结构。材质定义了形状的填充方式。以下是一个代码片段,展示了如何使用
QSGGeometryNode
创建一条红线:QSGGeometry *geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 2); geometry->setDrawingMode(GL_LINES); 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);
在将几何节点添加到场景图之前,它必须同时具有几何体和普通材质。当节点被添加到场景图后,如果几何体和材质发生变化,用户还应使用
markDirty()
将它们标记为脏。几何节点支持两种类型的材质,
opaqueMaterial
和普通材质。当渲染时累积的场景图不透明度为1时,使用opaqueMaterial
。主要用例是特殊处理不透明渲染,以避免在片段着色器中进行额外操作,这对嵌入式图形芯片的性能有显著影响。不透明材质是可选的。- __init__()¶
创建一个没有几何体和材质的新几何节点。
- activeMaterial()¶
- Return type:
- inheritedOpacity()¶
- Return type:
浮点数
- material()¶
- Return type:
返回
QSGGeometryNode
的材质。另请参阅
- opaqueMaterial()¶
- Return type:
返回
QSGGeometryNode
的不透明材质。另请参阅
- renderOrder()¶
- Return type:
整数
- setInheritedOpacity(opacity)¶
- Parameters:
opacity – 浮点数
- setMaterial(material)¶
- Parameters:
材质 –
QSGMaterial
将此几何节点的材质设置为
material
。几何节点在添加到场景图之前必须有一个材质。
如果材料在没有再次调用setMaterial()的情况下被更改,用户还必须使用
markDirty()
将材料标记为脏。另请参阅
- setOpaqueMaterial(material)¶
- Parameters:
材质 –
QSGMaterial
将此几何体的不透明材质设置为
material
。如果非空且几何项目的继承不透明度为1,渲染器将优先选择不透明材质,而不是由
material()
函数返回的默认材质。不透明度指的是场景图的不透明度,材料仍然允许将
Blending
设置为true并绘制透明像素。如果材料被更改而没有再次调用setOpaqueMaterial(),用户还必须使用
markDirty()
将不透明材料标记为脏。另请参阅
- setRenderOrder(order)¶
- Parameters:
order – int