galavi / TileManager
Class: TileManager<T>
Defined in: utils/tile.ts:650
TileManager<T> — composition helper held by tileable layers.
Owns a TilePool + TileLoadQueue + loadedTiles eviction set, the per-grid prevIndices mapping, and a shared pump/loadOne runner. Concrete layers compute the per-frame TilePlan (level, resSize, makeTile) and call commit(plan, loader, opts?) to push the plan onto the GPU + load queue.
Type Parameters
• T extends TilePlacement
Constructors
new TileManager()
new TileManager<
T>(maxConcurrent):TileManager<T>
Defined in: utils/tile.ts:658
Parameters
maxConcurrent
number = 4
Returns
TileManager<T>
Properties
pool?
optionalpool:TilePool
Defined in: utils/tile.ts:651
queue
readonlyqueue:TileLoadQueue<T>
Defined in: utils/tile.ts:652
loadedTiles
readonlyloadedTiles:Set<string>
Defined in: utils/tile.ts:653
Methods
init()
init(
config):void
Defined in: utils/tile.ts:663
Synchronous pool construction. Idempotent.
Parameters
config
Returns
void
setLoader()
setLoader(
loader):void
Defined in: utils/tile.ts:668
Parameters
loader
TileLoader<T>
Returns
void
setOnUpdate()
setOnUpdate(
cb?):void
Defined in: utils/tile.ts:672
Parameters
cb?
() => void
Returns
void
invalidatePrev()
invalidatePrev():
void
Defined in: utils/tile.ts:677
Forget the previous-frame slot mapping (e.g. on level / source change).
Returns
void
commit()
commit(
plan,loader,opts?):void
Defined in: utils/tile.ts:692
Push a planTiles result onto the GPU + load queue:
- Write index buffer (current + prev slot per grid cell).
- Filter tiles needing a fetch (in-bounds, no slot, not loading).
- Sort by Manhattan distance from grid center.
- Bind per-frame loader, set the desired set, pump the queue.
Layers must call setOnUpdate/setLoader once at construction; commit accepts a fresh loader per call because the closures usually capture source / selection / sliceIndex that change between frames.
Parameters
plan
TilePlan<T>
loader
TileLoader<T>
opts?
inBounds
(tile) => boolean
Returns
void
pump()
pump():
void
Defined in: utils/tile.ts:730
Schedule any pending tile loads up to the queue's concurrency limit.
Returns
void
reset()
reset():
void
Defined in: utils/tile.ts:768
Drop all in-flight loads, the cache, the prev-slot map, and the pool.
Returns
void