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

To top