You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ENTT_NO_MIXIN to disable the sigh mixin by default
Print assertion messages upon failure
core:
Avoid uninitialized length in 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 monostate return *this from operator=
Enable enable_borrowed_range/enable_view for a few types
Make popcount public (waiting for C++20)
Rename is_power_of_two to has_single_bit (waiting for C++20)
Introduce bit.hpp and move a few functions there (ie has_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_as function return an iterator past the last shared element
Update registry destroy function to use sparse set sort_as internally
Add operator bool to runtime views
Assert when emplacing invalid entities through a registry
Improved registry valid function
Decouple size and 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 push functions
Drop sparse set scoped iterators (ie begin(N)/end(N))
Add element_type to the storage class as opposed to value_type
Make registry traits_type type member private
Make sparse set traits_type type member private
Make storage traits_type type member private
Avoid using weak ranges twice in the sigh_mixin class
Support comparisons between basic_handle<...> and null_t
Reliable valid function for empty basic_handle<...>s
Add pointer stable types support to the snapshot loader class
Branch-less sparse set sort and sort_as functions
Branch-less centralized swap-only mode check for views
Refine storage log messages to avoid ambiguity
Introduce the new basic_table and table classes
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_policy constexpr member to all storage classes
Enable enable_borrowed_range/enable_view for a few types
Decouple all types except basic_storage from component_traits
Drop the Mask parameter of the basic_observer class
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 reset function
sigh_mixin automatic signal registration support for components
Generic bind function in the basic_sparse_set class
Reactive mixin and storage (designed to replace the observer class)
operator bool and registry functions for sigh_mixin
sigh_mixin transparent support to derived registries
graph:
Add an empty method to the flow class
Add an empty method to the adjacency_matrix class
meta:
Add is_pointer meta traits
Updated meta type is_pointer function 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 noexcept functions 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 reset functions to resource class
Support swap-ping resources
signal:
Support for free and member noexcept functions to the delegate class
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 NOLINT directives as much as possible
Refine linter configuration and address as many warnings as possible
Updated IWYU entt.imp as 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_handle class
Natvis view for meta_ctx class
Natvis view for meta_type_descriptor class
Natvis view for meta_custom_node class
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_type is private, use entt_traits class and entity_type type member instead
Sparse set traits_type is private, use entt_traits class and entity_type type member instead
Storage traits_type is private, use component_traits class and value_type type member instead
The basic_observer class doesn't accept anymore a Mask template parameter
Renamed is_power_of_two to has_single_bit and moved it to bit.hpp
Removed support to empty each callbacks for single non-empty type views
Deprecate meta properties, use the new custom data support for meta types, data and functions instead
basic_sparse_set doesn't require anymore to wrap objects with anys when passing them to bind
The observer class 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.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Changelog
config
:ENTT_NO_MIXIN
to disable the sigh mixin by defaultcore
:length
in all (corner) casesfwd.hpp
)nth_argument
any
uninitialized_construct_using_allocator
monostate
return*this
fromoperator=
enable_borrowed_range
/enable_view
for a few typespopcount
public (waiting for C++20)is_power_of_two
tohas_single_bit
(waiting for C++20)bit.hpp
and move a few functions there (iehas_single_bit
)basic_any<...>
entity
:sort_as
function return an iterator past the last shared elementdestroy
function to use sparse setsort_as
internallyoperator bool
to runtime viewsvalid
functionsize
and next identifier in the storage entitycreate
-with-hint functionpush
functionsbegin(N)
/end(N)
)element_type
to the storage class as opposed tovalue_type
traits_type
type member privatetraits_type
type member privatetraits_type
type member privatesigh_mixin
classbasic_handle<...>
andnull_t
valid
function for emptybasic_handle<...>
ssort
andsort_as
functionsbasic_table
andtable
classesbasic_organizer
::operator->
to get access to the underlying storagestorage_policy
constexpr member to all storage classesenable_borrowed_range
/enable_view
for a few typesbasic_storage
fromcomponent_traits
Mask
parameter of thebasic_observer
classreset
functionsigh_mixin
automatic signal registration support for componentsbind
function in thebasic_sparse_set
classobserver
class)operator bool
andregistry
functions forsigh_mixin
sigh_mixin
transparent support to derived registriesgraph
:empty
method to theflow
classempty
method to theadjacency_matrix
classmeta
:is_pointer
meta traitsis_pointer
function to make it faster and more reliablemeta_any
noexcept
functions whenever a free or member function is allowedpoly
:resource
:reset
functions to resource classswap
-ping resourcessignal
:noexcept
functions to thedelegate
classBuild system
include/BUILD.bazel
Any other business
NOLINT
directives as much as possibleentt.imp
as neededNatvis support
All natvis files have been updated where necessary. New entries:
basic_handle
classmeta_ctx
classmeta_type_descriptor
classmeta_custom_node
classBreaking changes
traits_type
is private, useentt_traits
class andentity_type
type member insteadtraits_type
is private, useentt_traits
class andentity_type
type member insteadtraits_type
is private, usecomponent_traits
class andvalue_type
type member insteadbasic_observer
class doesn't accept anymore aMask
template parameteris_power_of_two
tohas_single_bit
and moved it tobit.hpp
each
callbacks for single non-empty type viewscustom
data support for meta types, data and functions insteadbasic_sparse_set
doesn't require anymore to wrap objects withany
s when passing them tobind
observer
class is now deprecated, use the reactive mixin and storage insteadAny 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.
Beta Was this translation helpful? Give feedback.
All reactions