rendering: extract default native scene backend

This commit is contained in:
2026-04-26 01:59:21 +08:00
parent b13cb6506c
commit 8eb1f8c5a2
9 changed files with 152 additions and 45 deletions

View File

@@ -2040,13 +2040,16 @@ private:
return m_boundSceneDrawBackend;
}
const bool useDefaultNativeBackend =
m_assetRuntime != nullptr &&
m_assetRuntime->GetPipelineRendererAssetPolicy() ==
Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend;
const std::shared_ptr<const Rendering::RenderPipelineAsset>
resolvedPipelineBackendAsset =
m_assetRuntime == nullptr
? nullptr
: m_assetRuntime->GetPipelineRendererAssetPolicy() ==
Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend
: useDefaultNativeBackend
? Rendering::Internal::CreateDefaultPipelineBackendAsset()
: m_assetRuntime->GetSharedPipelineBackendAsset();
if (resolvedPipelineBackendAsset == nullptr) {
@@ -2060,8 +2063,10 @@ private:
m_ownedSceneDrawBackend->Shutdown();
}
m_ownedSceneDrawBackend =
Rendering::Internal::CreateSceneDrawBackendFromAsset(
resolvedPipelineBackendAsset);
useDefaultNativeBackend
? Rendering::Internal::CreateDefaultSceneDrawBackend()
: Rendering::Internal::CreateSceneDrawBackendFromAsset(
resolvedPipelineBackendAsset);
m_ownedSharedPipelineBackendAsset =
resolvedPipelineBackendAsset;
}