Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
axmol-2.9.0.zip | 2025-10-05 | 223.7 MB | |
axmol-bs-2.9.0.zip | 2025-10-05 | 56.5 kB | |
README.md | 2025-10-05 | 6.0 kB | |
v2.9.0 source code.tar.gz | 2025-10-05 | 29.8 MB | |
v2.9.0 source code.zip | 2025-10-05 | 34.9 MB | |
Totals: 5 Items | 288.5 MB | 1 |
The 2.9.0 release is a minor LTS
release for bugfixes and improvements
đThanks to all contributers of axmol include financial sponsors: @scorewarrior,@peterkharitonov,@duong,@thienphuoc, @bingsoo, @asnagni and Past sponsors
đWe are deeply grateful to @scorewarrior for their incredible support â increasing their GitHub Sponsors contribution by $2,000/month, on top of their ongoing $3,000/month sponsorship via the Open Source Collective. Your generosity helps keep the Axmol project thriving and growing.
Significant changes relative to 2.8.x:
3D Audio & Basic Effects
- Add support for audio panning by @rh101 in #2719
- Add support for playing audio at any position in 3D space by @rh101 in #2740
- Initial implementation adding support for audio effects and filters using OpenAL by @rh101 in #2772
- Fix reverb properties values by @rh101 in #2779
Other Changes
- Add screen orientation control for mobile devices by @halx99 in #2784
- Add new API
EventKeyboard::isRepeat
by @halx99 in #2735 - Add new API
ZipFile::createWithData
and markZipFile::createWithBuffer
as deprecated by @halx99 - Enhance Base64 decoder to skip whitespace/newlines and prevent premature termination by @halx99
- Add Device::resolveOrientation and compact resolution logic by @halx99 in #2792
Bug fixes
- Fix
ui::MediaPlayer
may crash on Apple platforms by @halx99 in #2704 - Fix occasional missing Android assets in AAB build by @paulocoutinhox in #2713
- Fix format specifiers in logging calls by @rh101 in #2749
- Fix for crash when director is reset during scene transition by @halx99 #2802
Improvements
- Add Http setDataCallback for streaming data support by @halx99 in #2805
- Improve ios EditBox orientation handling with keyboard by @halx99 in #2791 and #2795
- Add support for extracting the previous scene from the scene stack by @rh101 in #2793
- Destroy
ScriptEngine
instance before_scheduler
to respect dependency by @halx99 - Fix SpineTest aim y-axis by @halx99
- Replace deprecated calls with new API in engine by @halx99
- Update
controller.cpp
: rename "Audio - NewAudioEngine" to "AudioEngine" by @aismann in #2731 - Fix addressed several non-critical issues for lua-tests by @halx99
- Remove non-existent yaml-cpp from template cmake modules by @halx99
- Remove CI pull-request trigger event:
ready_for_review
by @halx99 - Update kcp to resolve cmake error by @halx99
- Dispatch applicationScreenSizeChanged when layoutSubviews on ios by @halx99
- Rename internal ios class: EARenderView => RenderHostView by @halx99
- Make Director::getRunningScene() return the expected result for any type of scene switch when called from Node::onEnter() by @rh101 in #2799
SDK & Tools updates
- webview2: 1.0.3405.78 => 1.0.3485.44
3rdparty updates
- curl: 8.15.0 => 8.16.0
- freetype: 2.13.3 => 2.14.1
- jpeg-turbo: 3.1.1 => 3.1.2
- luajit: 2.1-f9140a6 => 2.1-871db2c
Notes
Add new API: ZipFile::createWithData
Rationale
The existing API ZipFile::createWithBuffer
has a design flaw. It accepts a const char*
buffer without clarifying ownership, which makes the API dependent on the external bufferâs lifetime. This can lead to undefined behavior and hard-to-trace bugs.
Improvement
The new API ZipFile::createWithData
takes a Data
object as its parameter. Since Data
supports move semantics, ownership and lifetime are explicit. This ensures safer usage, reduces the risk of misuse, and provides more predictable behavior for developers.
Add screen orientation control for mobile devices
Rationale
Previously, screen orientation could only be configured statically through platform settings
(e.g., info.plist
on iOS or AndroidManifest.xml
on Android). This limited flexibility,
as the rendering orientation could not be changed at runtime once the app was launched.
Improvement
A new core API Device::setPreferredOrientation
has been introduced.
- When orientation support is already declared in info.plist
(iOS) or AndroidManifest.xml
(Android),
this API allows dynamic modification of the rendering orientation at runtime.
- Developers can now switch between portrait and landscape modes programmatically,
adapting to gameplay, UI flow, or user preferences.
Benefit
- Consistent cross-platform orientation handling.
- Eliminates the need for platform-specific code to adjust orientation dynamically.
- Improves user experience by adapting rendering orientation seamlessly during runtime.
Developer Note
The engine only performs basic adaptation internally.
It is still recommended that developers handle their own resolution and layout adjustment strategies
inside AppDelegate::applicationScreenSizeChanged
to ensure proper scaling and UI behavior
across different devices and orientations.
MD5 Hash of the release artifacts
axmol-2.9.0.zip
: 4dbbb9057edc1ecdbd67990ff4ed4fedaxmol-bs-2.9.0.zip
: 750562c7fd090705b6595956e1923fc7