refactor(srp): move camera frame plan policy into managed urp

This commit is contained in:
2026-04-21 12:22:37 +08:00
parent 793027df23
commit abc300fe03
10 changed files with 372 additions and 2 deletions

View File

@@ -41,6 +41,32 @@ void ApplyManagedDirectionalShadowPlanningPolicyOrDefault(
}
}
void ApplyManagedCameraFramePlanPolicyOrDefault(
const std::string& assetKey,
CameraFramePlan& plan,
const FinalColorSettings& defaultFinalColorSettings) {
if (assetKey.empty()) {
ApplyDefaultRenderPipelineAssetCameraFramePlanPolicy(
plan,
defaultFinalColorSettings);
return;
}
if (!Rendering::Internal::ApplyCameraFramePlanPolicyByKey(
assetKey,
plan,
defaultFinalColorSettings)) {
Debug::Logger::Get().Error(
Debug::LogCategory::Rendering,
Containers::String(
"ManagedScriptableRenderPipelineAsset failed to resolve camera frame plan policy asset key: ") +
assetKey.c_str());
ApplyDefaultRenderPipelineAssetCameraFramePlanPolicy(
plan,
defaultFinalColorSettings);
}
}
} // namespace
ManagedScriptableRenderPipelineAsset::ManagedScriptableRenderPipelineAsset(
@@ -150,13 +176,19 @@ void ManagedScriptableRenderPipelineAsset::ConfigureCameraRenderRequest(
void ManagedScriptableRenderPipelineAsset::ConfigureCameraFramePlan(
CameraFramePlan& plan) const {
RenderPipelineAsset::ConfigureCameraFramePlan(plan);
if (const std::shared_ptr<const ManagedRenderPipelineAssetRuntime> runtime =
ResolveManagedAssetRuntime();
runtime != nullptr) {
ApplyManagedCameraFramePlanPolicyOrDefault(
runtime->GetCameraFramePlanPolicyAssetKey(
plan.request.rendererIndex),
plan,
GetDefaultFinalColorSettings());
runtime->ConfigureCameraFramePlan(plan);
return;
}
RenderPipelineAsset::ConfigureCameraFramePlan(plan);
}
FinalColorSettings ManagedScriptableRenderPipelineAsset::GetDefaultFinalColorSettings() const {