test: close render object id coverage gaps
This commit is contained in:
@@ -29,6 +29,7 @@ using XCEngine::Rendering::BuildRenderCameraData;
|
||||
using XCEngine::Rendering::CompareVisibleRenderItemsStable;
|
||||
using XCEngine::Rendering::CollectRenderItemsForEntityIds;
|
||||
using XCEngine::Rendering::ConvertRenderObjectIdToRuntimeObjectId;
|
||||
using XCEngine::Rendering::IsValidRenderObjectId;
|
||||
using XCEngine::Rendering::VisibleRenderItem;
|
||||
using XCEngine::Rendering::kInvalidRenderObjectId;
|
||||
using XCEngine::Resources::Mesh;
|
||||
@@ -200,9 +201,10 @@ TEST_F(RenderSceneUtilityTest, CollectRenderItemsForEntityIdsFiltersInvalidTarge
|
||||
ASSERT_EQ(renderables.size(), 1u);
|
||||
EXPECT_EQ(renderables[0].gameObject, validObject);
|
||||
EXPECT_EQ(renderables[0].meshRenderer, validObject->GetComponent<MeshRendererComponent>());
|
||||
EXPECT_TRUE(renderables[0].hasSection);
|
||||
EXPECT_TRUE(IsValidRenderObjectId(renderables[0].renderObjectId));
|
||||
EXPECT_NE(renderables[0].renderObjectId, kInvalidRenderObjectId);
|
||||
EXPECT_EQ(ConvertRenderObjectIdToRuntimeObjectId(renderables[0].renderObjectId), validObject->GetID());
|
||||
EXPECT_TRUE(renderables[0].hasSection);
|
||||
}
|
||||
|
||||
TEST_F(RenderSceneUtilityTest, CollectRenderItemsForEntityIdsExpandsMeshSections) {
|
||||
@@ -221,6 +223,8 @@ TEST_F(RenderSceneUtilityTest, CollectRenderItemsForEntityIdsExpandsMeshSections
|
||||
|
||||
ASSERT_EQ(renderables.size(), 2u);
|
||||
EXPECT_EQ(renderables[0].gameObject, object);
|
||||
EXPECT_TRUE(IsValidRenderObjectId(renderables[0].renderObjectId));
|
||||
EXPECT_EQ(renderables[0].renderObjectId, renderables[1].renderObjectId);
|
||||
EXPECT_EQ(renderables[0].sectionIndex, 0u);
|
||||
EXPECT_EQ(renderables[0].materialIndex, 0u);
|
||||
EXPECT_EQ(renderables[1].sectionIndex, 1u);
|
||||
|
||||
@@ -17,6 +17,7 @@ using XCEngine::Editor::ViewportObjectIdReadbackRequest;
|
||||
using XCEngine::RHI::RHICommandQueue;
|
||||
using XCEngine::RHI::RHITexture;
|
||||
using XCEngine::RHI::ResourceStates;
|
||||
using XCEngine::Rendering::kInvalidRenderObjectId;
|
||||
using XCEngine::UI::UIPoint;
|
||||
using XCEngine::UI::UISize;
|
||||
|
||||
@@ -85,6 +86,16 @@ TEST(ViewportObjectIdPickerTest, BuildReadbackRequestMapsViewportCoordinatesToTe
|
||||
TEST(ViewportObjectIdPickerTest, TryPickViewportObjectIdEntityDecodesReadbackColor) {
|
||||
const ViewportObjectIdPickContext context = CreateValidContext();
|
||||
|
||||
const ViewportObjectIdPickResult result = PickViewportObjectIdEntity(
|
||||
context,
|
||||
[](const ViewportObjectIdReadbackRequest&, std::array<uint8_t, 4>& outRgba) {
|
||||
outRgba = { 0x78, 0x56, 0x34, 0x12 };
|
||||
return true;
|
||||
});
|
||||
EXPECT_EQ(result.renderObjectId, 0x12345678u);
|
||||
EXPECT_EQ(result.entityId, 0x12345678ull);
|
||||
EXPECT_TRUE(result.HasResolvedSample());
|
||||
|
||||
uint64_t entityId = 0;
|
||||
ViewportObjectIdReadbackRequest capturedRequest = {};
|
||||
const bool picked = TryPickViewportObjectIdEntity(
|
||||
@@ -113,6 +124,7 @@ TEST(ViewportObjectIdPickerTest, PickViewportObjectIdEntityReturnsSuccessForZero
|
||||
});
|
||||
|
||||
EXPECT_EQ(result.status, ViewportObjectIdPickStatus::Success);
|
||||
EXPECT_EQ(result.renderObjectId, kInvalidRenderObjectId);
|
||||
EXPECT_EQ(result.entityId, 0u);
|
||||
EXPECT_TRUE(result.HasResolvedSample());
|
||||
}
|
||||
@@ -128,6 +140,7 @@ TEST(ViewportObjectIdPickerTest, PickViewportObjectIdEntityReturnsUnavailableWhe
|
||||
});
|
||||
|
||||
EXPECT_EQ(result.status, ViewportObjectIdPickStatus::Unavailable);
|
||||
EXPECT_EQ(result.renderObjectId, kInvalidRenderObjectId);
|
||||
EXPECT_EQ(result.entityId, 0u);
|
||||
EXPECT_FALSE(result.HasResolvedSample());
|
||||
}
|
||||
@@ -157,6 +170,7 @@ TEST(ViewportObjectIdPickerTest, PickViewportObjectIdEntityReportsReadbackFailur
|
||||
});
|
||||
|
||||
EXPECT_EQ(result.status, ViewportObjectIdPickStatus::ReadbackFailed);
|
||||
EXPECT_EQ(result.renderObjectId, kInvalidRenderObjectId);
|
||||
EXPECT_EQ(result.entityId, 0u);
|
||||
EXPECT_FALSE(result.HasResolvedSample());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user