refactor(rendering): move host standalone pass defaults into assets
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
#include "Rendering/Pipelines/ScriptableRenderPipelineHost.h"
|
||||
|
||||
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
|
||||
#include "Rendering/Passes/BuiltinDepthOnlyPass.h"
|
||||
#include "Rendering/Passes/BuiltinObjectIdPass.h"
|
||||
#include "Rendering/Passes/BuiltinShadowCasterPass.h"
|
||||
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
@@ -32,18 +32,6 @@ std::unique_ptr<RenderPipelineRenderer> CreatePipelineRendererFromAsset(
|
||||
return std::make_unique<BuiltinForwardPipeline>();
|
||||
}
|
||||
|
||||
void InstallDefaultStandaloneStagePasses(RenderPipeline& pipeline) {
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ObjectId,
|
||||
std::make_unique<Passes::BuiltinObjectIdPass>());
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::DepthOnly,
|
||||
std::make_unique<Passes::BuiltinDepthOnlyPass>());
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ShadowCaster,
|
||||
std::make_unique<Passes::BuiltinShadowCasterPass>());
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
ScriptableRenderPipelineHost::ScriptableRenderPipelineHost()
|
||||
@@ -52,7 +40,6 @@ ScriptableRenderPipelineHost::ScriptableRenderPipelineHost()
|
||||
|
||||
ScriptableRenderPipelineHost::ScriptableRenderPipelineHost(
|
||||
std::unique_ptr<RenderPipelineRenderer> pipelineRenderer) {
|
||||
InstallDefaultStandaloneStagePasses(*this);
|
||||
ResetPipelineRenderer(std::move(pipelineRenderer));
|
||||
}
|
||||
|
||||
@@ -62,7 +49,6 @@ ScriptableRenderPipelineHost::ScriptableRenderPipelineHost(
|
||||
pipelineRendererAsset != nullptr
|
||||
? std::move(pipelineRendererAsset)
|
||||
: CreateDefaultPipelineRendererAsset()) {
|
||||
InstallDefaultStandaloneStagePasses(*this);
|
||||
ResetPipelineRenderer(
|
||||
CreatePipelineRendererFromAsset(m_pipelineRendererAsset));
|
||||
}
|
||||
@@ -267,8 +253,27 @@ ScriptableRenderPipelineHostAsset::ScriptableRenderPipelineHostAsset(
|
||||
}
|
||||
|
||||
std::unique_ptr<RenderPipeline> ScriptableRenderPipelineHostAsset::CreatePipeline() const {
|
||||
return std::make_unique<ScriptableRenderPipelineHost>(
|
||||
m_pipelineRendererAsset);
|
||||
std::unique_ptr<RenderPipeline> pipeline =
|
||||
std::make_unique<ScriptableRenderPipelineHost>(
|
||||
m_pipelineRendererAsset);
|
||||
if (pipeline != nullptr) {
|
||||
ConfigurePipeline(*pipeline);
|
||||
}
|
||||
|
||||
return pipeline;
|
||||
}
|
||||
|
||||
void ScriptableRenderPipelineHostAsset::ConfigurePipeline(
|
||||
RenderPipeline& pipeline) const {
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ObjectId,
|
||||
std::make_unique<Passes::BuiltinObjectIdPass>());
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::DepthOnly,
|
||||
std::make_unique<Passes::BuiltinDepthOnlyPass>());
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ShadowCaster,
|
||||
std::make_unique<Passes::BuiltinShadowCasterPass>());
|
||||
}
|
||||
|
||||
FinalColorSettings ScriptableRenderPipelineHostAsset::GetDefaultFinalColorSettings() const {
|
||||
|
||||
Reference in New Issue
Block a user