30class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRenderRoot final :
public QSSGRenderNode
36 using VersionType = QSSGRenderNodeVersionType;
38 enum class DirtyFlag : quint8
42 using FlagT = std::underlying_type_t<DirtyFlag>;
44 static constexpr DirtyFlag DirtyMask { std::numeric_limits<FlagT>::max() };
46 [[nodiscard]]
bool isDirty(DirtyFlag dirtyFlag = DirtyMask)
const
48 return ((m_rootDirtyFlags & FlagT(dirtyFlag)) != 0)
49 || ((dirtyFlag == DirtyMask) && QSSGRenderNode::isDirty());
51 void markDirty(DirtyFlag dirtyFlag);
52 void clearDirty(DirtyFlag dirtyFlag);
54 [[nodiscard]]
const std::shared_ptr<QSSGGlobalRenderNodeData> &globalNodeData()
const
67 void setStartVersion(VersionType startVersion)
69 m_startVersion = startVersion;
72 [[nodiscard]] VersionType startVersion()
const
74 return m_startVersion;
77 [[nodiscard]]
static QSSGRenderRoot *get(QSSGRenderRoot **ref)
79 return (ref && *ref) ? *ref :
nullptr;
85 QSSGRenderRoot *self =
this;
86 VersionType m_startVersion = 0;
87 std::shared_ptr<QSSGGlobalRenderNodeData> m_gnd;
88 FlagT m_rootDirtyFlags = FlagT(DirtyFlag::TreeDirty);