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