refactor(A.5 T15): TerrainModernRenderer.AddLandblockWithMesh entry point
T13 routes worker-built meshes from LandblockStreamResult.Loaded.MeshData into the renderer. AddLandblockWithMesh accepts a prebuilt mesh + origin and delegates to the existing AddLandblock(uint, LandblockMeshData, Vector3) so both paths share one upload path (Approach B -- AddLandblock already takes a prebuilt mesh; no inline build to extract). GameWindow's T16 lambda captures liveCenterX/Y and passes the derived origin; the renderer stays origin-agnostic. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
fb10c3fa8c
commit
aff35d2a76
1 changed files with 12 additions and 0 deletions
|
|
@ -89,6 +89,18 @@ public sealed unsafe class TerrainModernRenderer : IDisposable
|
||||||
_indirectBuffer = _gl.GenBuffer();
|
_indirectBuffer = _gl.GenBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Two-tier streaming entry point. Accepts a prebuilt mesh from
|
||||||
|
/// <see cref="LandblockStreamResult.Loaded.MeshData"/> built on the worker
|
||||||
|
/// thread, together with the world-space origin computed by the caller
|
||||||
|
/// (render-thread GameWindow derives it from landblockId + liveCenterX/Y).
|
||||||
|
///
|
||||||
|
/// Delegates to <see cref="AddLandblock(uint,LandblockMeshData,Vector3)"/>
|
||||||
|
/// so both paths share one upload path. Per Phase A.5 spec T15.
|
||||||
|
/// </summary>
|
||||||
|
public void AddLandblockWithMesh(uint landblockId, LandblockMeshData meshData, Vector3 worldOrigin)
|
||||||
|
=> AddLandblock(landblockId, meshData, worldOrigin);
|
||||||
|
|
||||||
public void AddLandblock(uint landblockId, LandblockMeshData meshData, Vector3 worldOrigin)
|
public void AddLandblock(uint landblockId, LandblockMeshData meshData, Vector3 worldOrigin)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(meshData);
|
ArgumentNullException.ThrowIfNull(meshData);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue