v2.2.0.0 版本说明
主要变更
本版本专注于 API 改进、新的多媒体功能和增强的组件功能。变更主要分为主要特性、主要 Bug 修复和破坏性变更。
主要特性
添加音频支持。(80e9a91d4)
添加视频文档和示例。(4737c631e)
添加配置驱动的新粒子效果系统。(6ab0b22cd, d3081dbfa, 8fb406f24)
添加带效果选择菜单的启动器。(1c25e4e0a)
为列表组件添加 LIST_ZOOM_CYLINDER 样式。(beca0b4a2)
添加文件系统中的 GIF 支持。(a3363cadd)
添加 A8 字体 MVE RGBA 渲染。(9478ce27e)
添加发布/订阅模式的消息监听器。(bb8b57e31)
添加计时器应用。(27421e7f5)
为几何图形组件添加渐变支持。(7b7a8c168)
为 SVG 添加渐变和 VFS 支持。(16ac9f3f3)
添加 3D 甜甜圈演示。(1f63c51f0)
添加交钥匙演示。(d285a10a1)
添加仪表盘演示模拟导航。(ce58a0b5f)
主要 Bug 修复
修复列表组件导致的硬件错误。(e62e92485)
修复矩形组件垂直行缺失问题。(b35893b35)
修复列表 LIST_ZOOM_CYLINDER。(bf4113a65)
修复矩形和圆形组件内存泄漏。(581c2c512)
修复 draw_img 中的 XIP 内存释放问题。(f0074d140)
修复矩形组件透明度错误。(76fdfd191)
修复文本组件校验和错误。(6ecd52318)
修复 gui_circle 矩阵错误。(8cb799105)
修复弧形透明度错误。(c8e05d6a5)
破坏性变更
将 gui_event_t 重命名为 gui_event_code_t。(6600c49fa)
重命名事件名称。(0702e4a7c)
移除 gui_vfs_load_file API。(8f298856c)
移除 gui_gray 组件。(29e8912cd)
删除画布矩形和弧形组件。(468372b83)
将 A8 和 I8 格式统一为 U8 格式。(4629e8dc7)
变更日志
以下列出所有变更,分为新增、变更、修复和移除四类。
新增
添加音频支持。(80e9a91d4)
添加视频文档和示例。(4737c631e)
添加新粒子效果。(6ab0b22cd)
添加带效果选择菜单的启动器。(1c25e4e0a)
添加 LIST_ZOOM_CYLINDER 样式。(beca0b4a2)
添加文件系统中的 GIF 支持。(a3363cadd)
添加 A8 字体 MVE RGBA 渲染。(9478ce27e)
添加预设效果的粒子系统。(8fb406f24)
添加发布/订阅消息监听器。(bb8b57e31)
添加计时器应用。(27421e7f5)
为几何图形组件添加渐变。(7b7a8c168)
为 SVG 添加渐变和 VFS 支持。(16ac9f3f3)
添加 3D 甜甜圈演示。(1f63c51f0)
添加交钥匙演示。(d285a10a1)
添加仪表盘演示模拟导航。(ce58a0b5f)
为矩形/圆形添加触摸事件。(da82116a8)
添加 I8 压缩格式。(c5a094913)
添加默认字体位图。(e450ecc6d)
添加 Linux GCC 构建脚本。(4f53fa53a)
添加获取视频文件大小的 API。(26ef42942)
添加矢量字体像素宽度函数。(c97a26163)
添加 OpenGL 代码。(7aa1e1e86)
添加 HML 视频组件支持。(a2ea78f5e)
为字体引擎添加 FILESYS 支持。(4d7b80a77)
添加非滚动对齐。(a4a0a64f1)
添加从已销毁对象取消订阅的功能。(d434acc72)
添加列表组件区域显示功能。(5c0ac615c)
添加键盘根节点。(b635adb85)
变更
更改为新的图像设置源 API。(ca1f506c3)
重构键盘输入处理系统。(a589d86d5)
重构粒子系统为配置驱动。(d3081dbfa)
解耦 h264bsd 解码器和视频组件。(7edd40a60)
使用标准 GIF LZW 解码方法。(4fc986271)
支持裁剪和索引。(37c3a2094)
设置图像组件源为内存。(58b766f8f)
Lite3d 添加用户数据。(36024bf96)
Lite3D 支持 I8 光栅。(f852a6ed5)
矢量支持加粗。(53a746683)
优化几何图形组件。(d157a884d)
使用统一管理器重构字体库。(cad3a146b)
优化弧形。(f703581b3)
几何图形组件添加矩阵。(f5de2de85)
监听器使用动态链表。(8689ef3fc)
按类别重构 shell 命令。(16133b6e7)
重构引擎目录结构。(406be1ce8)
统一 SConscript 和 CMakeLists 文件。(8d3208c86)
重构矩阵和数学模块。(21fffc543)
将父级变换应用于 3D。(a7255fee3)
使用 h264bsd_malloc/free 进行内存管理。(fd2eab751)
扩展字体大小参数范围为 uint16_t。(d6194ebb8)
更改颜色表计数器存储。(53201ffc4)
用 Kconfig 流程替换 menu_config.h。(3017a69d0)
重构 CMake 中的头文件安装。(37ed1f5f8, 2bea302b5)
修复
修复列表组件导致的硬件错误。(e62e92485)
修复矩形组件垂直行缺失问题。(b35893b35)
修复列表 LIST_ZOOM_CYLINDER。(bf4113a65)
修复矩形和圆形组件内存泄漏。(581c2c512)
修复 draw_img 中的 XIP 内存释放问题。(f0074d140)
修复矩形组件透明度错误。(76fdfd191)
修复文本组件校验和错误。(6ecd52318)
修复 gui_circle 矩阵错误。(8cb799105)
修复弧形透明度错误。(c8e05d6a5)
修复 coverity 问题。(992e4ca26, ca6095477)
修复静态库自动执行问题。(83910ba2e)
修复包含问题。(81531bc4a)
修复 MinGW 的 d_type 检测。(096bcb3ce)
修复字母间距错误。(f1b8d7f6d)
修复 VFS 适配器中的类型定义重定义。(001383367)
修复 fb 清除 24 位。(97a59b9a2)
修复 gui_view.rst。(4cdfeca2b)
修复泰语处理错误。(281a03b03)
修复仪表盘演示。(9ffb6a8ed)
修复 bypass 问题。(c5c8e9add)
修复 nanovg agge 安装头文件。(e5f8addfe)
修复充电盒根地址生成。(53425ac40)
修复标志 gltf 模型。(e45b7da7b)
修复编译问题。(ee946c737)
修复自动编译问题。(3b4c04094)
修复包含保护符以匹配文件名。(8fadef344)
修复字体脚本。(6e34573ba)
移除
移除 gui_vfs_load_file API。(8f298856c)
移除 gui_gray 组件。(29e8912cd)
移除未使用的头文件。(012c3d2f1)
移除 Python 字体转换器。(30f021677)
移除注释。(6828587b3)
从注释中移除需求引用。(55721db18)
移除 gui_gray.h。(a0f086514)
删除画布矩形和弧形组件。(468372b83)
API 迁移指南
图像组件 API 变更
图像组件 API 进行了重构,以提供更清晰和显式的参数控制。旧 API 已被弃用但仍可用于向后兼容。
已弃用的 API:
gui_img_set_attribute(gui_img_t *_this, const char *name, void *addr, int16_t x, int16_t y)gui_img_set_image_data(gui_img_t *_this, const uint8_t *image_data_pointer)
新 API:
gui_img_set_src(gui_img_t *_this, const uint8_t *file_pointer, uint32_t storage_type)- 设置图像源并显式指定存储类型gui_img_set_pos(gui_img_t *_this, int16_t x, int16_t y)- 设置图像位置
存储类型:
IMG_SRC_MEMADDR- RAM 或 Flash 内存中的图像数据IMG_SRC_FILESYS- 来自文件系统的图像IMG_SRC_FTL- 来自 Flash 转换层的图像
迁移示例:
旧代码:
gui_img_set_attribute((gui_img_t *)home_bg, "home_bg", home[0], 0, 0);
新代码:
gui_img_set_pos((gui_img_t *)home_bg, 0, 0);
gui_img_set_src((gui_img_t *)home_bg, home[0], ((gui_img_t *)home_bg)->storage_type);
旧代码:
gui_img_set_image_data(img_strawberry, (const uint8_t *)FRUIT_NINJA_STRAWBERRY_BIN);
新代码:
gui_img_set_src(img_strawberry, (const uint8_t *)FRUIT_NINJA_STRAWBERRY_BIN, IMG_SRC_MEMADDR);