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_LAUNDERto support older compilers that don't offerstd::launder.ENTT_PAGE_SIZEwithENTT_SPARSE_PAGEandENTT_PACKED_PAGE.ENTT_NOEXCEPTIONto fully suppress support for exceptions.ENTT_NO_EXCEPTis automatically defined.ENTT_THROW,ENTT_TRYandENTT_CATCH.core:anyto make it closer to its standard counterpart.make_anyandforward_as_anyfunctions.any.basic_any<...>::ownerto know if the wrapper also owns the contained object.is_iterator[_v]andis_iterator_type[_v].entity:::rawmember function for views and groups to make it opaque (support for fancy pointers from storage).basic_sparse_set<E>::removeto make it work also with entities that aren't part of the set.basic_sparse_set<E>::erasethat 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_entityreturnsentt::nullfor invalid components.registry::createfor multiple entities (about twice the performance).basic_registry<E>::insertandbasic_storage<E, T>::insertwith component array no longer require the end iterator.entt_traitsdesign (added built-in functions::to_entity,::to_integral,::to_version, and so on).entity_typemember type (specializingentt_traitsis no longer required).tombstone_ttype and theentt::tombstoneconstexpr 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).views andview_iterators, drastically reduced the number of instantiations due to views.basic_sparse_set<E>::policymethod for opaque runtime detection of the deletion policy.::view/::groupfunction also support non-const types.::release(aka force-destroy) overloads to the registry class.::releasedfunction to the registry class to replace::destroyed.basic_registry<E>::destroy.basic_sparse_set<E>::slotfunction to return the next slot available for insertion.basic_sparse_set<E>::emplacereturns now the slot used for insertion.basic_sparse_set<E>::emplace_backfunction to force back insertion (and skip the tombstone chain check).meta:T[N]orT[N][M]) aren't treated as pointer-like types.make_metaandforward_as_metafunctions.meta_any.resource:resource_handle.Performance improvements here and there (ie registry
::createand::destroy, component destruction/emplace/insert, ...).Bug fixes
core:basic_any<...>::operator=(const basic_any<...> &other)can result in an invalid state whenotherisn't copyable.Deprecated feature
core:std::reference_wrappersupport: usestd::in_place_type<T &>, usemake_anyor::emplace<T &>instead.entity:basic_registry<E>::remove_if_exists: use::removeinstead (it also supports iterators).basic_handle<E>::remove_if_exists: use::removeinstead (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::releasedinstead.meta:std::reference_wrappersupport: usestd::in_place_type<T &>, usemake_metaor::emplace<T &>instead.Breaking changes
config:ENTT_ASSERTnow receives two arguments (condition and error message).ENTT_PAGE_SIZE, useENTT_SPARSE_PAGEandENTT_PACKED_PAGEinstead.ENTT_NO_EXCEPTtriggers an error, useENTT_NO_EXCEPTIONto fully disable exceptions instead.core:entt::is_empty[_v]andENTT_IS_EMPTY, no longer required/supported.entityview::rawandgroup::rawreturn now a paged array of components (for pointer stability).basic_registry<E>::insertandbasic_storage<E, T>::insertno longer require the end iterator.entt_traits. Otherwise, provide member function::to_entity,::to_version, and so on.about_to_popvirtual function from the sparse set class.poly:std::reference_wrappersupport (reference in-place construction still available).process:process::deadhas 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