34 enum class RenderResult : quint32
42 Q_DECLARE_FLAGS(RenderResults, RenderResult)
44 enum class AttachmentSelector : quint32
54 QRhiTexture *texture =
nullptr;
55 QRhiRenderBuffer *buffer =
nullptr;
58 using TypeMask = QSSGRenderGraphObject::TypeT;
59 static constexpr TypeMask NodeMask = QSSGRenderGraphObject::BaseType::Node;
61 void scheduleRenderResults(RenderResults results)
const;
63 Result getRenderResult(RenderResult id)
const;
64 Result getRenderResult(QSSGResourceId userPassId, AttachmentSelector attachment)
const;
66 qsizetype getAttachmentCount(QSSGResourceId userPassId)
const;
68 [[nodiscard]] QSSGRhiGraphicsPipelineState getPipelineState()
const;
70 [[nodiscard]] QSSGCameraId activeCamera()
const;
72 [[nodiscard]] QSSGRenderContextInterface *contextInterface()
const;
74 [[nodiscard]] QSSGNodeIdList getLayerNodes(quint32 layerMask, TypeMask typeMask = NodeMask)
const;
75 [[nodiscard]] QSSGNodeIdList getLayerNodes(QSSGCameraId cameraId, TypeMask typeMask = NodeMask)
const;
78 friend class QSSGLayerRenderData;
79 friend class QSSGRenderOutputProviderExtension;
83 [[nodiscard]] QSSGLayerRenderData *getCurrent()
const;
85 void scheduleRenderResults(QSSGResourceId userPassId)
const;
87 QSSGFrameData() =
default;
88 explicit QSSGFrameData(QSSGRenderContextInterface *ctx);
89 QSSGRenderContextInterface *m_ctx =
nullptr;
101 enum class RenderStage
107 QSSGRenderExtension();
108 virtual ~QSSGRenderExtension();
110 virtual bool prepareData(QSSGFrameData &data) = 0;
111 virtual void prepareRender(QSSGFrameData &data) = 0;
112 virtual void render(QSSGFrameData &data) = 0;
114 virtual void resetForFrame() = 0;
116 virtual RenderMode mode()
const = 0;
117 virtual RenderStage stage()
const = 0;
120 QSSGRenderExtension(Type inType, FlagT inFlags);
friend class QSSGLayerRenderData