LVGL v9.1.0 于 2024 年 3 月 20 日发布,为 v9 系列带来了大量新功能、性能优化和稳定性改进。
此版本专注于硬件加速增强、扩展的平台支持和开发者体验改进。包含超过 60 项新功能和 150 多项错误修复,v9.1 在稳定性和功能方面迈出了重要一步。
新功能#
输入设备增强#
表冠输入支持 - 增加了对旋转表冠输入设备(如数字手表表冠)的支持,为嵌入式 UI 提供直观的旋转导航。
键盘改进 - 增加了 Home 和 End 键映射,扩展了 X11 驱动程序中的 LV_KEY 支持,并修复了 PRESSED 状态激活时的滚动行为。
图形和渲染#
位图蒙版 - 新的位图蒙版功能允许对图像和图层进行精确的像素级透明度控制,实现复杂的视觉效果。
Helium 加速 - 为软件渲染添加了简单的 ARM Helium 加速,为带有 MVE 扩展的 Cortex-M 处理器带来 SIMD 性能优势。
矢量图形 - 添加了向矢量路径追加圆弧的 API,VG-Lite 中的描边路径支持,以及改进的路径质量设置。
ARGB8565 颜色格式 - 新的混合颜色格式,结合 8 位 alpha 通道与 5-6-5 RGB,优化半透明图形的内存使用。
平台和驱动程序支持#
Espressif FreeRTOS - 添加了对 Espressif FreeRTOS 版本的官方支持,提高了与 ESP32 生态系统的兼容性。
libinput/xkb 驱动程序 - 新的 Linux 输入驱动程序,支持现代输入堆栈和完整的键盘布局处理。
LittleFS 集成 - 实现了对 LittleFS 的文件系统驱动程序支持,在嵌入式系统上实现闪存友好的文件操作。
显示实用程序 - 添加了屏幕截图到文件的功能,更容易捕获和调试 UI 状态。
缓存和内存管理#
统一缓存框架 - 重构了缓存系统,提供新的 API,更好地控制图像、字形和资源缓存。
独立图像缓存堆 - NuttX 用户现在可以为图像缓存配置专用堆,提高内存隔离性。
图像头缓存 - 添加了单独丢弃图像头缓存的功能,优化大型图像集的内存使用。
开发者工具#
分析器多线程 - 为性能分析器添加了多线程支持和专用测试用例。
二进制图像查看器 - 用于检查二进制图像数据的新工具,对调试自定义图像格式很有用。
Systrace 集成 - 通过 systrace 文件格式支持增强了跟踪过滤。
FreeType 和字体渲染#
JPEG EXIF 支持 - 添加了通过 libjpeg-turbo 加载的 JPEG 图像中 EXIF 方向数据的解析。
FreeType 斜体倾斜 - 使用 FreeType 进行斜体字体渲染的可配置倾斜角度。
FreeType 压力测试 - 用于验证负载下字体渲染的综合测试套件。
性能改进#
RGB565 混合优化 - 对 16 位颜色混合操作进行了小幅但可测量的加速,使所有软件渲染显示器受益。
简化图层清除 - 更高效的图层清除方法减少了多图层渲染场景中的开销。
VG-Lite 异步渲染 - GPU 操作现在可以异步执行,极大地提高了 NXP i.MX RT 和其他 VG-Lite 平台的吞吐量。
错误修复#
此版本包含所有子系统的 150 多项错误修复。主要改进领域:
渲染和显示#
- 修复了非抗锯齿 RGB565A8 变换伪影
- 修正了缩放图像区域的无效化
- 修复了 DIRECT 模式下的 ARGB8888 缓冲区清除
- 解决了 LV_BLEND_MODE_MULTIPLY 的 RGB565 渲染
- 修复了 VG-Lite 中不完整的图层绘制
输入处理#
- 修复了对象删除时的意外点击触发
- 修正了释放时滚动对象的清除
- 修复了键盘最后按键的跟踪
控件#
- 修复了 imagebutton 中间部分的裁剪
- 修正了 msgbox 页脚 getter
- 修复了音乐演示中上一曲按钮的点击区域
- 解决了无默认日期时日历的崩溃
- 修复了尺寸变化时 tileview 位置更新
内存和缓存#
- 修复了 VG-Lite 线性图像中潜在的 use-after-free
- 修正了 >4GB 分配的 TLSF 内存池处理
- 修复了显示删除时的 SDL 缓冲区内存泄漏
- 解决了图像解码器关闭问题
平台特定#
- Windows:通过高分辨率滴答计数改进了图形性能
- DRM:默认为 XRGB8888 帧缓冲区格式
- FatFS:修复了目录条目结束检测
- NuttX:多项驱动程序和构建修复
- X11:修复了显示删除时的断言
文档更新#
- 更新了与 v9 API 变更相关的显示文档
- 添加了带代码示例的 STM32 ST7789 分步指南
- 改进了 PC 模拟器设置文档(SDL 手动设置)
- 删除了已弃用的 SquareLine Studio 引用
- 通过功能开发工作流程增强了贡献指南
- 添加了中文翻译跳转链接
- 记录了
lv_refr_now函数的使用
破坏性变更#
无。版本 9.1.0 与 9.0.0 保持完全 API 兼容。
迁移说明#
如果从 v9.0 升级,只需更新依赖项。无需更改代码。
如果从 v8.x 升级,请参阅 v9.0 迁移指南了解 v9.0 版本中引入的破坏性变更和 API 更新。
入门指南#
# 通过 Git 更新
git checkout v9.1.0
# 通过 PlatformIO 更新
platformio pkg update
# 通过 ESP-IDF 组件管理器更新
idf.py update-dependenciesbash完整发布说明和更新日志:GitHub Release v9.1.0
特别感谢为此版本提交代码、错误报告和文档改进的 100 多位贡献者。
