QSGNode#
The QSGNode
class is the base class for all nodes in the scene graph. More…
Inherited by: QSGTransformNode, QSGRenderNode, QSGOpacityNode, QSGBasicGeometryNode, QSGGeometryNode, QSGSimpleTextureNode, QSGSimpleRectNode, QSGRectangleNode, QSGClipNode
Synopsis#
Functions#
def
appendChildNode
(node)def
childAtIndex
(i)def
childCount
()def
clearDirty
()def
dirtyState
()def
firstChild
()def
flags
()def
insertChildNodeAfter
(node, after)def
insertChildNodeBefore
(node, before)def
lastChild
()def
markDirty
(bits)def
nextSibling
()def
parent
()def
prependChildNode
(node)def
previousSibling
()def
removeAllChildNodes
()def
removeChildNode
(node)def
reparentChildNodesTo
(newParent)def
setFlag
(arg__1[, arg__2=true])def
setFlags
(arg__1[, arg__2=true])def
type
()
Virtual functions#
def
isSubtreeBlocked
()def
preprocess
()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
The QSGNode
class can be used as a child container. Children are added with the appendChildNode()
, prependChildNode()
, insertChildNodeBefore()
and insertChildNodeAfter()
. The order of nodes is important as geometry nodes are rendered according to their ordering in the scene graph.
The scene graph nodes contain a mechanism that describes which parts of the scene have changed. This includes the combined matrices, accumulated opacity, changes to the node hierarchy, and so on. This information can be used for optimizations inside the scene graph renderer. For the renderer to properly render the nodes, it is important that users call markDirty()
with the correct flags when nodes are changed. Most of the functions on the node classes will implicitly call markDirty()
. For example, appendChildNode()
will call markDirty()
passing in DirtyNodeAdded
.
If nodes change every frame, the preprocess()
function can be used to apply changes to a node for every frame it is rendered. The use of preprocess()
must be explicitly enabled by setting the UsePreprocess
flag on the node.
The virtual isSubtreeBlocked()
function can be used to disable a subtree all together. Nodes in a blocked subtree will not be preprocessed() and not rendered.
Note
All classes with QSG prefix should be used solely on the scene graph’s rendering thread. See Scene Graph and Rendering for more information.
Constructs a new node
- PySide6.QtQuick.QSGNode.NodeType#
Can be used to figure out the type of node.
Constant
Description
QSGNode.BasicNodeType
The type of
QSGNode
QSGNode.GeometryNodeType
The type of
QSGGeometryNode
QSGNode.TransformNodeType
The type of
QSGTransformNode
QSGNode.ClipNodeType
The type of
QSGClipNode
QSGNode.OpacityNodeType
The type of
QSGOpacityNode
QSGNode.RenderNodeType
The type of
QSGRenderNode
See also
- PySide6.QtQuick.QSGNode.Flag#
(inherits enum.Flag
) The QSGNode::Flag enum describes flags on the QSGNode
Constant
Description
QSGNode.OwnedByParent
The node is owned by its parent and will be deleted when the parent is deleted.
QSGNode.UsePreprocess
The node’s virtual
preprocess()
function will be called before rendering starts.QSGNode.OwnsGeometry
Only valid for
QSGGeometryNode
andQSGClipNode
. The node has ownership over theQSGGeometry
instance and will delete it when the node is destroyed or a geometry is assigned.QSGNode.OwnsMaterial
Only valid for
QSGGeometryNode
. The node has ownership over the material and will delete it when the node is destroyed or a material is assigned.QSGNode.OwnsOpaqueMaterial
Only valid for
QSGGeometryNode
. The node has ownership over the opaque material and will delete it when the node is destroyed or a material is assigned.QSGNode.InternalReserved
Reserved for internal use.
- PySide6.QtQuick.QSGNode.DirtyStateBit#
(inherits enum.Flag
) Used in markDirty()
to indicate how the scene graph has changed.
Constant
Description
QSGNode.DirtyMatrix
The matrix in a
QSGTransformNode
has changed.QSGNode.DirtyNodeAdded
A node was added.
QSGNode.DirtyNodeRemoved
A node was removed.
QSGNode.DirtyGeometry
The geometry of a
QSGGeometryNode
has changed.QSGNode.DirtyMaterial
The material of a
QSGGeometryNode
has changed.QSGNode.DirtyOpacity
The opacity of a
QSGOpacityNode
has changed.QSGNode.DirtySubtreeBlocked
The subtree has been blocked.
See also
- PySide6.QtQuick.QSGNode.appendChildNode(node)#
- Parameters:
node –
PySide6.QtQuick.QSGNode
Appends node
to this node’s list of children.
Ordering of nodes is important as geometry nodes will be rendered in the order they are added to the scene graph.
- PySide6.QtQuick.QSGNode.childAtIndex(i)#
- Parameters:
i – int
- Return type:
Returns the child at index i
.
Children are stored internally as a linked list, so iterating over the children via the index is suboptimal.
- PySide6.QtQuick.QSGNode.childCount()#
- Return type:
int
Returns the number of child nodes.
- PySide6.QtQuick.QSGNode.clearDirty()#
Note
This function is deprecated.
- PySide6.QtQuick.QSGNode.dirtyState()#
- Return type:
Note
This function is deprecated.
- PySide6.QtQuick.QSGNode.firstChild()#
- Return type:
Returns the first child of this node.
The children are stored in a linked list.
- PySide6.QtQuick.QSGNode.flags()#
- Return type:
Flags
Returns the set of flags for this node.
See also
- PySide6.QtQuick.QSGNode.insertChildNodeAfter(node, after)#
- Parameters:
node –
PySide6.QtQuick.QSGNode
after –
PySide6.QtQuick.QSGNode
Inserts node
to this node’s list of children after the node specified with after
.
Ordering of nodes is important as geometry nodes will be rendered in the order they are added to the scene graph.
- PySide6.QtQuick.QSGNode.insertChildNodeBefore(node, before)#
- Parameters:
node –
PySide6.QtQuick.QSGNode
before –
PySide6.QtQuick.QSGNode
Inserts node
to this node’s list of children before the node specified with before
.
Ordering of nodes is important as geometry nodes will be rendered in the order they are added to the scene graph.
- PySide6.QtQuick.QSGNode.isSubtreeBlocked()#
- Return type:
bool
Returns whether this node and its subtree is available for use.
Blocked subtrees will not get their dirty states updated and they will not be rendered.
The QSGOpacityNode
will return a blocked subtree when accumulated opacity is 0, for instance.
- PySide6.QtQuick.QSGNode.lastChild()#
- Return type:
Returns the last child of this node.
The children are stored as a linked list.
- PySide6.QtQuick.QSGNode.markDirty(bits)#
- Parameters:
bits –
DirtyState
Notifies all connected renderers that the node has dirty bits
.
- PySide6.QtQuick.QSGNode.nextSibling()#
- Return type:
Returns the node after this in the parent’s list of children.
The children are stored as a linked list.
- PySide6.QtQuick.QSGNode.parent()#
- Return type:
Returns the parent node of this node.
- PySide6.QtQuick.QSGNode.prependChildNode(node)#
- Parameters:
node –
PySide6.QtQuick.QSGNode
Prepends node
to this node’s the list of children.
Ordering of nodes is important as geometry nodes will be rendered in the order they are added to the scene graph.
- PySide6.QtQuick.QSGNode.preprocess()#
Override this function to do processing on the node before it is rendered.
Preprocessing needs to be explicitly enabled by setting the flag UsePreprocess
. The flag needs to be set before the node is added to the scene graph and will cause the preprocess() function to be called for every frame the node is rendered.
Warning
Beware of deleting nodes while they are being preprocessed. It is possible, with a small performance hit, to delete a single node during its own preprocess call. Deleting a subtree which has nodes that also use preprocessing may result in a segmentation fault. This is done for performance reasons.
- PySide6.QtQuick.QSGNode.previousSibling()#
- Return type:
Returns the node before this in the parent’s list of children.
The children are stored as a linked list.
- PySide6.QtQuick.QSGNode.removeAllChildNodes()#
Removes all child nodes from this node’s list of children.
- PySide6.QtQuick.QSGNode.removeChildNode(node)#
- Parameters:
node –
PySide6.QtQuick.QSGNode
Removes node
from this node’s list of children.
- PySide6.QtQuick.QSGNode.reparentChildNodesTo(newParent)#
- Parameters:
newParent –
PySide6.QtQuick.QSGNode
Sets the flag f
on this node if enabled
is true; otherwise clears the flag.
See also
- PySide6.QtQuick.QSGNode.setFlags(arg__1[, arg__2=true])#
- Parameters:
arg__1 –
Flags
arg__2 – bool
Sets the flags f
on this node if enabled
is true; otherwise clears the flags.
See also
Returns the type of this node. The node type must be one of the predefined types defined in NodeType
and can safely be used to cast to the corresponding class.