refactor(srp): let universal assets declare native backend keys
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <XCEngine/Rendering/Execution/CameraRenderer.h>
|
||||
#include <XCEngine/Rendering/Execution/RenderPipelineHost.h>
|
||||
#include <XCEngine/Rendering/Graph/RenderGraph.h>
|
||||
#include <XCEngine/Rendering/Pipelines/BuiltinForwardPipeline.h>
|
||||
#include <XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h>
|
||||
#include <XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h>
|
||||
#include <XCEngine/Rendering/RenderPassGraphContract.h>
|
||||
@@ -22,6 +23,7 @@
|
||||
#include <XCEngine/Scene/Scene.h>
|
||||
|
||||
#include "Rendering/Execution/Internal/CameraFrameGraph/SurfaceResolver.h"
|
||||
#include "Rendering/Internal/RenderPipelineFactory.h"
|
||||
#include <functional>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -4508,6 +4510,39 @@ TEST(ScriptableRenderPipelineHost_Test, BindsCurrentPipelineRendererIntoStageRec
|
||||
host.GetPipelineRenderer());
|
||||
}
|
||||
|
||||
TEST(
|
||||
RenderPipelineFactory_Test,
|
||||
NullPreferredAssetSkipsConfiguredManagedPipelineAssetWhenCreatingNativeSceneRenderer) {
|
||||
Pipelines::ClearManagedRenderPipelineBridge();
|
||||
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
|
||||
|
||||
const Pipelines::ManagedRenderPipelineAssetDescriptor descriptor = {
|
||||
"GameScripts",
|
||||
"Gameplay",
|
||||
"ManagedRenderPipelineProbeAsset"
|
||||
};
|
||||
auto bridgeState = std::make_shared<MockManagedRenderPipelineBridgeState>();
|
||||
Pipelines::SetManagedRenderPipelineBridge(
|
||||
std::make_shared<MockManagedRenderPipelineBridge>(bridgeState));
|
||||
Pipelines::SetConfiguredManagedRenderPipelineAssetDescriptor(descriptor);
|
||||
|
||||
std::shared_ptr<const RenderPipelineAsset> resolvedAsset = nullptr;
|
||||
std::unique_ptr<NativeSceneRenderer> sceneRenderer =
|
||||
Internal::CreateNativeSceneRendererFromAsset(
|
||||
nullptr,
|
||||
&resolvedAsset);
|
||||
|
||||
ASSERT_NE(sceneRenderer, nullptr);
|
||||
EXPECT_EQ(resolvedAsset, nullptr);
|
||||
EXPECT_NE(
|
||||
dynamic_cast<Pipelines::BuiltinForwardPipeline*>(sceneRenderer.get()),
|
||||
nullptr);
|
||||
EXPECT_EQ(bridgeState->createAssetRuntimeCalls, 0);
|
||||
|
||||
Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
|
||||
Pipelines::ClearManagedRenderPipelineBridge();
|
||||
}
|
||||
|
||||
TEST(
|
||||
ScriptableRenderPipelineHost_Test,
|
||||
FallsBackToRendererWhenStageRecorderDeclinesRecording) {
|
||||
|
||||
Reference in New Issue
Block a user