Skip to content

Conversation

@Dandielo
Copy link
Member

No description provided.

* Implemented missing AIO functions.
Overview:
This pull request focused on providing more DevUI widgets with information about the engine / games state. In addition to those small improvements here and there were achieved.

Added:
- New 'ice::Color' type along with user defined literals: ""_argb, ""_brga, and more...
- New 'ice::sort' utility that sorts an secondary indexing array based on the actual data array.
- New logger **sink** feature allowing to handle messages in user-defined ways.
- New DevUI's: Logger, World Manager, Worlds and some Traits

Refactored:
- Time types, now always returning a strong typed value.
- Conversion between time resolutions is now implicit. (Beware it may result in loss of data in some cases)
* Introduced new 'ice::native_file::create_directory' function.
* Introduced new 'ice::path::is_absolute_root' function.
* Fixed refcount bug in Asset handle.
* Fixed some bugs after Resource handle refactor.
* All trait bindings have now access to 'AssetStorage', 'ResourceTracker' and 'Clock' types if requested.
* Extended DevUI API allowing to setup main menu categories.
* Introduced new 'Trait::send' methods to easily push events for the next frame.
* Added the possibility to store more complex handles in events. (ice::Asset, ice::ResourceHandle)
* Fixed non-unity builds.
* Fixed small bugs with event propagation between state definitions.
* Trait Archive can now register ECS Archetypes if a trait descriptor provides it.
* EntityStorage can now handle new archetypes added later.
* EntityStorage now holds a simple tracker between ice::Entity -> ice::EntityHandle.
* Added new 'queue_batch_remove_entities' function accepting spans of 'ice::Entity'
* Added 'resolve_entities' method to 'QueryProvider' type.
* Fixed bug in batch removal operation selecting entity handles from the wrong location.
* Trait tasks can now be executed on three stages: Logic, Graphics, Render.
* Trait logic tasks should be used when only gameplay data is updated.
* Trait graphics tasks should be used when gameplay data needs to be send to the GPU.
* Trait render tasks should be used when building GPU objects and data.
* Traits can now select how events will be sent (Added or Replaced, if existing)
* Archetypes can now be defined with a name.
* Added 'ice::ecs::query::entity_data' functions to access single entity data.
* Fixed small bug with 'set_archetype_with_data' using the wrong Archetype ID.
… 'Invalid' values.

* Skip any action if the handle is 'Invalid'
…ts in render Storage.

* Buffer objects are kept up-to-date with view-projection matrices.
* Introduced .natvis for VarString types.
* Fixed resources names being invalid for baked (.isr) resources.
Dandielo added 28 commits May 12, 2025 20:33
* Added documentation to types and functions.
* Added documentation to the mentioned types.
* Played around the various options.
* Allows to only run queries on a runtime per-block filter.
* Moving entities between 'filters' can be done one-by-one. (todo multiple moves)
* Small cleanup of some parts of code.
* Simplifying the API by utilizing a builder pattern.
* Removing old code no longer to be used.
* Storage allows to attach a callback with userdata, and access up to two components when enties are destroyed.
* Fixed a crash in QueryOperations due to filter objects references where invalidated when created from a QueryBuilder.
* Fixed entities improperly storing their slots in the entity storage, overriding previous values in large operations.
* Fixed entities not clearing slot information on destruction.
* Fixed entities being moved to the wrong locations after a hole was created during destruction.
* Fixed some bugs in x64 and webasm test apps.
@Dandielo Dandielo closed this Jun 23, 2025
@Dandielo Dandielo deleted the cherry-changes-june branch June 23, 2025 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants