32 enum class RenderResult : quint32
42 Q_DECLARE_FLAGS(RenderResults, RenderResult)
46 QRhiTexture *texture =
nullptr;
47 QRhiRenderBuffer *buffer =
nullptr;
50 using TypeMask = QSSGRenderGraphObject::TypeT;
51 static constexpr TypeMask NodeMask = QSSGRenderGraphObject::BaseType::Node;
53 void scheduleRenderResults(RenderResults results)
const;
55 Result getRenderResult(RenderResult id)
const;
57 [[nodiscard]] QSSGRhiGraphicsPipelineState getPipelineState()
const;
59 [[nodiscard]] QSSGCameraId activeCamera()
const;
61 [[nodiscard]] QSSGRenderContextInterface *contextInterface()
const;
63 [[nodiscard]] QSSGNodeIdList getLayerNodes(quint32 layerMask, TypeMask typeMask = NodeMask)
const;
64 [[nodiscard]] QSSGNodeIdList getLayerNodes(QSSGCameraId cameraId, TypeMask typeMask = NodeMask)
const;
67 friend class QSSGLayerRenderData;
68 friend class QSSGRenderHelpers;
72 [[nodiscard]] QSSGLayerRenderData *getCurrent()
const;
74 QSSGFrameData() =
default;
75 explicit QSSGFrameData(QSSGRenderContextInterface *ctx);
76 QSSGRenderContextInterface *m_ctx =
nullptr;
88 enum class RenderStage
94 QSSGRenderExtension();
95 virtual ~QSSGRenderExtension();
97 virtual bool prepareData(QSSGFrameData &data) = 0;
98 virtual void prepareRender(QSSGFrameData &data) = 0;
99 virtual void render(QSSGFrameData &data) = 0;
101 virtual void resetForFrame() = 0;
103 virtual RenderMode mode()
const = 0;
104 virtual RenderStage stage()
const = 0;
107 QSSGRenderExtension(Type inType, FlagT inFlags);
friend class QSSGLayerRenderData