Replies: 2 comments
-
typo:
|
Beta Was this translation helpful? Give feedback.
0 replies
-
Updated. To sum up: I'm about to merge on |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Changelog
config
:ENTT_ASSERT
.ENTT_LAUNDER
to support older compilers that don't offerstd::launder
.ENTT_PAGE_SIZE
withENTT_SPARSE_PAGE
andENTT_PACKED_PAGE
.ENTT_NOEXCEPTION
to fully suppress support for exceptions.ENTT_NO_EXCEPT
is automatically defined.ENTT_THROW
,ENTT_TRY
andENTT_CATCH
.core
:any
to make it closer to its standard counterpart.make_any
andforward_as_any
functions.any
.basic_any<...>::owner
to know if the wrapper also owns the contained object.is_iterator[_v]
andis_iterator_type[_v]
.entity
:::raw
member function for views and groups to make it opaque (support for fancy pointers from storage).basic_sparse_set<E>::remove
to make it work also with entities that aren't part of the set.basic_sparse_set<E>::erase
that works only with entities that are already in the set.basic_registry<E>::remove<T...>
also accepts entities that don't have the given components (replaces::remove_if_exists
).basic_registry<E>::erase<T...>
that triggers an error if the entities don't have the given components (it was::remove
).basic_handle<E>::remove<T...>
also accepts types that aren't assigned to the entity (replaces::remove_if_exists
).basic_handle<E>::erase<T...>
that triggers an error if the entity doesn't have the given components (it was::remove
).to_entity
returnsentt::null
for invalid components.registry::create
for multiple entities (about twice the performance).basic_registry<E>::insert
andbasic_storage<E, T>::insert
with component array no longer require the end iterator.entt_traits
design (added built-in functions::to_entity
,::to_integral
,::to_version
, and so on).entity_type
member type (specializingentt_traits
is no longer required).tombstone_t
type and theentt::tombstone
constexpr variable for tombstone versions.null_t::operator|
to combine the null entity with any identifier (similar totombstone_t::operator|
).component_traits
(seecomponent.hpp
) to set the ETO policy (ignore_if_empty
) and the deletion policy (in_place_delete
).view
s andview_iterator
s, drastically reduced the number of instantiations due to views.basic_sparse_set<E>::policy
method for opaque runtime detection of the deletion policy.::view
/::group
function also support non-const types.::release
(aka force-destroy) overloads to the registry class.::released
function to the registry class to replace::destroyed
.basic_registry<E>::destroy
.basic_sparse_set<E>::slot
function to return the next slot available for insertion.basic_sparse_set<E>::emplace
returns now the slot used for insertion.basic_sparse_set<E>::emplace_back
function to force back insertion (and skip the tombstone chain check).meta
:T[N]
orT[N][M]
) aren't treated as pointer-like types.make_meta
andforward_as_meta
functions.meta_any
.resource
:resource_handle
.Performance improvements here and there (ie registry
::create
and::destroy
, component destruction/emplace/insert, ...).Bug fixes
core
:basic_any<...>::operator=(const basic_any<...> &other)
can result in an invalid state whenother
isn't copyable.Deprecated feature
core
:std::reference_wrapper
support: usestd::in_place_type<T &>
, usemake_any
or::emplace<T &>
instead.entity
:basic_registry<E>::remove_if_exists
: use::remove
instead (it also supports iterators).basic_handle<E>::remove_if_exists
: use::remove
instead (it also supports iterators).basic_registry<E>::remove_all
: use::destroy(e); ::create(e)
instead.basic_handle<E>::remove_all
: no longer supported.basic_registry<E>::reserve_pools
: no longer supported.basic_registry<E>::destroyed
: use::released
instead.meta
:std::reference_wrapper
support: usestd::in_place_type<T &>
, usemake_meta
or::emplace<T &>
instead.Breaking changes
config
:ENTT_ASSERT
now receives two arguments (condition and error message).ENTT_PAGE_SIZE
, useENTT_SPARSE_PAGE
andENTT_PACKED_PAGE
instead.ENTT_NO_EXCEPT
triggers an error, useENTT_NO_EXCEPTION
to fully disable exceptions instead.core
:entt::is_empty[_v]
andENTT_IS_EMPTY
, no longer required/supported.entity
view::raw
andgroup::raw
return now a paged array of components (for pointer stability).basic_registry<E>::insert
andbasic_storage<E, T>::insert
no longer require the end iterator.entt_traits
. Otherwise, provide member function::to_entity
,::to_version
, and so on.about_to_pop
virtual function from the sparse set class.poly
:std::reference_wrapper
support (reference in-place construction still available).process
:process::dead
has been renamed toprocess::finished
.Any other business
The documentation is up-to-date and the library is battle-tested with 100% coverage as usual.
I started a long term process to reduce the number of instantiations and also speed up the compilation.
This release contains many changes and great improvements in this regard. Still a work in progress though.
Beta Was this translation helpful? Give feedback.
All reactions