时光流转,转眼间 2024 年了,自上个版本发布已经过去 4 个月,axmol-2.1.0 终于在 2024/1/20 正式发布了,此版本是一个主要的 LTS
维护发行版本,在此先感谢所有参与 axmol 的贡献者,特别感谢以下几位(名称为 github 账户名):
- @rh101 @DeliWorks @aismann 在 axmol github 社区相当活跃
- @iAndyHD3 创建了 axmol discord 论坛并维护
- @danialias 创建和维护 axmol 的 wiki 页面以及 axmol.org 主页
2.1.0 相对于 2.0.0 的主要更新如下
- 大幅缩减了仓库大小,由原来的 1.1GB+ 缩减至约:80MB
- cmake 配置阶段同时添加了 gitee 镜像支持,在相对于引擎目录创建空文件
1k/.gitee
即可
- cmake 配置阶段同时添加了 gitee 镜像支持,在相对于引擎目录创建空文件
- Windows UWP平台由
C++/CX
迁移至cppwinrt
,自此 axmol 支持的所有平台 C++ 标准得以统一为20
- 增强
TTF
文本渲染,支持开启全局SDF
渲染和渲染预烘焙SDF
纹理- 添加扩展
SDFGen
用于生成预烘焙SDF
字体纹理 - 增加 API:
FontAtlasCache::preloadFontAtlas
用于于加载预烘焙的SDF Font 纹理
- 添加扩展
- 增加 API:
Device::getPixelRatio
获取设备 DPI 缩放值 - ImGui Android 平台增加 DPI 支持
- 增加 Windows UWP 平台 FPS 控制支持,以便在高刷屏幕上能够合理限制帧率
- 整合
backend::Device
和backend::DeviceInfo
到backend::DriverBase
以避免和主命名空间下的Device
重名 - 添加扩展:
JSONDefault
- 添加
WICImageLoader
虚拟文件系统支持 - 添加
RichText
垂直对齐支持 - 添加扩展:
Inspector
以便探查场景对象 - 为
Native
和WebGL
平台添加实验性的WebSocket
支持 - 添加
fairygui
Lua 绑定支持 - 为 PC 平台启用矩阵运算
SSE
加速指令支持 - 添加
UserDefault
多文件配置支持 - 添加
ActionCoroutine
类似 unity 引擎的协程支持 - 添加 .net 风格的
JsonWriter
类支持 - 更新 Android API 至: 34
- 更新 AGP 插件至: 8.2.1
- Android Studio 要求版本提升至: 2023.1.1+
BugFixes
- 修复 glslcc 翻译后的 Metal Shader 中的纹理绑定次序和 GLSL 源码中不一致问题
- 修复
GLES3
Shader 中标量数组布局错误问题 - 修复 Lua 扩展在 Windows 平台的构建错误问题
- 修复 ImGui 扩展一些稳定性问题
- 修复
wasm
错误的 ALPHA 预乘造成系统字体渲染模糊问题 - 修复文本渲染中未正确处理内容缩放导致布局错误问题
- 修复
wasm
随机工具类始终返回0
问题 - 修复
ShaderCache
内存泄漏问题 - 修复重建
ImGui
context crash 问题 - 修复
AudioPlayer::setTime
针对双通道音频设置播放时间错误问题 - 修复
label
SDF渲染时描边效果在Metal
不起作用问题。
功能增强
- 使用
std::unordered_map
替代了uthash
- 所有平台 cmake 版本要求提升至
3.28.1+
- 增强
install-pwsh
脚本和axmol
命令行构建脚本 - 修复了 AGP8 构建警告,变更了 APK 签名 Gradle 配置:
- RELEASE_STORE_FILE ==> KEY_STORE_FILE
- RELEASE_KEY_STORE_PASSWORD ==> KEY_STORE_PASSWORD
- RELEASE_KEY_ALIAS ==> KEY_ALIAS
- RELEASE_KEY_PASSWORD ==> KEY_PASSWORD
兼容性修改
- 重命名了
OpenGLView
==>GLView
三方库更新
- astcenc: 4.5.0 ==> 4.7.0
- c-ares: 1.19.1 ==> 1.25.0
- clipper2: 1.2.2 ==> 1.3.0
- curl: 8.2.1 ==> 8.5.0
- jpeg-turbo: 3.0.0 ==> 3.0.1
- llhttp: 9.0.1 ==> 9.1.3
- ntcvt: 1.0.0 ==> 1.0.1
- oboe: 1.7.0 ==> 1.8.0
- openssl: 3.0.10 ==> 3.0.12
- rapidjson: 1.0.0 ==> 1.0.0-b4a6da3
- simdjson(NEW): 3.6.3
- webp: 1.3.1 ==> 1.3.2
- yasio: 4.1.0 ==> 4.1.4
- fmt: 10.1.1 ==> 10.2.1
- imgui: 1.89.8 ==> 1.90.1