Releases: iceshard-engine/engine
Releases · iceshard-engine/engine
v0.4.0 - Android and WebAssembly
These are the highlights of a year's worth of work.
New platforms:
- Android-armv8, Android-x64 (Gradle)
- WebAsm-x86_x64 (Emscripten) + WebGPU
New features:
- Added 'ICE_ASSERT_CORE' macro as a quicker option for 'ICE_ASSERT'
- Added new math primitive, the 'array' value.
- Added 'ice::path::basename'
- Added 'string::push_format' for modifying strings with FMT format strings.
- Aliased 'std::bit_cast' in the 'ice' namespace.
- Aliased 'std::upper_bound' and 'std::lower_bound' in the 'ice' namespace.
- Implemented std-like 'ice::binary_search'.
- Implemented expected result type.
- Implemented coroutine expected result type.
- Implemented coroutine cancelation tokens.
- Introduced new 'App' API.
- Introduced new 'Params' API.
- Introduced new 'Platform' feature API.
- Introduced new 'GfxGraph' API allowing for a render graph like workflow.
- Introduced the 'Hailstorm' binary packaging format as resource provider.
New tools:
- hsc_packer - Allows to create HailStorm packs
- hsc_reader - Allows to inspect (stdout) HailStorm packs
Refactored systems:
- The whole dynamic module / module API registration.
- The whole 'platform' API / project was refactored and reimplemented for all platforms.
- Partially refactored metadata APIs.
- Partially refactored resource-system AsyncIO handling.
- Partially refactored resource-system Filesystem provider APIs.
Changes:
- Replaces 'ResultCode' with 'ErrorCode' and 'Expected' types.
- Using 'vulkan-memory-allocator' library instead of custom solution.
- Log API now allows for more customization when it comes to user tags.
- Inputs now can partially handle touch events.
- DynamicLib provider handles now Unix libraries.
- FileSystem provider now handles Unix directories and files.
- FileSystem provider can now process directories asynchronously when synchronizing.
- Introduces new test cases for various parts of the engine.
- Profiling no longer enabled by default for 'Develop' configuration.
- 'InputTracker::process_device_events' arguments now accepting span's of DeviceEvents.
- 'RenderCommands::begin_renderpass' function now accepts Span of 'const vecf' values.
- Multi-path Filesystem ResourceProvider now accepts Span of const strings.
- Relaxed: Allowing to create shards from ShardIDs.
- Relaxed: Allowing to implicit cast Shards to ShardIDs.
- Relaxed: UniquePtr arrow-access operator allows to access 'non-const' pointer values form 'UniquePtr const' objects.
- Relaxed: Metadata is no longer mandatory for resources or assets.
Fixes:
- Fixed array clear for some 'complex' types.
- Fixed 'ManualResetBarrier::set' function not waking up threads when set.
- Fixed crash in StaticString when created from empty string / nullptr.
- Fixed log tags not properly being solved in all cases.
- Fixed missing destruction call to elements if replaced under certain situations.
- Fixed passing span values to std::sort.
- Fixed possible crash with LinkedQueueRange 'begin' function.
- Fixed Resource access using synchronous setup.
- Fixed a quite rare MT bug in linked queue.
- Fixed async writer logic allowing to write after free, when async writing was used.
- Fixed crash when items are released mid-iteration.
- AND LOTS MORE
Full Changelog: v0.3.1...v0.4.0
v0.3.1
v0.3.0
v0.2.0
Resources and Assets
What's Changed
Full Changelog: v0.0.1-alpha...v0.1.0-alpha
IceShard 0.0.1-alpha
This is the first release of this project.
It provides basic rendering features, has API's that allow build a simple game, but does not provide complete solutions.
The next release will try to expand existing and add new features.