Align builtin and programmable render pipeline selection

This commit is contained in:
2026-04-26 15:20:30 +08:00
parent 8d56bb408a
commit f4afaf184e
15 changed files with 125 additions and 379 deletions

View File

@@ -5300,14 +5300,50 @@ TEST(CameraRenderer_Test, DefaultPipelineAssetUsesManagedSelectionWhenPresent) {
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
}
TEST(
CameraRenderer_Test,
DefaultPipelineAssetUsesBuiltinPipelineWhenManagedSelectionIsAbsent) {
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
CameraRenderer renderer;
EXPECT_NE(
dynamic_cast<const Pipelines::BuiltinForwardPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_EQ(
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_NE(
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
renderer.GetPipeline()),
nullptr);
EXPECT_EQ(
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
renderer.GetPipeline()),
nullptr);
}
TEST(CameraRenderer_Test, DefaultPipelineAssetRefreshesWhenManagedSelectionChanges) {
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
CameraRenderer renderer;
EXPECT_NE(
dynamic_cast<const Pipelines::BuiltinForwardPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_EQ(
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_NE(
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
renderer.GetPipeline()),
nullptr);
EXPECT_EQ(
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
renderer.GetPipeline()),
nullptr);
const Pipelines::ManagedRenderPipelineAssetDescriptor descriptor = {
"GameScripts",
@@ -5323,12 +5359,28 @@ TEST(CameraRenderer_Test, DefaultPipelineAssetRefreshesWhenManagedSelectionChang
EXPECT_EQ(managedAsset->GetDescriptor().assemblyName, "GameScripts");
EXPECT_EQ(managedAsset->GetDescriptor().namespaceName, "Gameplay");
EXPECT_EQ(managedAsset->GetDescriptor().className, "ManagedRenderPipelineProbeAsset");
EXPECT_NE(
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
renderer.GetPipeline()),
nullptr);
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
EXPECT_NE(
dynamic_cast<const Pipelines::BuiltinForwardPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_EQ(
dynamic_cast<const Pipelines::ManagedScriptableRenderPipelineAsset*>(
renderer.GetPipelineAsset()),
nullptr);
EXPECT_NE(
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(
renderer.GetPipeline()),
nullptr);
EXPECT_EQ(
dynamic_cast<Pipelines::ScriptableRenderPipelineHost*>(
renderer.GetPipeline()),
nullptr);
}
TEST(CameraRenderer_Test, RebindsToResolvedDefaultAssetWhenPreferredAssetCannotCreatePipeline) {