Files
MapLibreParticleLab/docs/报告/40-06_Runtime_Timeline与Playback_Codex完成报告_v1.md
OpenAI Codex 49b2e8aebd
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
feat: add runtime particle timeline playback
2026-09-03 21:23:29 +08:00

2.0 KiB
Raw Permalink Blame History

40-06 Runtime Timeline 与 Playback Codex 完成报告

状态:IMPLEMENTED / WAITING FOR ANDROID VALIDATION

完成内容

STEP-047 已实现由 RasterArraySource 唯一持有的 Timeline/Playback runtime。它保存有界 immutable snapshots、严格递增 logical timestamps、cursor、T0/T1、mix、播放/暂停、速度以及 gap/invalid/recover/end 状态。Renderer 不保存 Android 状态,不了解 provider/files/network,只读取 Source Core 的当前窗口和 mix。

自动播放在边界生成新的窗口 revision,沿用既有 OLD_T1 → NEW_T0 overlap GPU reuse;正常推进不要求 Style reload、Layer recreate、simulation reset 或 trail clear。MIX 是 Core clock 每帧产生的 scalar,不使用 Android Timer/JNI 每帧调用。

Android 侧新增薄 controlRasterArraySourceTimeline(sourceId, command, value) bridge;Activity 仅触发低频控制。Validation 控制台已收敛为 TIME | VIS | COUNT | MAP | MORE,所有既有动作可达,并增加 GAP/INVALID/RECOVER。

Core 覆盖

Source unit test 覆盖:五个快照、play/pause、速度合法性、step、seek/end。源码还校验时间戳严格递增与最多八个验证 cache entries。

未做内容

未接入真实天气网络、GRIB、Server、forecast cache、供应商协议、React Native、iOS/Metal/Vulkan 或新的粒子视觉能力;未重写 40-02/03/04/05 已冻结路径。

用户 Android x86_64 验收命令

cd /d C:\path\to\MapLibreParticleLab\platform\android
.\gradlew.bat :MapLibreAndroidTestApp:assembleOpenglDebug -Pandroid.injected.build.abi=x86_64 --console=plain

APK:MapLibreAndroidTestApp/build/intermediates/apk/opengl/debug/MapLibreAndroidTestApp-opengl-debug.apk。

建议手工验收:TIME→LOAD TIMELINE,PLAY,0.5x/1x/2x、pause/resume、step/seek;观察自动窗口边界 reuse;GAP/INVALID 在边界 fail-closed,RECOVER 后继续;再回归 MIX、VIS、COUNT、MAP、DISABLE/ENABLE。

本轮未执行 Android Gradle、ADB、Jest 或实体机测试。