feat(lcd): animate fortune results with shared GFX layers

This commit is contained in:
chenjintao
2026-10-10 11:36:54 +08:00
parent bf06618848
commit ee32b4d63f
26 changed files with 3063 additions and 11 deletions
+11 -1
View File
@@ -234,7 +234,7 @@ Use a clear conventional format:
和预览,不把 tq-cat 的实现或其他目录里的旧文件当成当前工程。
2. 优先查看 `lcd_direct.c`、领域表情目录、平台公共接口、构建列表和 Kconfig。
图层制作还需阅读 `split_idle_expression.py`、`compress_idle_expression.py`。
3. 当前是待机/listening GFX 与其他 PNG 混合后端;未接入 esp_emote_expression 状态机,
3. 当前是待机/listening/抽签 GFX 与其他 PNG 混合后端;未接入 esp_emote_expression 状态机,
也未整体迁移到 LVGL。不要凭依赖存在或请求优先级字段推断功能已经实现。
### 必须保持的正确性
@@ -314,6 +314,15 @@ Use a clear conventional format:
22. 实机验收包括待机/表情切换、跨分钟、充电、缓存启动、唤醒与网络并行、
取消和超时。区分源码检查、主机测试、编译、设备日志与用户观感证据。
没有 TE 同步,不能承诺完全无撕裂;用户满意也不等于已量化稳定帧率。
23. 抽签还需阅读 `docs/抽签分层动画开发说明.zh-CN.md`。共享六图层与五份签文,
一次只解压共享图层及所选签文;LZ4 与旧四字节 RLE 不是同一格式。
`prepare_fortune_expression.py --check` 验证生成一致性/往返,
`test_lcd_fortune_gfx.py` 验证实际 C 解码、几何、取消和失败释放。
不能把所有结果都常驻或缓存全屏中间帧;退出先解绑 GFX 再释放 PSRAM。
动画前准备失败才可 PNG 后备,取消/传输失败不得重播旧六帧。
保留原领域结果选择和六步匹配;不得在平台重新随机抽签或改签文语义。
保持 `(56,20,208,220)` 安全窗口,覆盖放大爪尖且避开时间/电池;
图层尺寸或几何变化须同步生成器、预览与测试,不只替换 PNG。
回归命令(仓库根目录):
@@ -322,6 +331,7 @@ python3 tools/test_lcd_status_hud.py
python3 tools/test_lcd_emote_transport.py
python3 tools/test_lcd_emote_timeline.py
python3 tools/test_lcd_listening_gfx.py
python3 tools/test_lcd_fortune_gfx.py
```
提交只包含任务相关文件,遵守主题分支与原有提交规则;不要提交临时补丁脚本、