QSGOpacityNode Class

The QSGOpacityNode class is used to change opacity of nodes. More...

Header: #include <QSGOpacityNode>
Inherits: QSGNode

Public Functions

QSGOpacityNode()
virtual ~QSGOpacityNode() override
qreal combinedOpacity() const
qreal opacity() const
void setCombinedOpacity(qreal opacity)
void setOpacity(qreal opacity)

Reimplemented Public Functions

virtual bool isSubtreeBlocked() const override

Detailed Description

\inmoduleQtQuick \ingroup qtquick-scenegraph-nodes

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.

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.

Member Function Documentation

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.

[override virtual noexcept] QSGOpacityNode::~QSGOpacityNode()

Deletes the opacity node.

qreal QSGOpacityNode::combinedOpacity() const

Returns this node's accumulated opacity.

This value is calculated during rendering and only stored in the opacity node temporarily.

\internal

See also setCombinedOpacity().

[override virtual] bool QSGOpacityNode::isSubtreeBlocked() const

Reimplements: QSGNode::isSubtreeBlocked() const.

For performance reasons, we block the subtree when the opacity is below a certain threshold.

\internal

qreal QSGOpacityNode::opacity() const

Returns this opacity node's opacity.

See also setOpacity().

void QSGOpacityNode::setCombinedOpacity(qreal opacity)

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.

\internal

See also combinedOpacity().

void QSGOpacityNode::setOpacity(qreal opacity)

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.

See also opacity().