Close out SRP/URP phase 1 validation

This commit is contained in:
2026-04-26 00:49:45 +08:00
parent c62a7fec0a
commit e1b8bebcfb
5 changed files with 185 additions and 259 deletions

View File

@@ -45,8 +45,6 @@
#include <XCEngine/Scripting/ScriptComponent.h>
#include <XCEngine/Scripting/ScriptEngine.h>
#include "Rendering/Internal/RenderPipelineFactory.h"
#include <algorithm>
#include <array>
#include <cstdint>
@@ -77,40 +75,6 @@ void ExpectVector4Near(const XCEngine::Math::Vector4& actual, const XCEngine::Ma
EXPECT_NEAR(actual.w, expected.w, tolerance);
}
std::shared_ptr<const XCEngine::Rendering::RenderPipelineAsset>
CreateBuiltinForwardPipelineRendererAssetForTest() {
return std::make_shared<
XCEngine::Rendering::Pipelines::BuiltinForwardPipelineAsset>();
}
class ScopedPipelineRendererAssetFactoryRegistration final {
public:
ScopedPipelineRendererAssetFactoryRegistration(
std::string key,
XCEngine::Rendering::Internal::PipelineRendererAssetFactory factory)
: m_key(std::move(key))
, m_registered(
XCEngine::Rendering::Internal::RegisterPipelineRendererAssetFactory(
m_key,
std::move(factory))) {
}
~ScopedPipelineRendererAssetFactoryRegistration() {
if (m_registered) {
(void)XCEngine::Rendering::Internal::
UnregisterPipelineRendererAssetFactory(m_key);
}
}
bool IsRegistered() const {
return m_registered;
}
private:
std::string m_key;
bool m_registered = false;
};
class CapturingLogSink final : public XCEngine::Debug::ILogSink {
public:
void Log(const XCEngine::Debug::LogEntry& entry) override {
@@ -2978,42 +2942,6 @@ TEST_F(
DefaultNativeBackend);
}
TEST_F(
MonoScriptRuntimeTest,
ManagedRenderPipelineBridgeResolvesRegisteredAliasBackendKey) {
ScopedPipelineRendererAssetFactoryRegistration registration(
"BuiltinForwardAlias",
&CreateBuiltinForwardPipelineRendererAssetForTest);
ASSERT_TRUE(registration.IsRegistered());
const auto bridge =
XCEngine::Rendering::Pipelines::GetManagedRenderPipelineBridge();
ASSERT_NE(bridge, nullptr);
const XCEngine::Rendering::Pipelines::ManagedRenderPipelineAssetDescriptor
descriptor = {
"GameScripts",
"Gameplay",
"ManagedBuiltinForwardAliasRenderPipelineProbeAsset"
};
std::shared_ptr<const XCEngine::Rendering::Pipelines::ManagedRenderPipelineAssetRuntime>
assetRuntime = bridge->CreateAssetRuntime(descriptor);
ASSERT_NE(assetRuntime, nullptr);
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);
}
TEST_F(
MonoScriptRuntimeTest,
ManagedRenderPipelineBridgeUsesDefaultRendererSelectionForNativeBackendPolicy) {