30class Q_QUICK3DRUNTIMERENDER_EXPORT QSSGRenderRoot final :
public QSSGRenderNode
36 enum class DirtyFlag : quint8
40 using FlagT = std::underlying_type_t<DirtyFlag>;
42 static constexpr DirtyFlag DirtyMask { std::numeric_limits<FlagT>::max() };
44 [[nodiscard]]
bool isDirty(DirtyFlag dirtyFlag = DirtyMask)
const
46 return ((m_rootDirtyFlags & FlagT(dirtyFlag)) != 0)
47 || ((dirtyFlag == DirtyMask) && QSSGRenderNode::isDirty());
49 void markDirty(DirtyFlag dirtyFlag);
50 void clearDirty(DirtyFlag dirtyFlag);
52 [[nodiscard]]
const std::shared_ptr<QSSGGlobalRenderNodeData> &globalNodeData()
const
65 void setStartVersion(quint32 startVersion)
67 m_startVersion = startVersion;
70 [[nodiscard]] quint32 startVersion()
const
72 return m_startVersion;
75 [[nodiscard]]
static QSSGRenderRoot *get(QSSGRenderRoot **ref)
77 return (ref && *ref) ? *ref :
nullptr;
83 QSSGRenderRoot *self =
this;
84 quint32 m_startVersion = 0;
85 std::shared_ptr<QSSGGlobalRenderNodeData> m_gnd;
86 FlagT m_rootDirtyFlags = FlagT(DirtyFlag::TreeDirty);