Add Chromium-only Blender WebEngine parity work

This commit is contained in:
mes123456
2026-08-12 04:47:48 -04:00
commit 9fd26010f6
18225 changed files with 11622124 additions and 0 deletions

30
docs/status/N-006.md Normal file
View File

@@ -0,0 +1,30 @@
# N-006 Blender Main 权威回写与恢复
状态:`completed_current_scope`
`setFrame``setObjectVisibility``setModifierEnabled` 现在直接更新持久化
Blender Main保存通过非 undo 的标准 write-file callback 写出内存 `.blend`。动画与 Pose
constraint fixture 已连续执行两代保存/重开,并在 1/5/10 帧比较网格、world matrix 和 bone
pose matrix。权威 Main dirty 后的 Depsgraph 现在直接使用 writer 输出,不再回退原始 reader
buffer。当前协议命令集中的 frame、visibility、modifier 开关和无 skin/shape-key 的
`decimateMesh` 均回写 Main。decimate 会重建三角 Mesh并保存 UV、corner color 和 material
indexCollapse/Un-Subdivide/Dissolve 都经过保存门。带 skin/shape-key 的 decimate 继续保持
snapshot-only保存返回 `BLEND_WRITE_REQUIRES_MAIN_AUTHORITY`,不会丢失 Key/vertex-group 后
伪造成功。
历史项现同时保存 SceneIR 与可重开的 Main bufferMain 命令 undo/redo 后可立即保存,撤销
snapshot-only 状态会恢复权威性。OPFS 保存使用 SHA-256、staging、journal、提交后复验和
manifest新 Worker 可从 staging 后或 scene commit 后两种故障点恢复,并串行化同项目的并发
保存。AutosaveScheduler 复用同一事务。N-007/W-080 新增的 Mesh Edit、UV、材质、packed
image、动画、约束、层级、Collection、Join/Separate、Apply Transform 和 Origin 已全部复用
Main mutation、undo/redo、原子保存和保存重开契约。
验收命令:
```bash
node tools/web/run-web-engine-smoke.mjs
bash tools/web/check-dual-engine.sh
npm --prefix web run test:main-roundtrip
npm --prefix web run test:authoring-roundtrip
WEB_TEST_PORT=5193 npm --prefix web run test:e2e -- --grep "atomic|journal|concurrent saves"
```