acdream/src/AcDream.Core/Terrain
Erik 4be392b361 refactor(A.5 T9): _surfaceCache -> ConcurrentDictionary for off-thread mesh build
Widens LandblockMesh.Build's surfaceCache parameter from Dictionary to
IDictionary so any IDictionary implementation compiles at call sites.
Switches GameWindow._surfaceCache from Dictionary to ConcurrentDictionary
so T11's streaming worker can call Build off the render thread without
a lock.

The TryGetValue+assign lookup inside Build is not atomic, but BuildSurface
is deterministic (same palCode -> same SurfaceInfo), making last-write-wins
under concurrent access benign. Comment added at the pattern site.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 22:55:53 +02:00
..
CellSplitDirection.cs feat(core): terrain palette + cell split math (Phase 3c.1) 2026-04-11 13:36:35 +02:00
LandblockMesh.cs refactor(A.5 T9): _surfaceCache -> ConcurrentDictionary for off-thread mesh build 2026-05-09 22:55:53 +02:00
SurfaceInfo.cs feat(core): terrain surface recipe + cell data packing (Phase 3c.3) 2026-04-11 13:53:32 +02:00
TerrainBlending.cs fix(core): AC2D render split formula + triangle-aware Z sampling 2026-04-12 22:08:42 +02:00
TerrainSlotAllocator.cs phase(N.5b) Task 2: TerrainSlotAllocator + tests 2026-05-09 08:44:51 +02:00
TerrainVertex.cs feat(core+app): per-cell terrain texture blending (Phase 3c.4) 2026-04-11 14:02:15 +02:00
Vertex.cs feat(core): add Vertex.TerrainLayer + LandblockMesh layer map 2026-04-10 20:16:25 +02:00