refactor(srp): remove renderer fullscreen stage heuristics

This commit is contained in:
2026-04-21 13:07:24 +08:00
parent 5bec70dcc5
commit 2d4ff384fd
3 changed files with 75 additions and 65 deletions

View File

@@ -179,62 +179,6 @@ namespace XCEngine.Rendering.Universal
protected virtual void ConfigureCameraFramePlan(
ScriptableRenderPipelinePlanningContext context)
{
if (context == null)
{
return;
}
BuildPassQueue(new RenderingData(CameraFrameStage.MainScene));
bool hasPostProcessPass = false;
bool hasFinalOutputPass = false;
for (int i = 0; i < m_activePassQueue.Count; ++i)
{
ScriptableRenderPass renderPass = m_activePassQueue[i];
if (renderPass == null)
{
continue;
}
CameraFrameStage passStage;
if (!ScriptableRenderPass.TryResolveStage(
renderPass.renderPassEvent,
out passStage))
{
continue;
}
if (passStage == CameraFrameStage.PostProcess)
{
hasPostProcessPass = true;
}
else if (passStage ==
CameraFrameStage.FinalOutput)
{
hasFinalOutputPass = true;
}
}
if (hasPostProcessPass &&
!context.IsStageRequested(
CameraFrameStage.PostProcess))
{
context.RequestFullscreenStage(
CameraFrameStage.PostProcess,
CameraFrameColorSource.MainSceneColor,
hasFinalOutputPass);
}
if (hasFinalOutputPass &&
!context.IsStageRequested(
CameraFrameStage.FinalOutput))
{
context.RequestFullscreenStage(
CameraFrameStage.FinalOutput,
hasPostProcessPass
? CameraFrameColorSource.PostProcessColor
: CameraFrameColorSource.MainSceneColor);
}
}
private void BuildPassQueue(