コード例 #1
0
void World::RebuildChunkMeshes() {
	for(int i = 0; i < m_vpChunks.size(); i++) {
		Chunk* pChunk = m_vpChunks[i];
		pChunk->BuildMesh();
		//pChunk->RebuildNeighbours();
	}
}
コード例 #2
0
void World::UpdateMeshQueue() {
	std::sort(m_vpChunksToMesh.begin(), m_vpChunksToMesh.end(), SortByDistance());

	int count = 0;
	std::vector<Chunk*>::iterator it = m_vpChunksToMesh.begin();
	while(it != m_vpChunksToMesh.end()) {
		if(count >= m_meshPerFrame) break;
		Chunk* pChunk = *it;
		pChunk->BuildMesh();
		pChunk->RebuildNeighbours();
		//it = m_vpChunksToGenerate.erase(std::remove(m_vpChunksToGenerate.begin(), m_vpChunksToGenerate.end(), pChunk), m_vpChunksToGenerate.end());
		//it++;
		m_vpChunksToMesh.erase(it++);
		count++;
	}
}