public void RequestTask(Chunk chunk, ChunkTaskType taskType, ChunkTaskPriority priority) { var request = requestPool.Borrow(); request.Initialize(chunk, taskType, priority); requests.Enqueue(request); }
// メッシュ更新は2フェーズ。 // 1. 非同期な頂点構築 // 2. 構築された頂点による同期バッファ更新。 // // 恐らく、バッファ更新は GPU との同期が発生するため、 // 非同期ではなくゲーム スレッドで実行すべきであろうと思われる。 public void RequestUpdateMesh(Chunk chunk, ChunkMeshUpdatePriority priority) { if (chunk == null) { throw new ArgumentNullException("chunk"); } var request = buildVertexRequestPool.Borrow(); request.Initialize(chunk, priority); buildVertexRequests.Enqueue(request); }