fix(streaming): commit EnvCell landblocks atomically (#214)
Carry one complete cell payload with each streaming completion and publish visibility, physics, and render state on the render thread. Remove the obsolete post-readiness login reload that triggered a duplicate dungeon build. Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
parent
85980fe13f
commit
b0c175afc0
26 changed files with 973 additions and 617 deletions
|
|
@ -26,6 +26,15 @@ our tree (see CLAUDE.md for the full breakdown):
|
|||
`ObjectMeshManager`, `WbMeshAdapter`, `WbDrawDispatcher`, texture cache,
|
||||
shader infra, EnvCell/portal/scenery/terrain-blending pipeline classes.
|
||||
|
||||
**EnvCell streaming seam:** `EnvCellLandblockBuildBuilder` is an acdream-owned
|
||||
adapter around the extracted WB rendering path. One streaming job privately builds
|
||||
the complete portal-cell + shell-placement payload, and `EnvCellRenderer.CommitLandblock`
|
||||
publishes that completed snapshot on the render thread. WB's geometry-id arithmetic
|
||||
and mesh preparation remain unchanged; the transaction wrapper exists because
|
||||
acdream streams asynchronously while the WB editor's manager owned its own loading
|
||||
loop. Do not reintroduce worker-side `RegisterCell` calls or shared pending cell
|
||||
collections.
|
||||
|
||||
`DatCollectionAdapter` bridges our `IDatCollection` to the `IDatReaderWriter`
|
||||
interface WB's internals expect (O-D7 fallback; `ObjectMeshManager` has 26
|
||||
internal `_dats.*` call sites — above the 20-site inline-swap threshold).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue