Michele Caini
3e7dc7af29
entity:
...
* review of entt_traits design
* added static constexpr member function entt_traits::to_integral
* added static constexpr member function entt_traits::to_entity
* added static constexpr member function entt_traits::to_version
* added static constexpr member function entt_traits::to_type
* custom class identifiers must expose member type entity_field
* it's no longer required to specialize entt_traits (breaking change)
2021-05-28 08:59:50 +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
9d39cb51cf
storage/registry: review range ::insert (breaking change)
2021-05-24 10:27:30 +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
0fe73fb6ed
storage: free memory in move assignment operator (with tests)
2021-05-24 10:27:10 +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
b062bbf58d
storage/view/group: reintroduce (opaque) ::raw functions as it ought to be
2021-05-17 11:59:51 +02:00
Michele Caini
9af318a767
test: minor changes
2021-05-14 15:12:23 +02:00
Michele Caini
6194e12616
entity:
...
* allocator support for sparse set and storage
* pointer stability when assigning components
* removed ::raw functions (registry, view, group)
* to_entity returns null for invalid components
2021-05-14 15:12:16 +02:00
Michele Caini
0f6d1268c7
meta: further reduced number of instantiations/size of symbols
2021-05-08 17:13:52 +02:00
Michele Caini
77afd2d36c
any: ::owner function (useful to also review meta_any)
2021-05-08 17:13:51 +02:00
Michele Caini
2b5c393a13
meta: forward_as_meta
2021-05-08 17:13:51 +02:00
Michele Caini
0817d416a3
meta: make_meta_any -> make_meta
2021-05-08 17:13:51 +02:00
Michele Caini
ccff753305
any: forward_as_any
2021-05-08 17:13:51 +02:00
Michele Caini
e252b22735
test: code coverage
2021-05-08 17:13:51 +02:00
Michele Caini
1979a2279f
poly: removed std::reference_wrapper support (incomplete, breaking change)
2021-05-08 17:13:50 +02:00
Michele Caini
955d325f07
meta_any: deprecated std::reference_wrapper support
2021-05-08 17:13:50 +02:00
Michele Caini
3fac3fe2d7
any: deprecate std::reference_wrapper support
2021-05-08 17:13:50 +02:00
Michele Caini
cd667fe34b
meta: make_meta_any
2021-05-08 17:13:50 +02:00
Michele Caini
3d6202ecfd
any: make_any
2021-05-08 17:13:50 +02:00
Michele Caini
c40f0ef2bb
type traits: is_equality_comparable support for nlohmann json like types (where T::value_type is T) - close #701
2021-05-08 10:43:27 +02:00
Michele Caini
c4b169edd1
registry: make ::remove and ::erase work also with iterators returned by views
2021-05-07 11:16:32 +02:00
Michele Caini
e5d4f1bb58
entity: deprecate handle::remove_all and registry::remove_all
2021-05-06 16:33:43 +02:00
Michele Caini
daf72a7c61
entity: registry ::remove/::erase entity/range and safe/unsafe versions ( close #486 )
2021-05-04 11:36:02 +02:00
Michele Caini
f116ad0594
test: use iterators in the poly storage example
2021-05-03 22:29:39 +02:00
Michele Caini
e59d40834d
any: reduce vtable options
2021-04-29 11:17:15 +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
e8f982e909
view/group: raw() isn't bound to pointer types
2021-04-19 16:05:08 +02:00
Michele Caini
0fa433187e
storage: valid state on component removal (allows component destructors to access pools)
2021-04-19 15:34:41 +02:00
Michele Caini
b0069299ea
meta_any: avoid dereferencing C-style arrays
2021-04-15 11:45:10 +02:00
Michele Caini
fc69e91636
test: refined custom id example
2021-04-14 15:44:17 +02:00
Michele Caini
5c56cbd672
process: dead -> finished
2021-04-13 09:02:29 +02:00
Michele Caini
5c8a1e7d10
type traits: removed is_std_hashable[_v]
2021-04-12 23:37:46 +02:00
Michele Caini
77f80cecf9
test: re-enable tests left commented by mistake
2021-04-12 15:59:31 +02:00
Michele Caini
453f1c6edc
test: std::strcmp ... 🤦♂️
2021-04-12 15:59:20 +02:00
Michele Caini
9f8a36f2c9
any/meta: cleanup/better traits usage
2021-04-12 15:58:59 +02:00
Michele Caini
60393fbc5f
meta_any: decays Type on storage construction to handle correctly const T[N] types ( close #687 )
2021-04-12 15:55:59 +02:00
Michele Caini
b9a925dbd4
test: avoid regressions with any and deduced const T[N] types
2021-04-12 15:55:57 +02:00
Michele Caini
d55cefc086
meta_any: no redundant copies, better perf
2021-04-12 15:55:53 +02:00
Michele Caini
5380e6d98b
any: no redundant copies, better perf
2021-04-12 15:55:49 +02:00
Michele Caini
45cc24e0b8
any: favor aggregate initialization upon construction
2021-04-12 15:55:45 +02:00
Michele Caini
76bf1791eb
test: cleanup
2021-04-12 13:02:23 +02:00
Michele Caini
10636c82a2
view/group: review extended iterable mode ( close #686 )
2021-04-07 10:33:52 +02:00