Compare commits

...

4 Commits

Author SHA1 Message Date
Michele Caini
526e4f69a4 updated version 2017-10-19 16:23:20 +02:00
Michele Caini
f901fa50ff fixed: custom registry required to manage 50M entities 2017-10-19 16:07:33 +02:00
Michele Caini
bea9eeac16 fixed: registry.destroy makes available the wrong entity identifier 2017-10-19 15:53:59 +02:00
Michele Caini
3055da5316 fixed typo 2017-10-18 18:24:13 +02:00
5 changed files with 21 additions and 27 deletions

View File

@@ -16,7 +16,7 @@ endif()
# Project configuration
#
project(entt VERSION 2.0.0)
project(entt VERSION 2.0.1)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)

View File

@@ -37,7 +37,7 @@ struct Velocity {
};
void update(entt::DefaultRegistry &registry) {
auto view = ecs.view<Position, Velocity>();
auto view = registry.view<Position, Velocity>();
for(auto entity: view) {
auto &position = view.get<Position>(entity);

View File

@@ -285,8 +285,9 @@ public:
const auto entt = entity & traits_type::entity_mask;
const auto version = 1 + ((entity >> traits_type::version_shift) & traits_type::version_mask);
entities[entt] = entt | (version << traits_type::version_shift);
available.push_back(entity);
const auto next = entt | (version << traits_type::version_shift);
entities[entt] = next;
available.push_back(next);
for(auto &&cpool: pools) {
if(cpool && cpool->has(entity)) {

View File

@@ -42,7 +42,6 @@ TEST(DefaultRegistry, Construct) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, Destroy) {
@@ -86,7 +85,6 @@ TEST(DefaultRegistry, IterateCreateDeleteSingleComponent) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateSingleComponent10M) {
@@ -108,7 +106,6 @@ TEST(DefaultRegistry, IterateSingleComponent10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponents10M) {
@@ -132,7 +129,6 @@ TEST(DefaultRegistry, IterateTwoComponents10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponents10MHalf) {
@@ -157,7 +153,6 @@ TEST(DefaultRegistry, IterateTwoComponents10MHalf) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponents10MOne) {
@@ -182,7 +177,6 @@ TEST(DefaultRegistry, IterateTwoComponents10MOne) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponentsPersistent10M) {
@@ -207,7 +201,6 @@ TEST(DefaultRegistry, IterateTwoComponentsPersistent10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponentsPersistent10MHalf) {
@@ -233,7 +226,6 @@ TEST(DefaultRegistry, IterateTwoComponentsPersistent10MHalf) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponentsPersistent10MOne) {
@@ -259,11 +251,10 @@ TEST(DefaultRegistry, IterateTwoComponentsPersistent10MOne) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateSingleComponent50M) {
entt::DefaultRegistry registry;
entt::Registry<std::uint64_t> registry;
std::cout << "Iterating over 50000000 entities, one component" << std::endl;
@@ -281,11 +272,10 @@ TEST(DefaultRegistry, IterateSingleComponent50M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponents50M) {
entt::DefaultRegistry registry;
entt::Registry<std::uint64_t> registry;
std::cout << "Iterating over 50000000 entities, two components" << std::endl;
@@ -305,11 +295,10 @@ TEST(DefaultRegistry, IterateTwoComponents50M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTwoComponentsPersistent50M) {
entt::DefaultRegistry registry;
entt::Registry<std::uint64_t> registry;
registry.prepare<Position, Velocity>();
std::cout << "Iterating over 50000000 entities, two components, persistent view" << std::endl;
@@ -330,7 +319,6 @@ TEST(DefaultRegistry, IterateTwoComponentsPersistent50M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateFiveComponents10M) {
@@ -360,7 +348,6 @@ TEST(DefaultRegistry, IterateFiveComponents10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponents10M) {
@@ -400,7 +387,6 @@ TEST(DefaultRegistry, IterateTenComponents10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponents10MHalf) {
@@ -441,7 +427,6 @@ TEST(DefaultRegistry, IterateTenComponents10MHalf) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponents10MOne) {
@@ -482,7 +467,6 @@ TEST(DefaultRegistry, IterateTenComponents10MOne) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateFiveComponentsPersistent10M) {
@@ -513,7 +497,6 @@ TEST(DefaultRegistry, IterateFiveComponentsPersistent10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponentsPersistent10M) {
@@ -554,7 +537,6 @@ TEST(DefaultRegistry, IterateTenComponentsPersistent10M) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponentsPersistent10MHalf) {
@@ -596,7 +578,6 @@ TEST(DefaultRegistry, IterateTenComponentsPersistent10MHalf) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, IterateTenComponentsPersistent10MOne) {
@@ -638,7 +619,6 @@ TEST(DefaultRegistry, IterateTenComponentsPersistent10MOne) {
}
timer.elapsed();
registry.reset();
}
TEST(DefaultRegistry, SortSingle) {

View File

@@ -121,6 +121,19 @@ TEST(DefaultRegistry, Functionalities) {
ASSERT_TRUE(registry.empty<int>());
}
TEST(DefaultRegistry, CreateDestroyEntities) {
entt::DefaultRegistry registry;
auto pre = registry.create<double>();
registry.destroy(pre);
auto post = registry.create<double>();
ASSERT_FALSE(registry.valid(pre));
ASSERT_TRUE(registry.valid(post));
ASSERT_NE(registry.version(pre), registry.version(post));
ASSERT_EQ(registry.current(pre), registry.current(post));
}
TEST(DefaultRegistry, SortSingle) {
entt::DefaultRegistry registry;