refactor(rendering): unify fullscreen stage color-chain queries

This commit is contained in:
2026-04-15 15:31:05 +08:00
parent 3afe44d2fa
commit ce573d4e2d
4 changed files with 36 additions and 25 deletions

View File

@@ -41,23 +41,23 @@ bool CameraFramePlan::UsesGraphManagedMainSceneColor() const {
}
bool CameraFramePlan::UsesGraphManagedOutputColor(CameraFrameStage stage) const {
switch (stage) {
case CameraFrameStage::PostProcess:
return colorChain.postProcess.usesGraphManagedOutputColor;
default:
return false;
if (const CameraFrameFullscreenStagePlan* fullscreenStagePlan =
GetFullscreenStagePlan(stage);
fullscreenStagePlan != nullptr) {
return fullscreenStagePlan->usesGraphManagedOutputColor;
}
return false;
}
CameraFrameColorSource CameraFramePlan::ResolveStageColorSource(CameraFrameStage stage) const {
switch (stage) {
case CameraFrameStage::PostProcess:
return colorChain.postProcess.source;
case CameraFrameStage::FinalOutput:
return colorChain.finalOutput.source;
default:
return CameraFrameColorSource::ExplicitSurface;
if (const CameraFrameFullscreenStagePlan* fullscreenStagePlan =
GetFullscreenStagePlan(stage);
fullscreenStagePlan != nullptr) {
return fullscreenStagePlan->source;
}
return CameraFrameColorSource::ExplicitSurface;
}
bool CameraFramePlan::IsPostProcessStageValid() const {
@@ -161,6 +161,18 @@ const FullscreenPassRenderRequest* CameraFramePlan::GetFullscreenPassRequest(
}
}
const CameraFrameFullscreenStagePlan* CameraFramePlan::GetFullscreenStagePlan(
CameraFrameStage stage) const {
switch (stage) {
case CameraFrameStage::PostProcess:
return &colorChain.postProcess;
case CameraFrameStage::FinalOutput:
return &colorChain.finalOutput;
default:
return nullptr;
}
}
const ScenePassRenderRequest* CameraFramePlan::GetScenePassRequest(CameraFrameStage stage) const {
switch (GetCameraFrameStageRequestKind(stage)) {
case CameraFrameStageRequestKind::ShadowCaster: