Refactor editor window synchronization flow

This commit is contained in:
2026-04-26 00:19:58 +08:00
parent 12b71a319f
commit 5b6c46d382
32 changed files with 1787 additions and 320 deletions

View File

@@ -2928,7 +2928,7 @@ TEST_F(
TEST_F(
MonoScriptRuntimeTest,
ManagedRenderPipelineBridgeRuntimeExposesBuiltinForwardRendererAsset) {
ManagedRenderPipelineBridgeRuntimeExposesDefaultNativeBackendPolicy) {
const auto bridge =
XCEngine::Rendering::Pipelines::GetManagedRenderPipelineBridge();
ASSERT_NE(bridge, nullptr);
@@ -2945,20 +2945,16 @@ TEST_F(
const std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
rendererAsset = assetRuntime->GetPipelineRendererAsset();
ASSERT_NE(rendererAsset, nullptr);
std::unique_ptr<XCEngine::Rendering::RenderPipeline> pipeline =
rendererAsset->CreatePipeline();
ASSERT_NE(pipeline, nullptr);
EXPECT_NE(
dynamic_cast<XCEngine::Rendering::Pipelines::BuiltinForwardPipeline*>(
pipeline.get()),
nullptr);
EXPECT_EQ(rendererAsset, nullptr);
EXPECT_EQ(
assetRuntime->GetPipelineRendererAssetPolicy(),
XCEngine::Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend);
}
TEST_F(
MonoScriptRuntimeTest,
ScriptCoreUniversalRenderPipelineAssetExposesBuiltinForwardRendererAsset) {
ScriptCoreUniversalRenderPipelineAssetExposesDefaultNativeBackendPolicy) {
const auto bridge =
XCEngine::Rendering::Pipelines::GetManagedRenderPipelineBridge();
ASSERT_NE(bridge, nullptr);
@@ -2975,15 +2971,11 @@ TEST_F(
const std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
rendererAsset = assetRuntime->GetPipelineRendererAsset();
ASSERT_NE(rendererAsset, nullptr);
std::unique_ptr<XCEngine::Rendering::RenderPipeline> pipeline =
rendererAsset->CreatePipeline();
ASSERT_NE(pipeline, nullptr);
EXPECT_NE(
dynamic_cast<XCEngine::Rendering::Pipelines::BuiltinForwardPipeline*>(
pipeline.get()),
nullptr);
EXPECT_EQ(rendererAsset, nullptr);
EXPECT_EQ(
assetRuntime->GetPipelineRendererAssetPolicy(),
XCEngine::Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend);
}
TEST_F(
@@ -3024,7 +3016,7 @@ TEST_F(
TEST_F(
MonoScriptRuntimeTest,
ManagedRenderPipelineBridgeUsesDefaultRendererSelectionForNativeBackendAsset) {
ManagedRenderPipelineBridgeUsesDefaultRendererSelectionForNativeBackendPolicy) {
const auto bridge =
XCEngine::Rendering::Pipelines::GetManagedRenderPipelineBridge();
ASSERT_NE(bridge, nullptr);
@@ -3041,13 +3033,19 @@ TEST_F(
const std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
rendererAsset = assetRuntime->GetPipelineRendererAsset();
ASSERT_NE(rendererAsset, nullptr);
EXPECT_EQ(rendererAsset, nullptr);
EXPECT_EQ(
assetRuntime->GetPipelineRendererAssetPolicy(),
XCEngine::Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend);
XCEngine::Rendering::Pipelines::ManagedScriptableRenderPipelineAsset
asset(descriptor);
std::unique_ptr<XCEngine::Rendering::RenderPipeline> pipeline =
rendererAsset->CreatePipeline();
asset.CreatePipeline();
ASSERT_NE(pipeline, nullptr);
EXPECT_NE(
dynamic_cast<XCEngine::Rendering::Pipelines::BuiltinForwardPipeline*>(
dynamic_cast<XCEngine::Rendering::Pipelines::ScriptableRenderPipelineHost*>(
pipeline.get()),
nullptr);
}
@@ -3071,13 +3069,19 @@ TEST_F(
const std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
rendererAsset = assetRuntime->GetPipelineRendererAsset();
ASSERT_NE(rendererAsset, nullptr);
EXPECT_EQ(rendererAsset, nullptr);
EXPECT_EQ(
assetRuntime->GetPipelineRendererAssetPolicy(),
XCEngine::Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend);
XCEngine::Rendering::Pipelines::ManagedScriptableRenderPipelineAsset
asset(descriptor);
std::unique_ptr<XCEngine::Rendering::RenderPipeline> pipeline =
rendererAsset->CreatePipeline();
asset.CreatePipeline();
ASSERT_NE(pipeline, nullptr);
EXPECT_NE(
dynamic_cast<XCEngine::Rendering::Pipelines::BuiltinForwardPipeline*>(
dynamic_cast<XCEngine::Rendering::Pipelines::ScriptableRenderPipelineHost*>(
pipeline.get()),
nullptr);
}
@@ -3101,15 +3105,11 @@ TEST_F(
const std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
rendererAsset = assetRuntime->GetPipelineRendererAsset();
ASSERT_NE(rendererAsset, nullptr);
std::unique_ptr<XCEngine::Rendering::RenderPipeline> rendererPipeline =
rendererAsset->CreatePipeline();
ASSERT_NE(rendererPipeline, nullptr);
EXPECT_NE(
dynamic_cast<XCEngine::Rendering::Pipelines::BuiltinForwardPipeline*>(
rendererPipeline.get()),
nullptr);
EXPECT_EQ(rendererAsset, nullptr);
EXPECT_EQ(
assetRuntime->GetPipelineRendererAssetPolicy(),
XCEngine::Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::
DefaultNativeBackend);
Scene* runtimeScene =
CreateScene("ManagedFallbackRendererSelectionConsistencyScene");