- class QSGGeometryNode#
QSGGeometryNode
类用于场景图中所有渲染内容的。更详细...继承自:
QSGSimpleTextureNode
、QSGSimpleRectNode
、QSGRectangleNode
概述#
方法#
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()#
- 返回类型::
- inheritedOpacity()#
- 返回类型::
浮点数
- material()#
- 返回类型::
返回
QSGGeometryNode
的材质。另请参阅
- opaqueMaterial()#
- 返回类型::
返回
QSGGeometryNode
的不透明材质。另请参阅
- renderOrder()#
- 返回类型::
int
- setInheritedOpacity(opacity)#
- 参数:
opacity - 浮点数
- setMaterial(material)#
- 参数:
material -
QSGMaterial
将此几何节点的材质设置为
material
。几何节点必须在添加到场景图之前具有材质。
如果未再次调用 setMaterial() 更改材质,则用户还必须使用
markDirty()
将材质标记为脏。另请参阅
- setOpaqueMaterial(material)#
- 参数:
material -
QSGMaterial
将此几何的不透明材质设置为
material
。如果该材质非空并且几何项具有继承的不透明度为 1,渲染程序将优先使用不透明材质,而不是默认材质(通过
material()
函数返回的)。这里的透明度指的是场景图的不透明度,材料仍然允许将
Blending
设置为 true 并绘制透明像素。如果更改材质而未再次调用 setOpaqueMaterial(),则用户还必须使用
markDirty()
将不透明材质标记为脏。另请参阅
- setRenderOrder(order)#
- 参数:
order - int