2.0 KiB
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 或实体机测试。