Michele Caini/entt: Release v3.2.0

Name: entt

Owner: Michele Caini

Release: EnTT v3.2.0

Released: 2019-10-24

License: MIT

Release Assets:

Changelog:

  • Added EnTT to the GitHub Sponsors program (link in the README file).
  • Added the try online badge to the README file.
  • Moved CI to GH Actions.
  • Use codecov instead of coveralls.
  • Relaxed constraints on the order of types in the group definition.
  • The runtime reflection system finally works across boundaries.
  • In-depth review of the runtime reflection system, backward compatibility not guaranteed.
  • Key/Value pairs, key-only properties, tuples and annotations (invocable) are allowed as meta properties.
  • meta_any uses std::reference_wrapper instead of as_alias_t for aliasing.
  • Added meta_type::compare, meta_any no longer has to store aside comparison functions.
  • New meta_any constructor for unmanaged objects taken from a meta_handle.
  • meta_handle no longer exposes data/try_cast.
  • All meta functions take their arguments by alias and can edit objects in the outer context.
  • Introduced meta_type::remove_extent to get the meta type of the elements of an array.
  • A static assertion forbids using non-copyable types with meta_any.
  • Added dispatcher::discard to clear pools of events.
  • Invocation order guaranteed for signals (sigh, registry, dispatcher, ...).
  • Overloaded sink::before function to insert listeners at specific locations in the signal.
  • sink::disconnect and sink::before support also pointers as instances or payload.
  • delegate supports also pointers as instances or payload.
  • sparse_set::swap and storage::swap accept entities, no longer positions.
  • Sorting pools doesn't require to allocate anymore and is much faster.
  • stomp & spawn work also with const source registries now.
  • Make empty components eat arguments on construction.
  • Multi-component version of registry::reserve, registry::shrink_to_fit, registry::empty.
  • Added registry::prepare to force-create component pools within the registry.
  • Views support exclusion lists (eg registry.view<T>(exclude<U>)).
  • view::get for single component views accepts an optional template parameter for consistency.
  • Multi-component version of view::empty.
  • Multi-component version of group:empty.
  • Sorting groups doesn't require to allocate anymore and is much faster.
  • Nested groups: perfect SoA to the rescue.
  • Allow process to work with delta types other than fundamental ones.
  • Utilities: overloaded and y_combinator.
  • Added is_equality_comparable[_v] trait.
  • Added what is needed for the choice trick, see choice_t/choice from type_traits.hpp.
  • named_type_traits_v<Type> utility/shortcut for named_type_traits<Type>::value.
  • ENTT_DISABLE_ETO macro to disable empty type optimization for components.
  • Macros (for example ENTT_NAMED_TYPE) always require a trailing semicolon.
  • resource_handle, resource_loader and resource_cache are now handle, loader and cache.
  • cache exports both resource_type and id_type.
  • basic_continuous_loader support for map-like containers.
  • Fixed a bug on groups when dependencies between components were set.
  • Fixed a bug of collector::where when multiple rules were declared at once.
  • Marked cmake project explicitly as C++, language C is required only if BUILD_MOD is set to ON.
  • Added cmake support for clang users on Windows.
  • Added namespace qualifier in CMake.
  • Performance improvements here and there (eg groups lookup, stomp & spawn utilities).

Be aware that this release contains some non-backward compatible changes. The documentation is up-to-date and the library is battle-tested with 100% coverage as usual. I've also updated the FAQs and the section EnTT in Action with more and more examples.

To top