feat(new_editor): wire project, inspector, and viewport runtime
This commit is contained in:
@@ -206,23 +206,23 @@ TEST(ViewportRenderFlowUtilsTest, ApplySceneRenderRequestSetupAttachesOptionalPa
|
||||
RenderPassSequence postPasses;
|
||||
postPasses.AddPass(std::make_unique<NoopRenderPass>());
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest request = {};
|
||||
request.surface = RenderSurface(800, 600);
|
||||
request.surface.SetRenderArea(XCEngine::Math::RectInt(64, 32, 320, 240));
|
||||
XCEngine::Rendering::CameraFramePlan plan = {};
|
||||
plan.request.surface = RenderSurface(800, 600);
|
||||
plan.request.surface.SetRenderArea(XCEngine::Math::RectInt(64, 32, 320, 240));
|
||||
|
||||
ApplySceneViewportRenderRequestSetup(
|
||||
targets,
|
||||
&postPasses,
|
||||
request);
|
||||
plan);
|
||||
|
||||
EXPECT_EQ(request.postScenePasses, &postPasses);
|
||||
EXPECT_TRUE(request.objectId.IsRequested());
|
||||
ASSERT_EQ(request.objectId.surface.GetColorAttachments().size(), 1u);
|
||||
EXPECT_EQ(request.objectId.surface.GetColorAttachments()[0], &objectIdView);
|
||||
EXPECT_EQ(request.objectId.surface.GetDepthAttachment(), &objectIdDepthView);
|
||||
EXPECT_EQ(plan.postScenePasses, &postPasses);
|
||||
EXPECT_TRUE(plan.request.objectId.IsRequested());
|
||||
ASSERT_EQ(plan.request.objectId.surface.GetColorAttachments().size(), 1u);
|
||||
EXPECT_EQ(plan.request.objectId.surface.GetColorAttachments()[0], &objectIdView);
|
||||
EXPECT_EQ(plan.request.objectId.surface.GetDepthAttachment(), &objectIdDepthView);
|
||||
|
||||
const auto requestArea = request.surface.GetRenderArea();
|
||||
const auto objectIdArea = request.objectId.surface.GetRenderArea();
|
||||
const auto requestArea = plan.request.surface.GetRenderArea();
|
||||
const auto objectIdArea = plan.request.objectId.surface.GetRenderArea();
|
||||
EXPECT_EQ(objectIdArea.x, requestArea.x);
|
||||
EXPECT_EQ(objectIdArea.y, requestArea.y);
|
||||
EXPECT_EQ(objectIdArea.width, requestArea.width);
|
||||
@@ -236,16 +236,16 @@ TEST(ViewportRenderFlowUtilsTest, ApplySceneRenderRequestSetupSkipsUnavailableOp
|
||||
|
||||
RenderPassSequence postPasses;
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest request = {};
|
||||
request.postScenePasses = reinterpret_cast<RenderPassSequence*>(static_cast<uintptr_t>(0x1));
|
||||
request.objectId.surface = RenderSurface(1, 1);
|
||||
request.objectId.surface.SetColorAttachment(
|
||||
XCEngine::Rendering::CameraFramePlan plan = {};
|
||||
plan.postScenePasses = reinterpret_cast<RenderPassSequence*>(static_cast<uintptr_t>(0x1));
|
||||
plan.request.objectId.surface = RenderSurface(1, 1);
|
||||
plan.request.objectId.surface.SetColorAttachment(
|
||||
reinterpret_cast<RHIResourceView*>(static_cast<uintptr_t>(0x2)));
|
||||
|
||||
ApplySceneViewportRenderRequestSetup(targets, &postPasses, request);
|
||||
ApplySceneViewportRenderRequestSetup(targets, &postPasses, plan);
|
||||
|
||||
EXPECT_EQ(request.postScenePasses, nullptr);
|
||||
EXPECT_FALSE(request.objectId.IsRequested());
|
||||
EXPECT_EQ(plan.postScenePasses, nullptr);
|
||||
EXPECT_FALSE(plan.request.objectId.IsRequested());
|
||||
}
|
||||
|
||||
TEST(ViewportRenderFlowUtilsTest, BuildSceneViewportRenderPlanCollectsPostSceneAndOverlayPasses) {
|
||||
@@ -397,19 +397,19 @@ TEST(ViewportRenderFlowUtilsTest, ApplySceneViewportRenderPlanAttachesPlannedPas
|
||||
plan.overlayPasses.AddPass(std::make_unique<NoopRenderPass>());
|
||||
plan.clearColorOverride = XCEngine::Math::Color(0.1f, 0.2f, 0.3f, 1.0f);
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest request = {};
|
||||
request.surface = RenderSurface(800, 600);
|
||||
request.surface.SetRenderArea(XCEngine::Math::RectInt(10, 20, 300, 200));
|
||||
XCEngine::Rendering::CameraFramePlan framePlan = {};
|
||||
framePlan.request.surface = RenderSurface(800, 600);
|
||||
framePlan.request.surface.SetRenderArea(XCEngine::Math::RectInt(10, 20, 300, 200));
|
||||
|
||||
ApplySceneViewportRenderPlan(targets, plan, request);
|
||||
ApplySceneViewportRenderPlan(targets, plan, framePlan);
|
||||
|
||||
EXPECT_EQ(request.postScenePasses, &plan.postScenePasses);
|
||||
EXPECT_EQ(request.overlayPasses, &plan.overlayPasses);
|
||||
EXPECT_TRUE(request.objectId.IsRequested());
|
||||
EXPECT_TRUE(request.hasClearColorOverride);
|
||||
EXPECT_FLOAT_EQ(request.clearColorOverride.r, 0.1f);
|
||||
EXPECT_FLOAT_EQ(request.clearColorOverride.g, 0.2f);
|
||||
EXPECT_FLOAT_EQ(request.clearColorOverride.b, 0.3f);
|
||||
EXPECT_EQ(framePlan.postScenePasses, &plan.postScenePasses);
|
||||
EXPECT_EQ(framePlan.overlayPasses, &plan.overlayPasses);
|
||||
EXPECT_TRUE(framePlan.request.objectId.IsRequested());
|
||||
EXPECT_TRUE(framePlan.request.hasClearColorOverride);
|
||||
EXPECT_FLOAT_EQ(framePlan.request.clearColorOverride.r, 0.1f);
|
||||
EXPECT_FLOAT_EQ(framePlan.request.clearColorOverride.g, 0.2f);
|
||||
EXPECT_FLOAT_EQ(framePlan.request.clearColorOverride.b, 0.3f);
|
||||
}
|
||||
|
||||
TEST(ViewportRenderFlowUtilsTest, MarkSceneRenderSuccessMovesTargetsToShaderResourceState) {
|
||||
@@ -429,11 +429,11 @@ TEST(ViewportRenderFlowUtilsTest, MarkSceneRenderSuccessMovesTargetsToShaderReso
|
||||
targets.objectIdState = ResourceStates::Common;
|
||||
targets.selectionMaskState = ResourceStates::Common;
|
||||
|
||||
XCEngine::Rendering::CameraRenderRequest request = {};
|
||||
request.surface = RenderSurface(640, 360);
|
||||
ApplySceneViewportRenderRequestSetup(targets, nullptr, request);
|
||||
XCEngine::Rendering::CameraFramePlan framePlan = {};
|
||||
framePlan.request.surface = RenderSurface(640, 360);
|
||||
ApplySceneViewportRenderRequestSetup(targets, nullptr, framePlan);
|
||||
|
||||
MarkSceneViewportRenderSuccess(targets, request);
|
||||
MarkSceneViewportRenderSuccess(targets, framePlan);
|
||||
EXPECT_EQ(targets.colorState, ResourceStates::PixelShaderResource);
|
||||
EXPECT_EQ(targets.objectIdState, ResourceStates::PixelShaderResource);
|
||||
EXPECT_EQ(targets.selectionMaskState, ResourceStates::PixelShaderResource);
|
||||
@@ -443,9 +443,9 @@ TEST(ViewportRenderFlowUtilsTest, MarkSceneRenderSuccessMovesTargetsToShaderReso
|
||||
noObjectIdTargets.colorState = ResourceStates::Common;
|
||||
noObjectIdTargets.objectIdState = ResourceStates::Common;
|
||||
noObjectIdTargets.selectionMaskState = ResourceStates::Common;
|
||||
XCEngine::Rendering::CameraRenderRequest noObjectIdRequest = {};
|
||||
XCEngine::Rendering::CameraFramePlan noObjectIdPlan = {};
|
||||
|
||||
MarkSceneViewportRenderSuccess(noObjectIdTargets, noObjectIdRequest);
|
||||
MarkSceneViewportRenderSuccess(noObjectIdTargets, noObjectIdPlan);
|
||||
EXPECT_EQ(noObjectIdTargets.colorState, ResourceStates::PixelShaderResource);
|
||||
EXPECT_EQ(noObjectIdTargets.objectIdState, ResourceStates::PixelShaderResource);
|
||||
EXPECT_EQ(noObjectIdTargets.selectionMaskState, ResourceStates::PixelShaderResource);
|
||||
|
||||
Reference in New Issue
Block a user