![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
The QSGGeometryNode class is used for all rendered content in the scene graph. More...
#include <qsgnode.h>
Public Member Functions | |
QSGGeometryNode () | |
Creates a new geometry node without geometry and material. | |
~QSGGeometryNode () override | |
Deletes this geometry node. | |
void | setMaterial (QSGMaterial *material) |
Sets the material of this geometry node to material. | |
QSGMaterial * | material () const |
Returns the material of the QSGGeometryNode. | |
void | setOpaqueMaterial (QSGMaterial *material) |
Sets the opaque material of this geometry to material. | |
QSGMaterial * | opaqueMaterial () const |
Returns the opaque material of the QSGGeometryNode. | |
QSGMaterial * | activeMaterial () const |
Returns the material which should currently be used for geometry node. | |
void | setRenderOrder (int order) |
Sets the render order of this node to be order. | |
int | renderOrder () const |
Returns the render order of this geometry node. | |
void | setInheritedOpacity (qreal opacity) |
Sets the inherited opacity of this geometry to opacity. | |
qreal | inheritedOpacity () const |
Set during rendering to specify the inherited opacity for that rendering pass. | |
![]() | |
~QSGBasicGeometryNode () override | |
Deletes this QSGBasicGeometryNode. | |
void | setGeometry (QSGGeometry *geometry) |
Sets the geometry of this node to geometry. | |
const QSGGeometry * | geometry () const |
Returns this node's geometry. | |
QSGGeometry * | geometry () |
Returns this node's geometry. | |
const QMatrix4x4 * | matrix () const |
Will be set during rendering to contain transformation of the geometry for that rendering pass. | |
const QSGClipNode * | clipList () const |
Will be set during rendering to contain the clip of the geometry for that rendering pass. | |
void | setRendererMatrix (const QMatrix4x4 *m) |
void | setRendererClipList (const QSGClipNode *c) |
![]() | |
QSGNode () | |
Constructs a new node. | |
virtual | ~QSGNode () |
Destroys the node. | |
QSGNode * | parent () const |
Returns the parent node of this node. | |
void | removeChildNode (QSGNode *node) |
Removes node from this node's list of children. | |
void | removeAllChildNodes () |
Removes all child nodes from this node's list of children. | |
void | prependChildNode (QSGNode *node) |
Prepends node to this node's the list of children. | |
void | appendChildNode (QSGNode *node) |
Appends node to this node's list of children. | |
void | insertChildNodeBefore (QSGNode *node, QSGNode *before) |
Inserts node to this node's list of children before the node specified with before. | |
void | insertChildNodeAfter (QSGNode *node, QSGNode *after) |
Inserts node to this node's list of children after the node specified with after. | |
void | reparentChildNodesTo (QSGNode *newParent) |
int | childCount () const |
Returns the number of child nodes. | |
QSGNode * | childAtIndex (int i) const |
Returns the child at index i. | |
QSGNode * | firstChild () const |
Returns the first child of this node. | |
QSGNode * | lastChild () const |
Returns the last child of this node. | |
QSGNode * | nextSibling () const |
Returns the node after this in the parent's list of children. | |
QSGNode * | previousSibling () const |
Returns the node before this in the parent's list of children. | |
NodeType | type () const |
Returns the type of this node. | |
QT_DEPRECATED void | clearDirty () |
void | markDirty (DirtyState bits) |
Notifies all connected renderers that the node has dirty bits. | |
QT_DEPRECATED DirtyState | dirtyState () const |
virtual bool | isSubtreeBlocked () const |
Returns whether this node and its subtree is available for use. | |
Flags | flags () const |
Returns the set of flags for this node. | |
void | setFlag (Flag, bool=true) |
Sets the flag f on this node if enabled is true; otherwise clears the flag. | |
void | setFlags (Flags, bool=true) |
Sets the flags f on this node if enabled is true; otherwise clears the flags. | |
virtual void | preprocess () |
Override this function to do processing on the node before it is rendered. | |
Protected Member Functions | |
QSGGeometryNode (QSGGeometryNodePrivate &dd) | |
![]() | |
QSGBasicGeometryNode (NodeType type) | |
Creates a new basic geometry node of type type. | |
QSGBasicGeometryNode (QSGBasicGeometryNodePrivate &dd, NodeType type) | |
![]() | |
QSGNode (NodeType type) | |
Constructs a new node with the given node type. | |
QSGNode (QSGNodePrivate &dd, NodeType type) | |
Constructs a new node with the given node type. | |
Friends | |
class | QSGNodeUpdater |
Additional Inherited Members | |
![]() | |
enum | NodeType { BasicNodeType , GeometryNodeType , TransformNodeType , ClipNodeType , OpacityNodeType , RootNodeType , RenderNodeType } |
Can be used to figure out the type of node. More... | |
enum | Flag { OwnedByParent = 0x0001 , UsePreprocess = 0x0002 , OwnsGeometry = 0x00010000 , OwnsMaterial = 0x00020000 , OwnsOpaqueMaterial = 0x00040000 , IsVisitableNode = 0x01000000 } |
The QSGNode::Flag enum describes flags on the QSGNode. More... | |
enum | DirtyStateBit { DirtySubtreeBlocked = 0x0080 , DirtyMatrix = 0x0100 , DirtyNodeAdded = 0x0400 , DirtyNodeRemoved = 0x0800 , DirtyGeometry = 0x1000 , DirtyMaterial = 0x2000 , DirtyOpacity = 0x4000 , DirtyForceUpdate = 0x8000 , DirtyUsePreprocess = UsePreprocess , DirtyPropagationMask } |
Used in QSGNode::markDirty() to indicate how the scene graph has changed. More... | |
![]() | |
QScopedPointer< QSGNodePrivate > | d_ptr |
The QSGGeometryNode class is used for all rendered content in the scene graph.
\inmodule QtQuick
The QSGGeometryNode consists of geometry and material. The geometry defines the mesh, the vertices and their structure, to be drawn. The Material defines how the shape is filled.
The following is a code snippet illustrating how to create a red line using a QSGGeometryNode:
A geometry node must have both geometry and a normal material before it is added to the scene graph. When the geometry and materials are changed after the node has been added to the scene graph, the user should also mark them as dirty using QSGNode::markDirty().
The geometry node supports two types of materials, the opaqueMaterial and the normal material. The opaqueMaterial is used when the accumulated scene graph opacity at the time of rendering is 1. The primary use case is to special case opaque rendering to avoid an extra operation in the fragment shader can have significant performance impact on embedded graphics chips. The opaque material is optional.
QSGGeometryNode::QSGGeometryNode | ( | ) |
Creates a new geometry node without geometry and material.
Definition at line 824 of file qsgnode.cpp.
|
override |
Deletes this geometry node.
The flags QSGNode::OwnsMaterial, QSGNode::OwnsOpaqueMaterial and QSGNode::OwnsGeometry decides whether the geometry node should also delete the materials and geometry. By default, these flags are disabled.
Definition at line 851 of file qsgnode.cpp.
|
protected |
Definition at line 833 of file qsgnode.cpp.
QSGMaterial * QSGGeometryNode::activeMaterial | ( | ) | const |
Returns the material which should currently be used for geometry node.
If the inherited opacity of the node is 1 and there is an opaque material set on this node, it will be returned; otherwise, the default material will be returned.
Definition at line 985 of file qsgnode.cpp.
|
inline |
|
inline |
Returns the material of the QSGGeometryNode.
|
inline |
Returns the opaque material of the QSGGeometryNode.
|
inline |
Sets the inherited opacity of this geometry to opacity.
This function is meant to be called by the node preprocessing prior to rendering the tree, so it will not mark the tree as dirty.
Definition at line 1002 of file qsgnode.cpp.
void QSGGeometryNode::setMaterial | ( | QSGMaterial * | material | ) |
Sets the material of this geometry node to material.
Geometry nodes must have a material before they can be added to the scene graph.
If the material is changed without calling setMaterial() again, the user must also mark the material as dirty using QSGNode::markDirty().
Definition at line 925 of file qsgnode.cpp.
void QSGGeometryNode::setOpaqueMaterial | ( | QSGMaterial * | material | ) |
Sets the opaque material of this geometry to material.
The opaque material will be preferred by the renderer over the default material, as returned by the material() function, if it is not null and the geometry item has an inherited opacity of 1.
The opaqueness refers to scene graph opacity, the material is still allowed to set QSGMaterial::Blending to true and draw transparent pixels.
If the material is changed without calling setOpaqueMaterial() again, the user must also mark the opaque material as dirty using QSGNode::markDirty().
Definition at line 956 of file qsgnode.cpp.
void QSGGeometryNode::setRenderOrder | ( | int | order | ) |
Sets the render order of this node to be order.
Geometry nodes are rendered in an order that visually looks like low order nodes are rendered prior to high order nodes. For opaque geometry there is little difference as z-testing will handle the discard, but for translucent objects, the rendering should normally be specified in the order of back-to-front.
The default render order is 0
.
Definition at line 908 of file qsgnode.cpp.
|
friend |