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
-
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