Commit Graph

93 Commits

Author SHA1 Message Date
Michele Caini
93e3d14f34 sparse_set: added ::slot to return the next slot available for insertion 2021-06-28 18:46:02 +02:00
Michele Caini
bc687d412d test: suppress some warnings due to [[nodiscard]] 2021-06-28 18:02:43 +02:00
Michele Caini
d4b59aff97 sparse_set: tombstone/null debug check in ::contains 2021-06-28 16:51:24 +02:00
Michele Caini
9460e04ea5 entt_traits: review/cleanup 2021-06-22 15:39:15 +02:00
Michele Caini
462bfea733 entt_traits: review to reduce the risk of ambiguous calls 2021-06-22 13:03:32 +02:00
Michele Caini
cdf67a1421 sparse_set: public ::policy method for opaque runtime detection 2021-06-21 14:44:09 +02:00
Michele Caini
d49e7ba4b2 sparse_set/storage:
* added component traits (component.hpp)
* support for in-place delete (tombstones)
2021-06-21 12:56:33 +02:00
Michele Caini
b8bc3e4e94 test: exception safety for sparse set and storage 2021-06-03 08:44:48 +02:00
Michele Caini
7d141cb183 storage: fix move ctor/op 2021-05-27 16:16:45 +02:00
Michele Caini
755699c31b config:
* removed entt::page_size
* renamed ENTT_PAGE_SIZE to ENTT_SPARSE_PAGE
* added ENTT_PACKED_PAGE (page size for component arrays)
2021-05-25 10:07:20 +02:00
Michele Caini
92414c91b5 sparse_set/storage: review memory management for fancy allocators and the like 2021-05-24 11:53:45 +02:00
Michele Caini
ff67f402bb sparse_set/storage:
* better performance on insertion
* exception guarantee for nothrow default constructible entity types
2021-05-24 10:36:33 +02:00
Michele Caini
7624a9d34c sparse_set/storage:
* exception safety guarantee (sort of)
* ::insert optimization for non random access iterators
2021-05-24 10:27:30 +02:00
Michele Caini
ae11652493 sparse_set: free memory in move assignment operator (with tests) 2021-05-24 09:52:09 +02:00
Michele Caini
3d9959c8e5 sparse_set/storage: small review and optimizations 2021-05-19 09:29:37 +02:00
Michele Caini
7c2bce8baf core: added entt::page_size 2021-05-17 12:07:48 +02:00
Michele Caini
64eb8a2d0d sparse_set: ::remove returns number of actually removed elements 2021-04-22 08:42:35 +02:00
Michele Caini
1cafbcff38 sparse_set: remove (and range-remove) if exists 2021-04-21 16:39:51 +02:00
Michele Caini
4bbf93fd0c sparse_set: remove -> erase 2021-04-21 15:46:02 +02:00
Michele Caini
2222e31885 config: ENTT_PAGE_SIZE sets the number of elements of a page, not the size in bytes 2021-02-25 00:18:04 +01:00
Michele Caini
86e18f68c4 sparse_set: added unchecked operator[](pos) 2021-02-23 15:01:05 +01:00
Michele Caini
bb1acee36a entity:
* sparse_set: added optional user data to ::remove and ::clear
* sparse_set: remove the payload, it was really meh
* storage: review sigh_storage_mixin, simplified storage_adapter_mixin
* registry: pass itself twhen adding/patchin/removing components

test: updated tests for sparse set and poly storage
examples: added a test to avoid regressions on storage_adapter_mixin
2021-02-22 14:32:29 +01:00
Michele Caini
0eb6d7de3c sparse_set: added opaque payload (mainly meant to attach owners for augmented storage mixins) 2021-02-15 15:15:41 +01:00
Michele Caini
3118cd4fa5 sparse_set: added ::at to get the entity at a given position, if any 2021-02-15 14:56:18 +01:00
Michele Caini
e5fa67850b sparse_set/registry: avoids UB with sparse_set::clear and component-less registry::clear 2021-02-03 16:18:25 +01:00
Michele Caini
7b501aa89b sparse_set/storage: virtual sort 2020-11-04 23:52:48 +01:00
Michele Caini
09da190e93 entity/*: rollback erase -> remove (no longer a breaking change :) 2020-10-28 16:24:44 +01:00
Michele Caini
2820f2658b entity/: differentiate between remove and erase to avoid name clashing on the custom path (breaking changes) 2020-10-28 12:21:35 +01:00
Michele Caini
102c9891a0 test: code coverage for sparse set and storage range-erase 2020-10-14 19:37:28 +02:00
Michele Caini
fb4784b695 test: minor changes 2020-10-14 19:18:02 +02:00
Michele Caini
4965fd5888 sparse_set: split basic_sparse_set and sparse_set 2020-10-14 16:35:16 +02:00
Michele Caini
0709c402f8 test: reduced the amount of madness by a few degrees :) 2020-10-14 15:54:20 +02:00
Michele Caini
52554c3972 test: suppress a bunch of warnings 2020-08-11 16:53:03 +02:00
Michele Caini
75dd86e8ef sparse set: added reverse iterators 2020-08-10 10:04:09 +02:00
Michele Caini
804cfb7482 test: use entt::to_integral instead of std::underlying_type_t for entity identifiers 2020-07-01 17:17:33 +02:00
Michele Caini
89515b0e30 sparse set: removed deprecated functions 2020-05-11 16:38:12 +02:00
Michele Caini
92cf6195b2 iterators: standard-ish names for better integration 2020-03-30 16:11:10 +02:00
Michele Caini
8d4b5f4bb7 sparse_set: remove copy ctor/assignment operator (use range-construct instead) 2020-03-07 00:11:30 +01:00
Michele Caini
210eebc0dc sparse_set/storage: ::reset is now ::clear 2020-01-09 22:51:35 +01:00
Michele Caini
e74f5b2991 cleanup/refactoring 2019-12-29 15:16:12 +01:00
Michele Caini
2a8a014ad0 tests: review 2019-09-25 12:37:20 +02:00
Michele Caini
b043b48e6e sparse_set::arrange: more tests (see #323) 2019-09-20 08:33:31 +02:00
Michele Caini
c41f6aebf4 sorting: more tests 2019-09-19 22:39:13 +02:00
Michele Caini
800751cbe0 sorting no longer requires allocations and is much faster 2019-09-16 15:38:34 +02:00
Michele Caini
6bb4800ecd fix batch creation (close #305) 2019-09-05 15:24:03 +02:00
Michele Caini
83446c0694 updated sparse_set interface 2019-08-26 15:01:50 +02:00
Michele Caini
ece4480200 batch creation returns iterators and no longer raw pointers 2019-08-21 17:36:56 +02:00
Michele Caini
87d901b1ae is now possible to sort non-owning groups using a custom comparison function 2019-07-12 15:41:07 +02:00
Michele Caini
11d18fa1af entity identifiers as enum classes (close #256) 2019-06-23 16:09:07 +02:00
Michele Caini
3a53cac607 rework to easily allow storage specializations 2019-05-07 00:13:05 +02:00