/** Return the next chunk that should have a new mesh generated */ public ChunkRenderTask GetNextRenderChunk() { lock (renderQueue) { if (renderQueue.Count > 0) { ChunkRenderTask result = renderQueue[0]; renderQueue.RemoveAt(0); return(result); } else { return(null); } } }
/** Render a chunk and queue it for update */ public void PerformRenderTask(ChunkRenderTask task) { MeshBuildInfo info = RenderChunk(task.pos); lock (updateQueue) updateQueue.Add(new ChunkUpdateTask(task.pos, info)); }