This commit is contained in:
2026-08-24 10:45:26 +08:00
parent 4f21169ade
commit cb9822074b
31 changed files with 363 additions and 536 deletions
+9 -3
View File
@@ -15,7 +15,6 @@ void verify_visual(Item valid, Item) {
object->template set<&Visual::Prop::items>(std::vector<Item>{valid});
object->advance();
EXPECT_EQ(object->template read_prop<typename Visual::Base_Tag>().items.size(), 1U);
EXPECT_EQ(object->template read_state<typename Visual::Base_Tag>().item_count, 1U);
}
}
TEST(Render_3D_Visual, Migrated_Families_Build_And_Validate) {
@@ -41,7 +40,10 @@ TEST(Render_3D_Scene, Builder_Instantiates_Async_Paint_Contract) {
auto visual_result = typename Visual_Object::Builder{}.build();
ASSERT_TRUE(visual_result.has_value());
auto visual = std::move(visual_result).value();
typename Scene_Object::Builder scene_builder(visual.get());
auto camera = *Impl<Camera_3D>::Builder{}.build();
auto axes = *Impl<Axes_3D>::Builder{}.build();
typename Scene_Object::Builder scene_builder;
scene_builder.add_renderable(visual.get()).add_camera(camera.get()).add_axes(axes.get());
static_assert(std::same_as<decltype(scene_builder.build()), std::expected<std::unique_ptr<Scene_Object>, Dependency_Graph_Error>>);
}
TEST(Render_3D_Scene, Paint_Submits_Without_Waiting_For_Gpu) {
@@ -50,10 +52,14 @@ TEST(Render_3D_Scene, Paint_Submits_Without_Waiting_For_Gpu) {
auto visual_result = typename Visual_Object::Builder{}.build();
ASSERT_TRUE(visual_result.has_value());
auto visual = std::move(visual_result).value();
auto camera = *Impl<Camera_3D>::Builder{}.build();
auto axes = *Impl<Axes_3D>::Builder{}.build();
visual->set<&Point_Visual::Prop::items>(std::vector<Point>{Point{.position = {0.0F, 0.0F, 0.0F}, .color = Color::red_color(), .diameter_px = 8.0F}});
visual->advance();
try {
auto scene_result = typename Scene_Object::Builder(visual.get()).build();
typename Scene_Object::Builder scene_builder;
scene_builder.add_renderable(visual.get()).add_camera(camera.get()).add_axes(axes.get());
auto scene_result = scene_builder.build();
ASSERT_TRUE(scene_result.has_value());
auto scene = std::move(scene_result).value();
std::atomic_bool frame_ready{};