DeerEngine/Deer/src/DeerRender/Voxels/ChunkUpdateQueue.cpp

31 lines
626 B
C++
Executable File

#include "DeerRender/Voxels/VoxelWorldRenderData.h"
namespace Deer {
void ChunkUpdateQueue::addChunk(ChunkID chunkID) {
if (m_containingChunks.contains(chunkID))
return;
m_containingChunks.insert(chunkID);
m_updateOrder.push(chunkID);
}
ChunkID ChunkUpdateQueue::pullChunk() {
ChunkID chunkID = m_updateOrder.front();
m_updateOrder.pop();
m_containingChunks.erase(chunkID);
return chunkID;
}
void ChunkUpdateQueue::reset() {
while (!m_updateOrder.empty()) {
m_updateOrder.pop();
}
m_containingChunks.clear();
}
bool ChunkUpdateQueue::hasChunk() {
return m_updateOrder.size() > 0;
}
}