生态桌面应用

动画与帧反馈

用言台呈现反馈驱动有界动画,并通过单槽背压避免无界帧队列。

言界 1.0 动画使用言台 1.0 的帧提交回执和帧呈现事件,不用固定间隔计时器猜测窗口何时 完成绘制。每个窗口只保存一个待呈现帧;应用持续更新时,新帧有界替换旧帧,不形成无界 渲染队列。

创建动画

窗口.动画(配置,更新回调)返回动画任务:

字段默认值边界
起值0有限数,起终跨度也必须有限
终值1有限数,起终跨度也必须有限
时长毫秒1401–3600000
缓动线性线性缓入缓出缓入缓出
完成可选回调,只在正常到达终点后调用一次
 更新(值) 
    进度.(值);


 完成() 
    提示.内容「完成」);


 任务  窗口.动画({
    「起值」0
    「终值」100
    「时长毫秒」600
    「缓动」「缓入缓出」
    「完成」:完成
},更新);

任务公开编号、状态、运行中、取消和快照。状态为运行中、完成、已取消或失败;更新/完成 回调抛错只终止当前任务,其他动画和事件循环继续。每窗最多 1024 个活动动画,底层队列 硬上限为 4096。窗口关闭会取消活动任务,不再访问已释放平台资源。

呈现反馈链

  1. 注册任务时立即写入起值并请求首帧;
  2. 需要重绘生成完整帧,并取得提交帧序号;
  3. 匹配的帧呈现携带进程内单调呈现时间;
  4. 言界用该时间推进活动任务并请求下一帧;
  5. 到达终值后提交静态终帧,终帧呈现后停止调度。

提交回执中的被替换帧会替换唯一待呈现身份,旧帧此后不会驱动动画。窗口隐藏、最小化 或表面尺寸为零时反馈可以暂停;恢复后的重绘按当前单调时间追赶,不积累计时器或帧任务。 帧呈现表示软件缓冲已交给原生表面,不等同于显示器垂直同步时间戳。

诊断与性能

窗口诊断提供待呈现身份、提交、替换、呈现、忽略、失败、最后延迟,以及动画活动数、高 水位、完成、取消和失败总数。诊断不保存更新回调或控件内容。提交失败会恢复全量脏区, 便于调用方处理错误后重试。

言界 Release 在固定 Linux x86-64 环境测量动画任务生命周期、帧反馈、64 个活动任务诊断 以及 32 控件布局/帧编码;报告使用预热、长样本、中位数和 MAD 门禁。性能预算用于发现 持续回归,不承诺任意机器的显示延迟,也不替代六目标真实窗口测试。

完整契约见 动画、帧反馈与运行诊断