refactor(srp): move core stage defaults into universal renderer

This commit is contained in:
2026-04-21 15:44:19 +08:00
parent 6a538d0d2e
commit f2be5627be
14 changed files with 408 additions and 111 deletions

View File

@@ -60,6 +60,9 @@ CameraFramePlan CameraFramePlan::FromRequest(const CameraRenderRequest& request)
plan.preScenePasses = request.preScenePasses;
plan.postScenePasses = request.postScenePasses;
plan.overlayPasses = request.overlayPasses;
plan.shadowCasterStage.requested =
request.shadowCaster.IsRequested() ||
request.directionalShadow.IsValid();
plan.colorChain.postProcess.requested = request.postProcess.IsRequested();
plan.colorChain.finalOutput.requested = request.finalOutput.IsRequested();
return plan;
@@ -210,6 +213,25 @@ void CameraFramePlan::ClearFullscreenStage(
RefreshGraphManagedSceneSurfaceState();
}
bool CameraFramePlan::RequestShadowCasterStage(
bool explicitlyConfigured) {
shadowCasterStage.requested =
shadowCaster.IsRequested() ||
directionalShadow.IsValid();
shadowCasterStage.explicitlyConfigured =
shadowCasterStage.explicitlyConfigured ||
explicitlyConfigured;
return shadowCasterStage.requested;
}
void CameraFramePlan::ClearShadowCasterStage(
bool explicitlyConfigured) {
shadowCasterStage.requested = false;
shadowCasterStage.explicitlyConfigured =
shadowCasterStage.explicitlyConfigured ||
explicitlyConfigured;
}
bool CameraFramePlan::HasExplicitFullscreenStageConfiguration(
CameraFrameStage stage) const {
if (const CameraFrameFullscreenStagePlan* fullscreenStagePlan =
@@ -221,6 +243,14 @@ bool CameraFramePlan::HasExplicitFullscreenStageConfiguration(
return false;
}
bool CameraFramePlan::HasExplicitShadowCasterStageConfiguration() const {
return shadowCasterStage.explicitlyConfigured;
}
bool CameraFramePlan::IsShadowCasterStageRequested() const {
return shadowCasterStage.requested;
}
bool CameraFramePlan::IsPostProcessStageValid() const {
if (!IsFullscreenStageRequested(CameraFrameStage::PostProcess)) {
return true;
@@ -286,7 +316,7 @@ bool CameraFramePlan::HasFrameStage(CameraFrameStage stage) const {
switch (GetCameraFrameStageRequestKind(stage)) {
case CameraFrameStageRequestKind::ShadowCaster:
return shadowCaster.IsRequested() || directionalShadow.IsValid();
return IsShadowCasterStageRequested();
case CameraFrameStageRequestKind::DepthOnly:
return request.depthOnly.IsRequested();
case CameraFrameStageRequestKind::ObjectId: