Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qssgrenderroot.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5
8
9#include "../rendererimpl/qssgrenderdata_p.h"
10
12
13QSSGRenderRoot::QSSGRenderRoot()
14 : QSSGRenderNode(Type::Root)
15 , m_gnd(std::make_shared<QSSGGlobalRenderNodeData>(this))
16{
17 rootNodeRef = &self;
18 localTransform = calculateTransformMatrix({}, initScale, {}, {});
19}
20
21QSSGRenderRoot::~QSSGRenderRoot()
22{
23 if (m_gnd)
24 m_gnd->invalidate();
25}
26
27void QSSGRenderRoot::markDirty(DirtyFlag dirtyFlag)
28{
29 m_rootDirtyFlags |= FlagT(dirtyFlag);
30 QSSGRenderNode::markDirty(QSSGRenderNode::DirtyFlag::SubNodeDirty);
31}
32
33void QSSGRenderRoot::clearDirty(DirtyFlag dirtyFlag)
34{
35 m_rootDirtyFlags &= ~FlagT(dirtyFlag);
36 QSSGRenderNode::clearDirty(QSSGRenderNode::DirtyFlag::SubNodeDirty);
37}
38
39void QSSGRenderRoot::reindex()
40{
41 m_gnd->reindex();
42 for (QSSGRenderNode &chld : children) {
43 if (QSSG_GUARD_X(chld.type == QSSGRenderNode::Type::Layer, "Layer type mismatch"))
44 static_cast<QSSGRenderLayer &>(chld).markDirty(QSSGRenderLayer::DirtyFlag::TreeDirty);
45 }
46 clearDirty(QSSGRenderRoot::DirtyFlag::TreeDirty);
47}
48
49QT_END_NAMESPACE
Combined button and popup list for selecting options.