feat(scripting): add managed SRP runtime bridge
This commit is contained in:
@@ -4253,6 +4253,60 @@ TEST(ScriptableRenderPipelineHost_Test, PrefersStageRecorderBeforeFallbackRender
|
||||
EXPECT_EQ(replacementRecorderState->shutdownCalls, 1);
|
||||
}
|
||||
|
||||
TEST(
|
||||
ScriptableRenderPipelineHost_Test,
|
||||
FallsBackToRendererWhenStageRecorderDeclinesRecording) {
|
||||
auto rendererState = std::make_shared<MockPipelineState>();
|
||||
auto recorderState = std::make_shared<MockStageRecorderState>();
|
||||
|
||||
rendererState->supportsMainSceneRenderGraph = true;
|
||||
recorderState->supportsMainSceneRenderGraph = true;
|
||||
recorderState->recordMainSceneResult = false;
|
||||
|
||||
Pipelines::ScriptableRenderPipelineHost host(
|
||||
std::make_unique<MockPipeline>(rendererState));
|
||||
host.SetStageRecorder(
|
||||
std::make_unique<MockStageRecorder>(recorderState));
|
||||
|
||||
Scene scene("ScriptableRenderPipelineFallbackScene");
|
||||
GameObject* cameraObject = scene.CreateGameObject("Camera");
|
||||
auto* camera = cameraObject->AddComponent<CameraComponent>();
|
||||
camera->SetPrimary(true);
|
||||
camera->SetDepth(1.0f);
|
||||
|
||||
const RenderContext context = CreateValidContext();
|
||||
const RenderSurface surface(800, 600);
|
||||
RenderSceneData sceneData =
|
||||
CreateSceneDataForCamera(scene, *camera, surface);
|
||||
RenderGraph graph = {};
|
||||
RenderGraphBuilder graphBuilder(graph);
|
||||
RenderGraphBlackboard blackboard = {};
|
||||
bool executionSucceeded = true;
|
||||
const RenderPipelineStageRenderGraphContext graphContext = {
|
||||
graphBuilder,
|
||||
"MainScene",
|
||||
CameraFrameStage::MainScene,
|
||||
context,
|
||||
sceneData,
|
||||
surface,
|
||||
nullptr,
|
||||
nullptr,
|
||||
XCEngine::RHI::ResourceStates::Common,
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
&executionSucceeded,
|
||||
&blackboard
|
||||
};
|
||||
|
||||
EXPECT_TRUE(host.SupportsStageRenderGraph(CameraFrameStage::MainScene));
|
||||
EXPECT_TRUE(host.RecordStageRenderGraph(graphContext));
|
||||
EXPECT_EQ(recorderState->recordMainSceneCalls, 1);
|
||||
EXPECT_EQ(rendererState->recordMainSceneCalls, 1);
|
||||
EXPECT_TRUE(recorderState->lastReceivedRenderGraphBlackboard);
|
||||
EXPECT_TRUE(rendererState->lastReceivedRenderGraphBlackboard);
|
||||
}
|
||||
|
||||
TEST(ScriptableRenderPipelineHost_Test, DirectHostDoesNotInstallBuiltinStandaloneStagePasses) {
|
||||
auto rendererState = std::make_shared<MockPipelineState>();
|
||||
Pipelines::ScriptableRenderPipelineHost host(
|
||||
|
||||
Reference in New Issue
Block a user