refactor(srp): make stage capability follow selected renderer
This commit is contained in:
@@ -29,6 +29,14 @@ bool IsManagedPipelineAsset(
|
||||
pipelineAsset.get()) != nullptr;
|
||||
}
|
||||
|
||||
RenderPipelineStageSupportContext BuildStageSupportContext(
|
||||
const CameraFramePlan& plan,
|
||||
CameraFrameStage stage) {
|
||||
return RenderPipelineStageSupportContext{
|
||||
stage,
|
||||
plan.request.rendererIndex };
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
CameraRenderer::CameraRenderer()
|
||||
@@ -194,7 +202,10 @@ bool CameraRenderer::Render(
|
||||
}
|
||||
if (plan.UsesGraphManagedOutputColor(CameraFrameStage::MainScene) &&
|
||||
(m_pipeline == nullptr ||
|
||||
!m_pipeline->SupportsStageRenderGraph(CameraFrameStage::MainScene))) {
|
||||
!m_pipeline->SupportsStageRenderGraph(
|
||||
BuildStageSupportContext(
|
||||
plan,
|
||||
CameraFrameStage::MainScene)))) {
|
||||
Debug::Logger::Get().Error(
|
||||
Debug::LogCategory::Rendering,
|
||||
"CameraRenderer::Render failed: graph-managed main scene color requires pipeline main-scene render-graph support");
|
||||
@@ -211,7 +222,10 @@ bool CameraRenderer::Render(
|
||||
{ CameraFrameStage::PostProcess, CameraFrameStage::FinalOutput }) {
|
||||
if (RequiresPipelineStageRecording(plan, stage) &&
|
||||
(m_pipeline == nullptr ||
|
||||
!m_pipeline->SupportsStageRenderGraph(stage))) {
|
||||
!m_pipeline->SupportsStageRenderGraph(
|
||||
BuildStageSupportContext(
|
||||
plan,
|
||||
stage)))) {
|
||||
Debug::Logger::Get().Error(
|
||||
Debug::LogCategory::Rendering,
|
||||
Containers::String(
|
||||
|
||||
@@ -11,6 +11,18 @@
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
|
||||
namespace {
|
||||
|
||||
RenderPipelineStageSupportContext BuildStageSupportContext(
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
CameraFrameStage stage) {
|
||||
return RenderPipelineStageSupportContext{
|
||||
stage,
|
||||
context.plan.request.rendererIndex };
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
bool TryRecordCameraFrameStageStandaloneRenderGraphPass(
|
||||
const CameraFrameStageGraphBuildState& stageState,
|
||||
const CameraFrameRenderGraphStageContext& context,
|
||||
@@ -55,7 +67,9 @@ bool TryRecordCameraFramePipelineStageGraphPass(
|
||||
CameraFrameRenderGraphBuilderContext& builder = context.builder;
|
||||
if (builder.executionState.pipeline == nullptr ||
|
||||
!builder.executionState.pipeline->SupportsStageRenderGraph(
|
||||
stageState.stage)) {
|
||||
BuildStageSupportContext(
|
||||
context,
|
||||
stageState.stage))) {
|
||||
handled = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user