![]() |
Qt 6.x
The Qt SDK
|
The QSGOpacityNode class is used to change opacity of nodes. More...
#include <qsgnode.h>
Public Member Functions | |
QSGOpacityNode () | |
Constructs an opacity node with a default opacity of 1. | |
~QSGOpacityNode () override | |
Deletes the opacity node. | |
void | setOpacity (qreal opacity) |
Sets the opacity of this node to opacity. | |
qreal | opacity () const |
Returns this opacity node's opacity. | |
void | setCombinedOpacity (qreal opacity) |
Sets the combined opacity of this node to opacity. | |
qreal | combinedOpacity () const |
Returns this node's accumulated opacity. | |
bool | isSubtreeBlocked () const override |
For performance reasons, we block the subtree when the opacity is below a certain threshold. | |
![]() | |
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. | |
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... | |
![]() | |
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. | |
![]() | |
QScopedPointer< QSGNodePrivate > | d_ptr |
The QSGOpacityNode class is used to change opacity of nodes.
\inmodule QtQuick
Opacity applies to its subtree and can be nested. Multiple opacity nodes will be accumulated by multiplying their opacity. The accumulation happens as part of the rendering.
When nested opacity gets below a certain threshold, the subtree might be marked as blocked, causing isSubtreeBlocked() to return true. This is done for performance reasons.
QSGOpacityNode::QSGOpacityNode | ( | ) |
Constructs an opacity node with a default opacity of 1.
Opacity accumulates downwards in the scene graph so a node with two QSGOpacityNode instances above it, both with opacity of 0.5, will have effective opacity of 0.25.
The default opacity of nodes is 1.
Definition at line 1276 of file qsgnode.cpp.
|
override |
Deletes the opacity node.
Definition at line 1287 of file qsgnode.cpp.
|
inline |
|
overridevirtual |
For performance reasons, we block the subtree when the opacity is below a certain threshold.
Reimplemented from QSGNode.
Definition at line 1364 of file qsgnode.cpp.
References OPACITY_THRESHOLD.
|
inline |
Returns this opacity node's opacity.
Definition at line 285 of file qsgnode.h.
Referenced by setCombinedOpacity(), setOpacity(), QDeclarativeGeoMapItemBase::updatePaintNode(), QSGOpenVGNodeVisitor::visit(), QSGSoftwareRenderableNodeUpdater::visit(), and QSGBatchRenderer::Updater::visitOpacityNode().
Sets the combined opacity of this node 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 1350 of file qsgnode.cpp.
References opacity().
Referenced by QSGBatchRenderer::Updater::visitOpacityNode().
Sets the opacity of this node to opacity.
Before rendering the graph, the renderer will do an update pass over the subtree to propagate the opacity to its children.
The value will be bounded to the range 0 to 1.
Definition at line 1310 of file qsgnode.cpp.
References QSGNode::DirtyOpacity, QSGNode::dirtyState(), QSGNode::DirtySubtreeBlocked, QSGNode::markDirty(), opacity(), and OPACITY_THRESHOLD.
Referenced by QQuickMaterialRippleBackgroundNode::QQuickMaterialRippleBackgroundNode(), QQuickOpacityAnimatorJob::updateCurrentTime(), QQuickMaterialRippleWaveNode::updateCurrentTime(), QQuickMaterialRippleBackgroundNode::updateCurrentTime(), QQuickUniversalBusyIndicatorNode::updateCurrentTime(), QQuickUniversalProgressBarNode::updateCurrentTime(), QQuickWindowPrivate::updateDirtyNode(), and QDeclarativeGeoMapItemBase::updatePaintNode().