refactor: build sorted camera render requests

This commit is contained in:
2026-04-01 01:26:11 +08:00
parent 1af3cf87c4
commit 96a66d6f6d
2 changed files with 54 additions and 15 deletions

View File

@@ -275,7 +275,7 @@ TEST(CameraRenderer_Test, ShutsDownSequencesWhenPostPassInitializationFails) {
"shutdown:pre" }));
}
TEST(SceneRenderer_Test, BuildsSingleExplicitRequestFromSelectedCamera) {
TEST(SceneRenderer_Test, BuildsSortedRequestsForAllUsableCamerasAndHonorsOverrideCamera) {
Scene scene("SceneRendererRequestScene");
GameObject* lowCameraObject = scene.CreateGameObject("LowCamera");
@@ -294,17 +294,21 @@ TEST(SceneRenderer_Test, BuildsSingleExplicitRequestFromSelectedCamera) {
const std::vector<CameraRenderRequest> defaultRequests =
renderer.BuildRenderRequests(scene, nullptr, context, surface);
ASSERT_EQ(defaultRequests.size(), 1u);
EXPECT_EQ(defaultRequests[0].camera, highCamera);
EXPECT_EQ(defaultRequests[0].cameraDepth, 5.0f);
ASSERT_EQ(defaultRequests.size(), 2u);
EXPECT_EQ(defaultRequests[0].camera, lowCamera);
EXPECT_EQ(defaultRequests[0].cameraDepth, 1.0f);
EXPECT_EQ(defaultRequests[0].clearFlags, RenderClearFlags::All);
EXPECT_EQ(defaultRequests[0].surface.GetWidth(), 320u);
EXPECT_EQ(defaultRequests[0].surface.GetHeight(), 180u);
EXPECT_EQ(defaultRequests[1].camera, highCamera);
EXPECT_EQ(defaultRequests[1].cameraDepth, 5.0f);
EXPECT_EQ(defaultRequests[1].clearFlags, RenderClearFlags::Depth);
const std::vector<CameraRenderRequest> overrideRequests =
renderer.BuildRenderRequests(scene, lowCamera, context, surface);
ASSERT_EQ(overrideRequests.size(), 1u);
EXPECT_EQ(overrideRequests[0].camera, lowCamera);
EXPECT_EQ(overrideRequests[0].clearFlags, RenderClearFlags::All);
}
TEST(SceneRenderer_Test, ForwardsPipelineLifetimeAndRenderCallsToCameraRenderer) {