refactor(rendering): generalize pipeline stage render graph boundary
This commit is contained in:
@@ -110,7 +110,7 @@ inline RenderGraphRecordingContext BuildRenderGraphRecordingContext(
|
||||
}
|
||||
|
||||
inline RenderGraphRecordingContext BuildRenderGraphRecordingContext(
|
||||
const RenderPipelineMainSceneRenderGraphContext& context) {
|
||||
const RenderPipelineStageRenderGraphContext& context) {
|
||||
return {
|
||||
context.graphBuilder,
|
||||
context.passName,
|
||||
@@ -176,11 +176,13 @@ inline SceneRenderFeaturePassRenderGraphContext BuildSceneRenderFeaturePassRende
|
||||
};
|
||||
}
|
||||
|
||||
inline RenderPipelineMainSceneRenderGraphContext BuildRenderPipelineMainSceneRenderGraphContext(
|
||||
const RenderGraphRecordingContext& common) {
|
||||
inline RenderPipelineStageRenderGraphContext BuildRenderPipelineStageRenderGraphContext(
|
||||
const RenderGraphRecordingContext& common,
|
||||
CameraFrameStage stage) {
|
||||
return {
|
||||
common.graphBuilder,
|
||||
common.passName,
|
||||
stage,
|
||||
common.renderContext,
|
||||
common.sceneData,
|
||||
common.surface,
|
||||
|
||||
@@ -61,9 +61,9 @@ public:
|
||||
|
||||
bool Initialize(const RenderContext& context) override;
|
||||
void Shutdown() override;
|
||||
bool SupportsMainSceneRenderGraph() const override;
|
||||
bool RecordMainSceneRenderGraph(
|
||||
const RenderPipelineMainSceneRenderGraphContext& context) override;
|
||||
bool SupportsStageRenderGraph(CameraFrameStage stage) const override;
|
||||
bool RecordStageRenderGraph(
|
||||
const RenderPipelineStageRenderGraphContext& context) override;
|
||||
bool Render(const FrameExecutionContext& executionContext) override;
|
||||
bool Render(
|
||||
const RenderContext& context,
|
||||
|
||||
@@ -32,9 +32,9 @@ public:
|
||||
|
||||
bool Initialize(const RenderContext& context) override;
|
||||
void Shutdown() override;
|
||||
bool SupportsMainSceneRenderGraph() const override;
|
||||
bool RecordMainSceneRenderGraph(
|
||||
const RenderPipelineMainSceneRenderGraphContext& context) override;
|
||||
bool SupportsStageRenderGraph(CameraFrameStage stage) const override;
|
||||
bool RecordStageRenderGraph(
|
||||
const RenderPipelineStageRenderGraphContext& context) override;
|
||||
bool Render(const FrameExecutionContext& executionContext) override;
|
||||
bool Render(
|
||||
const RenderContext& context,
|
||||
|
||||
@@ -19,9 +19,10 @@ namespace Rendering {
|
||||
|
||||
class RenderGraphBuilder;
|
||||
|
||||
struct RenderPipelineMainSceneRenderGraphContext {
|
||||
struct RenderPipelineStageRenderGraphContext {
|
||||
RenderGraphBuilder& graphBuilder;
|
||||
Containers::String passName = {};
|
||||
CameraFrameStage stage = CameraFrameStage::MainScene;
|
||||
const RenderContext& renderContext;
|
||||
const RenderSceneData& sceneData;
|
||||
RenderSurface surfaceTemplate = {};
|
||||
@@ -41,11 +42,11 @@ public:
|
||||
|
||||
virtual bool Initialize(const RenderContext& context) = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual bool SupportsMainSceneRenderGraph() const {
|
||||
virtual bool SupportsStageRenderGraph(CameraFrameStage) const {
|
||||
return false;
|
||||
}
|
||||
virtual bool RecordMainSceneRenderGraph(
|
||||
const RenderPipelineMainSceneRenderGraphContext&) {
|
||||
virtual bool RecordStageRenderGraph(
|
||||
const RenderPipelineStageRenderGraphContext&) {
|
||||
return false;
|
||||
}
|
||||
virtual bool Render(const FrameExecutionContext& executionContext) {
|
||||
|
||||
@@ -13,12 +13,12 @@ namespace Rendering {
|
||||
|
||||
class SceneRenderFeatureHost;
|
||||
|
||||
Containers::String BuildRenderPipelineMainScenePhasePassName(
|
||||
Containers::String BuildRenderPipelineStagePhasePassName(
|
||||
const Containers::String& baseName,
|
||||
ScenePhase scenePhase);
|
||||
|
||||
bool RecordRenderPipelineMainSceneFeaturePasses(
|
||||
const RenderPipelineMainSceneRenderGraphContext& context,
|
||||
bool RecordRenderPipelineStageFeaturePasses(
|
||||
const RenderPipelineStageRenderGraphContext& context,
|
||||
SceneRenderFeatureHost& featureHost,
|
||||
SceneRenderInjectionPoint injectionPoint,
|
||||
bool clearAttachments,
|
||||
@@ -26,8 +26,8 @@ bool RecordRenderPipelineMainSceneFeaturePasses(
|
||||
SceneRenderFeaturePassEndCallback endPassCallback = {},
|
||||
bool* recordedAnyPass = nullptr);
|
||||
|
||||
bool RecordRenderPipelineMainScenePhasePass(
|
||||
const RenderPipelineMainSceneRenderGraphContext& context,
|
||||
bool RecordRenderPipelineStagePhasePass(
|
||||
const RenderPipelineStageRenderGraphContext& context,
|
||||
ScenePhase scenePhase,
|
||||
RenderPassGraphExecutePassCallback executePassCallback,
|
||||
RenderPassGraphBeginCallback beginPassCallback = {},
|
||||
|
||||
Reference in New Issue
Block a user