refactor(rendering): formalize pipeline selection and engine asset discovery

This commit is contained in:
2026-04-19 04:31:48 +08:00
parent 78bcd2e9ca
commit 48bfde28e3
17 changed files with 294 additions and 121 deletions

View File

@@ -38,7 +38,8 @@ ManagedScriptableRenderPipelineAsset::ResolveManagedAssetRuntime() const {
}
std::unique_ptr<RenderPipeline> ManagedScriptableRenderPipelineAsset::CreatePipeline() const {
std::unique_ptr<RenderPipeline> pipeline = m_fallbackAsset.CreatePipeline();
std::unique_ptr<RenderPipeline> pipeline =
m_executionHostAsset.CreatePipeline();
auto* host = dynamic_cast<ScriptableRenderPipelineHost*>(pipeline.get());
if (host == nullptr) {
return pipeline;
@@ -85,7 +86,7 @@ FinalColorSettings ManagedScriptableRenderPipelineAsset::GetDefaultFinalColorSet
}
}
return m_fallbackAsset.GetDefaultFinalColorSettings();
return m_executionHostAsset.GetDefaultFinalColorSettings();
}
void ManagedScriptableRenderPipelineAsset::ConfigureCameraFramePlan(
@@ -118,29 +119,31 @@ size_t GetManagedRenderPipelineEnvironmentGeneration() {
return GetGraphicsSettingsState().GetEnvironmentGeneration();
}
void SetManagedRenderPipelineAssetDescriptor(
void SetConfiguredManagedRenderPipelineAssetDescriptor(
const ManagedRenderPipelineAssetDescriptor& descriptor) {
GetGraphicsSettingsState().SetRenderPipelineAssetDescriptor(
GetGraphicsSettingsState().SetConfiguredRenderPipelineAssetDescriptor(
descriptor);
}
void ClearManagedRenderPipelineAssetDescriptor() {
GetGraphicsSettingsState().ClearRenderPipelineAssetDescriptor();
void ClearConfiguredManagedRenderPipelineAssetDescriptor() {
GetGraphicsSettingsState().ClearConfiguredRenderPipelineAssetDescriptor();
}
ManagedRenderPipelineAssetDescriptor GetManagedRenderPipelineAssetDescriptor() {
return GetGraphicsSettingsState().GetRenderPipelineAssetDescriptor();
ManagedRenderPipelineAssetDescriptor
GetConfiguredManagedRenderPipelineAssetDescriptor() {
return GetGraphicsSettingsState()
.GetConfiguredRenderPipelineAssetDescriptor();
}
std::shared_ptr<const RenderPipelineAsset>
CreateManagedOrDefaultScriptableRenderPipelineAsset() {
CreateConfiguredManagedRenderPipelineAsset() {
const ManagedRenderPipelineAssetDescriptor descriptor =
GetGraphicsSettingsState().GetRenderPipelineAssetDescriptor();
GetGraphicsSettingsState().GetConfiguredRenderPipelineAssetDescriptor();
if (descriptor.IsValid()) {
return std::make_shared<ManagedScriptableRenderPipelineAsset>(descriptor);
}
return std::make_shared<ScriptableRenderPipelineHostAsset>();
return nullptr;
}
} // namespace Pipelines