refactor(srp): move directional shadow planning policy into managed urp
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h"
|
||||
|
||||
#include "Debug/Logger.h"
|
||||
#include "Rendering/GraphicsSettingsState.h"
|
||||
#include "Rendering/Internal/RenderPipelineFactory.h"
|
||||
|
||||
#include <utility>
|
||||
|
||||
@@ -8,6 +10,39 @@ namespace XCEngine {
|
||||
namespace Rendering {
|
||||
namespace Pipelines {
|
||||
|
||||
namespace {
|
||||
|
||||
void ApplyManagedDirectionalShadowPlanningPolicyOrDefault(
|
||||
const std::string& assetKey,
|
||||
CameraRenderRequest& request,
|
||||
size_t renderedBaseCameraCount,
|
||||
size_t renderedRequestCount,
|
||||
const DirectionalShadowPlanningSettings& directionalShadowSettings) {
|
||||
if (assetKey.empty()) {
|
||||
ApplyDefaultRenderPipelineAssetCameraRenderRequestPolicy(
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Rendering::Internal::ApplyDirectionalShadowPlanningPolicyByKey(
|
||||
assetKey,
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings)) {
|
||||
Debug::Logger::Get().Error(
|
||||
Debug::LogCategory::Rendering,
|
||||
Containers::String(
|
||||
"ManagedScriptableRenderPipelineAsset failed to resolve directional shadow planning policy asset key: ") +
|
||||
assetKey.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
ManagedScriptableRenderPipelineAsset::ManagedScriptableRenderPipelineAsset(
|
||||
ManagedRenderPipelineAssetDescriptor descriptor)
|
||||
: m_descriptor(std::move(descriptor)) {
|
||||
@@ -89,21 +124,28 @@ void ManagedScriptableRenderPipelineAsset::ConfigureCameraRenderRequest(
|
||||
size_t renderedBaseCameraCount,
|
||||
size_t renderedRequestCount,
|
||||
const DirectionalShadowPlanningSettings& directionalShadowSettings) const {
|
||||
RenderPipelineAsset::ConfigureCameraRenderRequest(
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings);
|
||||
|
||||
if (const std::shared_ptr<const ManagedRenderPipelineAssetRuntime> runtime =
|
||||
ResolveManagedAssetRuntime();
|
||||
runtime != nullptr) {
|
||||
ApplyManagedDirectionalShadowPlanningPolicyOrDefault(
|
||||
runtime->GetDirectionalShadowPlanningPolicyAssetKey(),
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings);
|
||||
runtime->ConfigureCameraRenderRequest(
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings);
|
||||
return;
|
||||
}
|
||||
|
||||
RenderPipelineAsset::ConfigureCameraRenderRequest(
|
||||
request,
|
||||
renderedBaseCameraCount,
|
||||
renderedRequestCount,
|
||||
directionalShadowSettings);
|
||||
}
|
||||
|
||||
void ManagedScriptableRenderPipelineAsset::ConfigureCameraFramePlan(
|
||||
|
||||
Reference in New Issue
Block a user