1.0 KiB
1.0 KiB
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 anArrayBufferinto WASM memory and never receives a browser or POSIX path. - Worker:
web/app/src/workers/web-engine.worker.tsreports started/progress/completed phases and maps malformed input toBLEND_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
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.