This commit is contained in:
Michele Caini
2019-08-22 23:31:28 +02:00
parent 90a1de383a
commit b902831db8
3 changed files with 19 additions and 19 deletions

6
TODO
View File

@@ -16,7 +16,6 @@
* registry.each<T...>(first, last) by iterators, entities/components guaranteed
* multi component registry::remove and some others?
* built-in support for dual (or N-) buffering
* allow to "merge" registries easily
* allow for custom stomp functions
* deprecate/replace snapshot
* remove dependency
@@ -24,9 +23,10 @@
TODO
* custom (decoupled) pools ==> double buffering, shared components, multi-model
* use direct access (pool-like) also for context variables
* make meta work across boundaries
- inline variables are fine here, only the head represents a problem
- we should always resolve by looking into the list of types when working across boundaries, no direct resolve
* nested groups: AB/ABC/ABCD/... (hints: sort, check functions)
* improve multi-stomp so as to reuse the known pool and the known element
* use unordered_map for named pools and context variables:
* use direct access (pool-like) also for context variables
* improves multi-stomp

View File

@@ -290,10 +290,10 @@ TEST(NonOwningGroup, ConstNonConstAndAllInBetween) {
ASSERT_EQ(group.size(), decltype(group.size()){1});
ASSERT_TRUE((std::is_same_v<decltype(group.get<int>(entt::entity{0})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const char>(entt::entity{0})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<entt::tag<"empty"_hs>>(entt::entity{0})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int, const char, entt::tag<"empty"_hs>>(entt::entity{0})), std::tuple<int &, const char &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int>({})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const char>({})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<entt::tag<"empty"_hs>>({})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int, const char, entt::tag<"empty"_hs>>({})), std::tuple<int &, const char &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(group.raw<const char>()), const char *>));
ASSERT_TRUE((std::is_same_v<decltype(group.raw<int>()), int *>));
@@ -805,12 +805,12 @@ TEST(OwningGroup, ConstNonConstAndAllInBetween) {
ASSERT_EQ(group.size(), decltype(group.size()){1});
ASSERT_TRUE((std::is_same_v<decltype(group.get<int>(entt::entity{0})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const char>(entt::entity{0})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<double>(entt::entity{0})), double &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const float>(entt::entity{0})), const float &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<entt::tag<"empty"_hs>>(entt::entity{0})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int, const char, double, const float, entt::tag<"empty"_hs>>(entt::entity{0})), std::tuple<int &, const char &, double &, const float &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int>({})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const char>({})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<double>({})), double &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<const float>({})), const float &>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<entt::tag<"empty"_hs>>({})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(group.get<int, const char, double, const float, entt::tag<"empty"_hs>>({})), std::tuple<int &, const char &, double &, const float &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(group.raw<const float>()), const float *>));
ASSERT_TRUE((std::is_same_v<decltype(group.raw<double>()), double *>));
ASSERT_TRUE((std::is_same_v<decltype(group.raw<const char>()), const char *>));

View File

@@ -136,9 +136,9 @@ TEST(SingleComponentView, ConstNonConstAndAllInBetween) {
ASSERT_TRUE((std::is_same_v<typename decltype(view)::raw_type, int>));
ASSERT_TRUE((std::is_same_v<typename decltype(cview)::raw_type, const int>));
ASSERT_TRUE((std::is_same_v<decltype(view.get(entt::entity{0})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(view.get({})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(view.raw()), int *>));
ASSERT_TRUE((std::is_same_v<decltype(cview.get(entt::entity{0})), const int &>));
ASSERT_TRUE((std::is_same_v<decltype(cview.get({})), const int &>));
ASSERT_TRUE((std::is_same_v<decltype(cview.raw()), const int *>));
view.each([](auto &&i) {
@@ -417,10 +417,10 @@ TEST(MultipleComponentView, ConstNonConstAndAllInBetween) {
ASSERT_EQ(view.size(), decltype(view.size()){1});
ASSERT_TRUE((std::is_same_v<decltype(view.get<int>(entt::entity{0})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<const char>(entt::entity{0})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<entt::tag<"empty"_hs>>(entt::entity{0})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<int, const char, entt::tag<"empty"_hs>>(entt::entity{0})), std::tuple<int &, const char &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<int>({})), int &>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<const char>({})), const char &>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<entt::tag<"empty"_hs>>({})), entt::tag<"empty"_hs>>));
ASSERT_TRUE((std::is_same_v<decltype(view.get<int, const char, entt::tag<"empty"_hs>>({})), std::tuple<int &, const char &, entt::tag<"empty"_hs>>>));
ASSERT_TRUE((std::is_same_v<decltype(view.raw<const char>()), const char *>));
ASSERT_TRUE((std::is_same_v<decltype(view.raw<int>()), int *>));