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

@@ -4833,6 +4833,55 @@ TEST(
Pipelines::ClearManagedRenderPipelineBridge();
}
TEST(
DefaultNativeSceneBackend_Test,
ReusesBuiltinForwardFeaturesWithoutInstallingFallbackStandalonePasses) {
std::unique_ptr<SceneDrawBackend> sceneDrawBackend =
Internal::CreateDefaultSceneDrawBackend();
ASSERT_NE(sceneDrawBackend, nullptr);
SceneRenderFeatureHost* const featureHost =
sceneDrawBackend->GetSceneFeatureHost();
ASSERT_NE(featureHost, nullptr);
EXPECT_EQ(featureHost->GetFeaturePassCount(), 2u);
auto* pipeline =
dynamic_cast<RenderPipeline*>(sceneDrawBackend.get());
ASSERT_NE(pipeline, nullptr);
EXPECT_EQ(
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::DepthOnly),
nullptr);
EXPECT_EQ(
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::ShadowCaster),
nullptr);
}
TEST(
DefaultPipelineBackendAsset_Test,
CreatesFallbackPipelineWithSameDefaultNativeFeatureHost) {
const std::shared_ptr<const RenderPipelineAsset> backendAsset =
Internal::CreateDefaultPipelineBackendAsset();
ASSERT_NE(backendAsset, nullptr);
std::unique_ptr<RenderPipeline> pipeline = backendAsset->CreatePipeline();
ASSERT_NE(pipeline, nullptr);
auto* sceneDrawBackend =
dynamic_cast<SceneDrawBackend*>(pipeline.get());
ASSERT_NE(sceneDrawBackend, nullptr);
SceneRenderFeatureHost* const featureHost =
sceneDrawBackend->GetSceneFeatureHost();
ASSERT_NE(featureHost, nullptr);
EXPECT_EQ(featureHost->GetFeaturePassCount(), 2u);
EXPECT_NE(
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::DepthOnly),
nullptr);
EXPECT_NE(
pipeline->GetCameraFrameStandalonePass(CameraFrameStage::ShadowCaster),
nullptr);
}
TEST(ManagedScriptableRenderPipelineAsset_Test, LetsManagedBridgeConfigureCameraRenderRequests) {
Pipelines::ClearManagedRenderPipelineBridge();