Add Chromium-only Blender WebEngine parity work
This commit is contained in:
30
docs/status/W-030.md
Normal file
30
docs/status/W-030.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# W-030 Status
|
||||
|
||||
status: done
|
||||
task: 从内存读取 `.blend`
|
||||
|
||||
## Evidence
|
||||
|
||||
- Reader: `blender-5.2.0/source/blender/web_engine/web_engine_blend_reader.cpp`
|
||||
- ABI: `web_engine_open_blend(handle, data, length)` copies an `ArrayBuffer` into
|
||||
WASM memory and never receives a browser or POSIX path.
|
||||
- Worker: `web/app/src/workers/web-engine.worker.ts` reports started/progress/completed
|
||||
phases and maps malformed input to `BLEND_READ_FAILED`.
|
||||
- Golden: `tests/golden/W-030/manifest.json`
|
||||
|
||||
The reader accepts uncompressed, gzip and zstd Blender streams, validates the
|
||||
little-endian Blender header, decodes the embedded DNA1 schema and returns an
|
||||
empty or populated SceneIR snapshot. `empty.blend` and `basic_scene.blend` are
|
||||
both exercised by the WASM smoke.
|
||||
|
||||
## Verification
|
||||
|
||||
```text
|
||||
node tools/web/run-web-engine-smoke.mjs # empty + basic + save passed
|
||||
tools/web/check-dual-engine.sh # native ABI + WASM reader passed
|
||||
```
|
||||
|
||||
## Remaining risk
|
||||
|
||||
The first reader is deliberately bounded to a 1 GiB block and summary export;
|
||||
evaluated mesh buffers are W-033.
|
||||
Reference in New Issue
Block a user