接口优化
This commit is contained in:
@@ -104,7 +104,8 @@ TEST(dynamic_renderable_lifecycle_test,
|
||||
scene.render();
|
||||
gate->wait_until_arrived();
|
||||
std::atomic<bool> callback_called{};
|
||||
auto mutation = scene.attach_renderable(attached, {}, [&](std::exception_ptr exception) {
|
||||
auto mutation = scene.attach_renderable(attached);
|
||||
mutation.then([&](std::exception_ptr exception) {
|
||||
EXPECT_FALSE(exception);
|
||||
callback_called.store(true, std::memory_order_release);
|
||||
});
|
||||
@@ -154,13 +155,13 @@ TEST(dynamic_renderable_lifecycle_test,
|
||||
auto child = std::make_shared<Counting_Renderable>(scene);
|
||||
scene.attach_renderable(first_parent);
|
||||
scene.attach_renderable(second_parent);
|
||||
scene.attach_renderable(child, {
|
||||
auto attach = scene.attach_renderable(child, {
|
||||
.dependency_parents = {first_parent}
|
||||
});
|
||||
scene.wait_for_mutations();
|
||||
attach.wait();
|
||||
scene.render();
|
||||
first_gate->wait_until_arrived();
|
||||
auto reparent = scene.set_dependency_parent(child, second_parent);
|
||||
auto reparent = scene.set_parent(Scene_Base::Relationship::dependency, child, second_parent);
|
||||
EXPECT_FALSE(reparent.ready());
|
||||
EXPECT_EQ(child->prepare_count.load(std::memory_order_acquire), 0);
|
||||
first_gate->open();
|
||||
@@ -252,7 +253,7 @@ TEST(dynamic_renderable_lifecycle_test,
|
||||
|
||||
scene.render();
|
||||
scene.wait_for_render();
|
||||
scene.wait_for_mutations();
|
||||
EXPECT_TRUE(wait_until([&] { return scene.renderable_count() == 0; }));
|
||||
EXPECT_EQ(renderable->prepare_count.load(std::memory_order_acquire), 1);
|
||||
EXPECT_EQ(scene.renderable_count(), 0u);
|
||||
scene.render();
|
||||
@@ -428,11 +429,11 @@ TEST(dynamic_renderable_lifecycle_test,
|
||||
.display_parents = {parent},
|
||||
.dependency_parents = {parent}
|
||||
});
|
||||
scene.set_display_parent(child, alternate_parent);
|
||||
scene.set_dependency_parent(child, alternate_parent);
|
||||
scene.set_parent(Scene_Base::Relationship::display, child, alternate_parent);
|
||||
scene.set_parent(Scene_Base::Relationship::dependency, child, alternate_parent);
|
||||
child->invalidate_graph();
|
||||
scene.set_display_parent(child, parent);
|
||||
scene.set_dependency_parent(child, parent);
|
||||
scene.set_parent(Scene_Base::Relationship::display, child, parent);
|
||||
scene.set_parent(Scene_Base::Relationship::dependency, child, parent);
|
||||
scene.detach_renderable(child);
|
||||
} catch (...) {
|
||||
failures.fetch_add(1, std::memory_order_relaxed);
|
||||
@@ -444,7 +445,8 @@ TEST(dynamic_renderable_lifecycle_test,
|
||||
controller.join();
|
||||
controls_done.store(true, std::memory_order_release);
|
||||
renderer.join();
|
||||
scene.wait_for_mutations();
|
||||
scene.render();
|
||||
scene.wait_for_render();
|
||||
EXPECT_EQ(failures.load(std::memory_order_acquire), 0);
|
||||
EXPECT_EQ(violations.load(std::memory_order_acquire), 0);
|
||||
EXPECT_EQ(scene.renderable_count(), 2u);
|
||||
|
||||
Reference in New Issue
Block a user