Michele Caini
151f180199
core: make is_equality_comparable[_v] work with iterators ( close #739 )
2021-07-26 23:37:02 +02:00
Michele Caini
dcddb7d50e
registry: allow non-const types in const overloads of registry context variable getters ( close #720 )
2021-06-30 09:35:36 +02:00
Michele Caini
4e870b83cd
test: suppress warnings due to suggested braces
2021-06-29 15:17:58 +02:00
Michele Caini
ac655902a0
storage:
...
* internal review for memory management
* added support for nosy destructors to ::in_place_pop
* optimized ::emplace/::insert
2021-06-29 15:05:03 +02:00
Michele Caini
e4fb293b55
sparse_set: added ::emplace_back
2021-06-29 12:37:39 +02:00
Michele Caini
d3df64ef4b
sparse_set: emplace returns the slot used for insertion
2021-06-28 18:51:28 +02:00
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
c61e98009f
registry/benchmark: rollback optimized remove/erase (benchmarks have shown that they are not worth it)
2021-06-28 10:19:27 +02:00
Michele Caini
44bccaaad6
basic_registry:
...
* added fast path to destroy
* added fast path to remove
* added fast path to erase
* minor changes
2021-06-28 09:24:12 +02:00
Michele Caini
0c213fca40
type_traits:
...
* added entt::is_iterator[_v]
* added entt::is_iterator_type[_v]
2021-06-28 09:09:55 +02:00
Michele Caini
eb2b724902
benchmark: tombstone policy runs
2021-06-24 14:04:35 +02:00
Michele Caini
1f8c896181
registry:
...
* deprecated ::destroyed (use ::released instead)
* added ::release overloads (aka force-destroy)
2021-06-24 10:51:03 +02:00
Michele Caini
206d31f27a
registry: const ::view/::group also support non-const types ( close #715 )
2021-06-23 15:37:46 +02:00
Michele Caini
6709331182
resource_handle: conversion functions ( close #706 )
2021-06-22 18:54:27 +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
2e86c1f1a2
component: add basic_component_traits aside component_traits
2021-06-22 09:52:43 +02:00
Michele Caini
8aa4d46ce0
runtime_view: support for storage policy (tombstones)
2021-06-21 15:18:13 +02:00
Michele Caini
cdf67a1421
sparse_set: public ::policy method for opaque runtime detection
2021-06-21 14:44:09 +02:00
Michele Caini
2c35203647
view:
...
* split view iterator from multi-type view
* stable/packed storage policy support
2021-06-21 13:04:37 +02:00
Michele Caini
03511f39b1
registry:
...
* prevent groups from being used with tombstones
* support to compact one, several or all pools
2021-06-21 12:59:26 +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
d093df02ac
test: minor changes
2021-06-21 12:39:18 +02:00
Michele Caini
90be1db402
entity:
...
* extended entt_traits<T>::to_type support
* added null_t::operator|
* added tombstone_t::operator|
2021-06-04 11:01:26 +02:00
Michele Caini
e2e433480b
entity/registry:
...
* added entt_traits<T>::reserved()
* added tombstone_t type and tombstone constant
* create-with-hint also accepts null entities (discarded)
* registry skips over tombstone versions and rejects them
2021-06-03 09:06:34 +02:00
Michele Caini
b8bc3e4e94
test: exception safety for sparse set and storage
2021-06-03 08:44:48 +02:00
Michele Caini
ea614a0f3f
entity: review of entt_traits<T>::to_type
2021-05-28 08:59:50 +02:00
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