Flecs v3.1.5
Highlights
- A big upgrade to the reflection framework which can now serialize/deserialize custom (including STL) types!
- New functions to serialize & deserialize a world to & from JSON
- Improved performance of iterating queries with tag fields (+30-50%)
- Improved performance of table creation in apps with lots of cached queries (+70-90%)
- Improved performance of notifying multiple observers for the same event (+20-30%)
Release notes
This version includes the following bugfixes:
- Fix issue where symmetric relationship would be cleaned up before its observer
- Fix issue in debug mode where entity generation check could use wrong index in dense array
- Fix issue where
on_set
hook was not called before observers during command batching - Changed incorrect return type of
ecs_id_is_tag
tobool
- Ensure destructor is called on moved away from value in command queue
- Fix memory leaks when using a global
flecs::world
object - Ensure destructor is called on moved away from column when merging tables
- Fix lambda compilation issue when using Visual Studio 2017
This version includes the following improvements:
[core]
Allow forecs_ensure
to be called from stage[core]
AddTraversable
property to allow for relationships that are acyclic but not traversable[core]
Only applyDontInherit
property toIsA
traversal[meta]
Serialization & deserialization support for opaque types[meta]
Add methods for deserializing values & entities to C++ API[json]
Add option to JSON serializer to serialize all contents of a matched table[json]
Add functions for serializing/deserializing world to/from JSON[observers]
Improve performance of invoking multiple observers for the same event[queries]
Improve detection and handling of query terms without data[cpp]
Remove redundant world argument fromflecs::entity
constructor inid::second()
[cpp]
Addbegin/end
methods toflecs::type
so it can be iterated[cpp]
Addentity::view
method for safe upcast from stagedflecs::entity
object[cpp]
Automatically disable enum reflection for compilers that don't support it[docs]
Improve documentation ofget_mut
[docs]
Rewrite of the FAQ[docs]
Add query example for singletons, add singleton section to quickstart[ux]
Add assert when not using stage when creating iterator in multi threaded world[internals]
Use observers for notifying queries of new tables[internals]
Improve performance ofecs_bulk_init
by using faster function to update entity index[internals]
Implement small utility API for parsing JSON strings
Breaking Changes:
- Inconsistencies in the naming of JSON deserialization functions have been fixed (#466 (comment))
- The behavior of the
Acyclic
property has been split up into anAcyclic
andTraversable
property (#466 (comment))
Known issues:
#844
#765
#714
#620
#478
#314
New Contributors
- @BeanCheeseBurrito made their first contribution in #923
- @Thinkofname made their first contribution in #928
Full Changelog: v3.1.4...v3.1.5