onRender

fun onRender(visible: Sector, apply: (List<Renderable>) -> Unit, fetch: suspend (Sector) -> List<Renderable>)

Render-thread entry point: apply any completed fetch via apply, then — if visible has left the last fetched (padded) sector — schedule a fresh debounced fetch. apply swaps renderables on the render thread; fetch builds them on scope.