Sander Mertens/flecs: Release v2.1.0
Name: flecs
Owner: Sander Mertens
Release: Flecs 2.1.0
Released: 2020-08-31
License: NOASSERTION
Release Assets:
Highlights:
- Big usability improvements to the C++ API
- Improved performance when compared to 2.0 (~18%)
- Switchable tags which allow for easy implementation of state machines
- Subqueries
Breaking changes
This release introduces a breaking change to the ecs_bulk_new*
APIs which was necessary to fix a memory leak. The new API now returns a pointer to an array of entity ids, vs. the entity id of the first created entity.
This version includes the following features:
- Implicit component registration in C++ API
- Switchable tags (allows for building fast state machines)
- Subqueries (queries that are matched against the tables of their parent queries)
This version includes the following improvements:
- Add type agnostic get/get_mut/modified/has functions to C++ API
- Add trait functions to C++ API
- Allow for specifying the signature in the flesc::query constructor
- Increased addressing space for type roles
- Add convenience functions to flecs::entity class for working with roles
- Allow querying for individual traits
- Add has_childof and has_instanceof to C++ API
- Moved private classes in C++ API to separate namespace
- Removed all bake code from flecs core
- Added OS API examples
- Added support for triggers to C++ API
- Moved change tracking from systems to queries
- Add ecs_query_next_w_filter
- Added a FAQ (https://github.com/SanderMertens/flecs/blob/master/docs/FAQ.md)
- New sparse set implementation
- Add fast path to table operations, improving performance
- Fixed name clashes with other libraries in OS API struct
- Added more sections and diagram to the manual
- Added support for AND & OR type flags in signatures
- Improved exporting types from a module
- Improved C++ API where world can be used as factory
This version includes the following bugfixes:
- Fixed issue with get_mut in C++ API
- Fixed issue with correctly registering components when using pointer types in queries
- Fixed issue where a cached pointer in a reference could become invalid
- Fixed uninitialized value in query sorting function
- Fixed issue where record_ptrs array would not be allocated with correct size in writer API
- Fixed uninitialized value during cleanup
- Fixed numerous memory leaks
- Fixed duplicate entries in stage
- Fixed issue where query would not detect a change in the data
- Fixed issue with optional components in C++ API
- Fixed C++ snapshot examples
- Fix issue where system name would not be copied in C++ API
- Fixed namespacing issue with nested modules in C++
- Fix issue with ECS_ALIGN macro and signed integers
- Fix issue with registering components across multiple worlds in C++
- Fixed issue where repeated bulk operation could cause out of memory errors