From 308fbd0aac6cab32531a8e4eb756f4434cb9452a Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Wed, 15 Apr 2026 16:49:21 +0800 Subject: [PATCH] refactor(rendering): drive main scene graph usage through stage policy --- engine/src/Rendering/Execution/CameraFramePlan.cpp | 10 +++++----- engine/src/Rendering/Execution/CameraRenderer.cpp | 2 +- .../Internal/CameraFrameFullscreenStagePlanner.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/engine/src/Rendering/Execution/CameraFramePlan.cpp b/engine/src/Rendering/Execution/CameraFramePlan.cpp index 40d479c9..00de8316 100644 --- a/engine/src/Rendering/Execution/CameraFramePlan.cpp +++ b/engine/src/Rendering/Execution/CameraFramePlan.cpp @@ -41,7 +41,7 @@ bool CameraFramePlan::UsesGraphManagedMainSceneColor() const { } bool CameraFramePlan::UsesGraphManagedOutputColor(CameraFrameStage stage) const { - if (stage == CameraFrameStage::MainScene) { + if (SupportsCameraFramePipelineGraphRecording(stage)) { return UsesGraphManagedMainSceneColor(); } @@ -78,7 +78,7 @@ bool CameraFramePlan::IsPostProcessStageValid() const { UsesGraphManagedOutputColor(CameraFrameStage::PostProcess) || (HasValidColorTarget(postProcess.destinationSurface) && HasValidSurfaceSampleDescription(postProcess.destinationSurface)); - return UsesGraphManagedMainSceneColor() && + return UsesGraphManagedOutputColor(CameraFrameStage::MainScene) && postProcess.passes != nullptr && HasValidSingleSampleColorSource(request.surface) && hasUsableDestination; @@ -97,7 +97,7 @@ bool CameraFramePlan::IsFinalOutputStageValid() const { const bool hasUsableSource = finalOutputSource == CameraFrameColorSource::MainSceneColor - ? UsesGraphManagedMainSceneColor() + ? UsesGraphManagedOutputColor(CameraFrameStage::MainScene) : UsesGraphManagedOutputColor(CameraFrameStage::PostProcess); return hasUsableSource && finalOutput.passes != nullptr && @@ -106,7 +106,7 @@ bool CameraFramePlan::IsFinalOutputStageValid() const { } bool CameraFramePlan::HasFrameStage(CameraFrameStage stage) const { - if (stage == CameraFrameStage::MainScene) { + if (SupportsCameraFramePipelineGraphRecording(stage)) { return true; } @@ -208,7 +208,7 @@ const RenderSurface* CameraFramePlan::GetSharedStageOutputSurface( } const RenderSurface& CameraFramePlan::GetMainSceneSurface() const { - if (UsesGraphManagedMainSceneColor() && + if (UsesGraphManagedOutputColor(CameraFrameStage::MainScene) && graphManagedMainSceneSurface.GetWidth() > 0u && graphManagedMainSceneSurface.GetHeight() > 0u) { return graphManagedMainSceneSurface; diff --git a/engine/src/Rendering/Execution/CameraRenderer.cpp b/engine/src/Rendering/Execution/CameraRenderer.cpp index b004f56e..1f47a0c2 100644 --- a/engine/src/Rendering/Execution/CameraRenderer.cpp +++ b/engine/src/Rendering/Execution/CameraRenderer.cpp @@ -180,7 +180,7 @@ bool CameraRenderer::Render( "CameraRenderer::Render failed: post-process request invalid"); return false; } - if (plan.UsesGraphManagedMainSceneColor() && + if (plan.UsesGraphManagedOutputColor(CameraFrameStage::MainScene) && (m_pipeline == nullptr || !m_pipeline->SupportsMainSceneRenderGraph())) { Debug::Logger::Get().Error( Debug::LogCategory::Rendering, diff --git a/engine/src/Rendering/Planning/Internal/CameraFrameFullscreenStagePlanner.cpp b/engine/src/Rendering/Planning/Internal/CameraFrameFullscreenStagePlanner.cpp index a67c865f..a6df48c2 100644 --- a/engine/src/Rendering/Planning/Internal/CameraFrameFullscreenStagePlanner.cpp +++ b/engine/src/Rendering/Planning/Internal/CameraFrameFullscreenStagePlanner.cpp @@ -66,7 +66,7 @@ void PlanCameraFrameFullscreenStages( plan.finalOutput.destinationSurface = plan.request.surface; } - if (plan.UsesGraphManagedMainSceneColor()) { + if (plan.UsesGraphManagedOutputColor(CameraFrameStage::MainScene)) { plan.ConfigureGraphManagedMainSceneSurface(); } }