refactor(srp): decouple managed pipeline assets from fixed native backend
This commit is contained in:
@@ -37,9 +37,33 @@ ManagedScriptableRenderPipelineAsset::ResolveManagedAssetRuntime() const {
|
||||
return m_managedAssetRuntime;
|
||||
}
|
||||
|
||||
std::shared_ptr<const RenderPipelineAsset>
|
||||
ManagedScriptableRenderPipelineAsset::ResolvePipelineRendererAsset() const {
|
||||
if (const std::shared_ptr<const ManagedRenderPipelineAssetRuntime> runtime =
|
||||
ResolveManagedAssetRuntime();
|
||||
runtime != nullptr) {
|
||||
return runtime->GetPipelineRendererAsset();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ScriptableRenderPipelineHostAsset
|
||||
ManagedScriptableRenderPipelineAsset::CreateExecutionHostAsset() const {
|
||||
if (const std::shared_ptr<const RenderPipelineAsset> pipelineRendererAsset =
|
||||
ResolvePipelineRendererAsset();
|
||||
pipelineRendererAsset != nullptr) {
|
||||
return ScriptableRenderPipelineHostAsset(pipelineRendererAsset);
|
||||
}
|
||||
|
||||
return ScriptableRenderPipelineHostAsset();
|
||||
}
|
||||
|
||||
std::unique_ptr<RenderPipeline> ManagedScriptableRenderPipelineAsset::CreatePipeline() const {
|
||||
const ScriptableRenderPipelineHostAsset executionHostAsset =
|
||||
CreateExecutionHostAsset();
|
||||
std::unique_ptr<RenderPipeline> pipeline =
|
||||
m_executionHostAsset.CreatePipeline();
|
||||
executionHostAsset.CreatePipeline();
|
||||
auto* host = dynamic_cast<ScriptableRenderPipelineHost*>(pipeline.get());
|
||||
if (host == nullptr) {
|
||||
return pipeline;
|
||||
@@ -86,7 +110,9 @@ FinalColorSettings ManagedScriptableRenderPipelineAsset::GetDefaultFinalColorSet
|
||||
}
|
||||
}
|
||||
|
||||
return m_executionHostAsset.GetDefaultFinalColorSettings();
|
||||
const ScriptableRenderPipelineHostAsset executionHostAsset =
|
||||
CreateExecutionHostAsset();
|
||||
return executionHostAsset.GetDefaultFinalColorSettings();
|
||||
}
|
||||
|
||||
void SetManagedRenderPipelineBridge(
|
||||
|
||||
Reference in New Issue
Block a user