生态桌面应用
动画与帧反馈
用言台呈现反馈驱动有界动画,并通过单槽背压避免无界帧队列。
言界 1.0 动画使用言台 1.0 的帧提交回执和帧呈现事件,不用固定间隔计时器猜测窗口何时
完成绘制。每个窗口只保存一个待呈现帧;应用持续更新时,新帧有界替换旧帧,不形成无界
渲染队列。
创建动画
窗口.动画(配置,更新回调)返回动画任务:
| 字段 | 默认值 | 边界 |
|---|---|---|
起值 | 0 | 有限数,起终跨度也必须有限 |
终值 | 1 | 有限数,起终跨度也必须有限 |
时长毫秒 | 140 | 1–3600000 |
缓动 | 线性 | 线性、缓入、缓出、缓入缓出 |
完成 | 空 | 可选回调,只在正常到达终点后调用一次 |
法 更新(值) 则
进度.值(值);
终
法 完成() 则
提示.内容(「完成」);
终
定 任务 为 窗口.动画({
「起值」:0,
「终值」:100,
「时长毫秒」:600,
「缓动」:「缓入缓出」,
「完成」:完成
},更新);任务公开编号、状态、运行中、取消和快照。状态为运行中、完成、已取消或失败;更新/完成 回调抛错只终止当前任务,其他动画和事件循环继续。每窗最多 1024 个活动动画,底层队列 硬上限为 4096。窗口关闭会取消活动任务,不再访问已释放平台资源。
呈现反馈链
- 注册任务时立即写入起值并请求首帧;
需要重绘生成完整帧,并取得提交帧序号;- 匹配的
帧呈现携带进程内单调呈现时间; - 言界用该时间推进活动任务并请求下一帧;
- 到达终值后提交静态终帧,终帧呈现后停止调度。
提交回执中的被替换帧会替换唯一待呈现身份,旧帧此后不会驱动动画。窗口隐藏、最小化
或表面尺寸为零时反馈可以暂停;恢复后的重绘按当前单调时间追赶,不积累计时器或帧任务。
帧呈现表示软件缓冲已交给原生表面,不等同于显示器垂直同步时间戳。
诊断与性能
窗口诊断提供待呈现身份、提交、替换、呈现、忽略、失败、最后延迟,以及动画活动数、高 水位、完成、取消和失败总数。诊断不保存更新回调或控件内容。提交失败会恢复全量脏区, 便于调用方处理错误后重试。
言界 Release 在固定 Linux x86-64 环境测量动画任务生命周期、帧反馈、64 个活动任务诊断 以及 32 控件布局/帧编码;报告使用预热、长样本、中位数和 MAD 门禁。性能预算用于发现 持续回归,不承诺任意机器的显示延迟,也不替代六目标真实窗口测试。
完整契约见 动画、帧反馈与运行诊断。