Files
workinf_Blender_Wasm/docs/tasks/WBV2-P1424-001-desktop-completion/DW01.md
mes123456 f3e21c6b98
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer,
web workflow engine and protocol, tooling, docs and task records.
Large generated evidence, user-testing archives, build snapshots and
imported test assets remain untracked.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-10 11:18:01 +08:00

62 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DW01:原生桌面画布、窗口和编辑器区域
- stage: `main-desktop`
- queueTask: `WBV2-P1424-001`;parent: `WBV2-P1424-000`;nextTask: `null`
- 包状态:`planned_gap_closure`(并不表示已有源码尚未实现)
- 完整交付依赖:现有主应用与当前交接
- 工作量级:L;不表示日期承诺
- validation: `NOT_RUN`;acceptance: `NOT_CLAIMED`
## 优先复用的十多天成果
当前 main.tsx 默认 localOnly;App 已挂载 WasmGPUCanvas;已有原生 WM/GHOST、区域输入和 cycle 157 视口间接绘制产物。
既有任务:`BROWSER-EQUIVALENT-RUNTIME`(记录为 implemented)。按需读取一个任务结果的 summary/remaining/ownedPaths,不打开完整产品报告。
相关交接仅作按需引用:
- `tests/golden/WBV2-P1424-001/source-workspace-implementation.md`
- `tests/golden/WBV2-P1424-001/region-view-implementation.md`
- `tests/golden/WBV2-P1424-001/unattended-implementation/cycle-000157/result.json`
先对照当前小范围源码和最新交接保留已实现子项;只有缺功能、缺接线或缺必要依赖才新增实现。历史状态不自动当作当前缺口。
## 操作者工作流与交付
打开主应用 → 默认原生工作区 → 区域切换/分割/合并 → 视口/Outliner/Properties/Timeline 同步交互
操作者能从默认入口使用一个连续的原生桌面工作区,区域不是孤立诊断窗;生产接线、必要本地候选和区域生命周期说明。
## 最小生产入口
- `web/app/src/main.tsx`
- `web/app/src/app/App.tsx`
- `web/app/src/app/WasmGPUCanvas.tsx`
- `web/app/src/workers/web-engine.worker.ts`
- `blender-5.2.0/source/blender/web_engine/web_engine_gpu_ui.cpp`
- `blender-5.2.0/source/blender/windowmanager/intern/wm_draw.cc`
- `blender-5.2.0/source/blender/gpu/webgl/webgl_backend.cc`
以上为聚焦入口,非要求全文加载。使用源码聚焦工具、精确 --source/--unit 和函数片段;接入新 operator 时追加其具体原生文件,单次最多 8 个精确源码文件。没有默认测试入口或要运行的 fixture;功能完成前不执行任何验证。
## 只补未完成部分
1. 保留当前主入口与既有区域上下文,把 wm_draw_update 的默认区域绘制接到真实 framebuffer load/store、attachment/subpass 转换。
2. 补齐 area/region 的选择、焦点、尺寸、分割/合并、最大化、workspace/screen 切换及窗口/区域生命周期;不能用静态 HTML 面板代替原生区域完成。
3. 贯通 Outliner、Properties、Timeline 与 3D View 的 active object/frame/context,处理局部 redraw 和依赖变更。
4. 实现 CSS 尺寸到 framebuffer 的 DPI 映射、canvas resize、跨区域鼠标/键盘焦点和浏览器内多窗口等价工作流。
5. 复用已有 native indirect draw,补齐本业务实际所需 overlay、framebuffer、资源释放;遇到 compute 屏障依赖转入 DW03 对应子项再返回。
6. 接通启动资源缺失、窗口/区域销毁、context loss 的可恢复状态;具体脚本/控件注册由 DW02 负责。
## 失败边界
保留已有能用的界面和业务。原生区域异常不得误标 nativeUI=true;已生成画布或截图不能代表 UI 完成。
## 实现交接与后续使用
交付前必须具有实际入口→原生执行→消费者/结果→错误/取消→适用 history/save 的生产代码。这里是实现交付条件,不运行验收;编译成功不能替代功能。旧的已完成子项可引用并保留,不能声称本轮重新实现。
用户使用阶段的场景(现在不执行):打开项目、分割一个 Shader/Timeline 区域、切换工作区、调整窗口大小后继续编辑和保存。
每次记录保留成果、补齐断点、仍有缺口、必要构件与下一动作。共同规则见同目录 `EXECUTION.md`,首次领取时阅读;不要将完整计划作为后续执行上下文。