1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#include "qssgrenderroot_p.h"
5
6#include "../rendererimpl/qssgrenderdata_p.h"
7
8QT_BEGIN_NAMESPACE
9
10QSSGRenderRoot::QSSGRenderRoot()
11 : QSSGRenderNode(Type::Root)
12 , m_gnd(std::make_shared<QSSGGlobalRenderNodeData>())
13{
14 rootNodeRef = &self;
15 localTransform = calculateTransformMatrix(position: {}, scale: initScale, pivot: {}, rotation: {});
16}
17
18QSSGRenderRoot::~QSSGRenderRoot() {}
19
20void QSSGRenderRoot::markDirty(DirtyFlag dirtyFlag)
21{
22 m_rootDirtyFlags |= FlagT(dirtyFlag);
23 QSSGRenderNode::markDirty(dirtyFlag: QSSGRenderNode::DirtyFlag::SubNodeDirty);
24}
25
26void QSSGRenderRoot::clearDirty(DirtyFlag dirtyFlag)
27{
28 m_rootDirtyFlags &= ~FlagT(dirtyFlag);
29 QSSGRenderNode::clearDirty(dirtyFlag: QSSGRenderNode::DirtyFlag::SubNodeDirty);
30}
31
32void QSSGRenderRoot::reindex()
33{
34 // Reindex the world root node
35 m_gnd->reindex(rootNode: this);
36 clearDirty(dirtyFlag: QSSGRenderRoot::DirtyFlag::TreeDirty);
37}
38
39QT_END_NAMESPACE
40

source code of qtquick3d/src/runtimerender/graphobjects/qssgrenderroot.cpp