| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| EnTT v3.14.0 source code.tar.gz | 2024-10-18 | 872.3 kB | |
| EnTT v3.14.0 source code.zip | 2024-10-18 | 1.0 MB | |
| README.md | 2024-10-18 | 6.5 kB | |
| Totals: 3 Items | 1.9 MB | 0 | |
Changelog
config:ENTT_NO_MIXINto disable the sigh mixin by default-
Print assertion messages upon failure
-
core: - Avoid uninitialized
lengthin all (corner) cases - Export more types as forward declarations (see
fwd.hpp) - Lambda support for
nth_argument - Class level new/delete support for
any - Class level new/delete support for
uninitialized_construct_using_allocator - Make the
monostatereturn*thisfromoperator= - Enable
enable_borrowed_range/enable_viewfor a few types - Make
popcountpublic (waiting for C++20) - Rename
is_power_of_twotohas_single_bit(waiting for C++20) - Introduce
bit.hppand move a few functions there (iehas_single_bit) -
Self assignment support for
basic_any<...> -
entity: - Avoid unchecked refresh loops on single type views
- Refine empty registry check in the snapshot loader constructor
- Stop groups from swapping observed types in their pools
- Make sparse set
sort_asfunction return an iterator past the last shared element - Update registry
destroyfunction to use sparse setsort_asinternally - Add
operator boolto runtime views - Assert when emplacing invalid entities through a registry
- Improved registry
validfunction - Decouple
sizeand next identifier in the storage entity - Faster and memory-friendly storage entity
create-with-hint function - Update the tombstone class to support zero-sized versions
- Update entity traits the fully support zero-sized versions
- Return the correct value from sparse set
pushfunctions - Drop sparse set scoped iterators (ie
begin(N)/end(N)) - Add
element_typeto the storage class as opposed tovalue_type - Make registry
traits_typetype member private - Make sparse set
traits_typetype member private - Make storage
traits_typetype member private - Avoid using weak ranges twice in the
sigh_mixinclass - Support comparisons between
basic_handle<...>andnull_t - Reliable
validfunction for emptybasic_handle<...>s - Add pointer stable types support to the snapshot loader class
- Branch-less sparse set
sortandsort_asfunctions - Branch-less centralized swap-only mode check for views
- Refine storage log messages to avoid ambiguity
- Introduce the new
basic_tableandtableclasses - In/Out edges support for
basic_organizer - Single type view
::operator->to get access to the underlying storage - All registry now assert on custom user defined entity storage
- Add
storage_policyconstexpr member to all storage classes - Enable
enable_borrowed_range/enable_viewfor a few types - Decouple all types except
basic_storagefromcomponent_traits - Drop the
Maskparameter of thebasic_observerclass - View specialization and improvements for swap-only storage
- View specialization and improvements for swap-and-pop storage
- View specialization and improvements for in-place storage
- Avoid checking for filter validity when iterating views
- Allow resetting a storage in the registry via the
resetfunction sigh_mixinautomatic signal registration support for components- Generic
bindfunction in thebasic_sparse_setclass - Reactive mixin and storage (designed to replace the
observerclass) operator boolandregistryfunctions forsigh_mixin-
sigh_mixintransparent support to derived registries -
graph: - Add an
emptymethod to theflowclass -
Add an
emptymethod to theadjacency_matrixclass -
meta: - Add
is_pointermeta traits - Updated meta type
is_pointerfunction to make it faster and more reliable - User defined traits for meta objects
- Self assignment support for
meta_any - User defined arbitrary data support for meta types, meta data and meta functions
- Guaranteed execution/iteration order on overlaoded meta functions
- Support for creating different meta types from different factories concurrently
- Support
noexceptfunctions whenever a free or member function is allowed -
Improve lookup time of member objects and reduce their compile-time cost
-
poly: -
Improve support for inherited concepts
-
resource: - Add
resetfunctions to resource class -
Support
swap-ping resources -
signal: - Support for free and member
noexceptfunctions to thedelegateclass
Build system
- Avoid installing
include/BUILD.bazel - Updated IWYU version
Any other business
- Removed all previously deprecated methods
- Shared types in the test suite to avoid duplication
- Full review to reduce
NOLINTdirectives as much as possible - Refine linter configuration and address as many warnings as possible
- Updated IWYU
entt.impas needed - Drop support to Android NDK r17
- Drop support to MSVC toolset v141
Natvis support
All natvis files have been updated where necessary. New entries:
- Natvis view for
basic_handleclass - Natvis view for
meta_ctxclass - Natvis view for
meta_type_descriptorclass - Natvis view for
meta_custom_nodeclass
Breaking changes
- Sparse set scoped iterators are no longer a thing, check the deletion policy and use the free list value as needed instead
- Registry
traits_typeis private, useentt_traitsclass andentity_typetype member instead - Sparse set
traits_typeis private, useentt_traitsclass andentity_typetype member instead - Storage
traits_typeis private, usecomponent_traitsclass andvalue_typetype member instead - The
basic_observerclass doesn't accept anymore aMasktemplate parameter - Renamed
is_power_of_twotohas_single_bitand moved it tobit.hpp - Removed support to empty
eachcallbacks for single non-empty type views - Deprecate meta properties, use the new
customdata support for meta types, data and functions instead basic_sparse_setdoesn't require anymore to wrap objects withanys when passing them tobind- The
observerclass is now deprecated, use the reactive mixin and storage instead
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 some changes in this regard. Still a work in progress though.