Removed old chunk map.

Removed flush(Region) function as it's a bit trickier to implement with the new hash table, and it's not clear that we need it.
This commit is contained in:
David Williams 2015-04-13 23:51:18 +02:00
parent 1e0e8a8c16
commit 12fdeb8e52
3 changed files with 10 additions and 9 deletions

View File

@ -164,9 +164,9 @@ protected:
std::cout << "Memory usage: " << (volData.calculateSizeInBytes() / 1024.0 / 1024.0) << "MB" << std::endl;
//std::cout << "Compression ratio: 1 to " << (1.0/(volData.calculateCompressionRatio())) << std::endl;
PolyVox::Region reg2(Vector3DInt32(0, 0, 0), Vector3DInt32(255, 255, 255));
std::cout << "Flushing region: " << reg2.getLowerCorner() << " -> " << reg2.getUpperCorner() << std::endl;
volData.flush(reg2);
std::cout << "Memory usage: " << (volData.calculateSizeInBytes() / 1024.0 / 1024.0) << "MB" << std::endl;
//std::cout << "Flushing region: " << reg2.getLowerCorner() << " -> " << reg2.getUpperCorner() << std::endl;
//volData.flush(reg2);
//std::cout << "Memory usage: " << (volData.calculateSizeInBytes() / 1024.0 / 1024.0) << "MB" << std::endl;
//std::cout << "Compression ratio: 1 to " << (1.0/(volData.calculateCompressionRatio())) << std::endl;
std::cout << "Flushing entire volume" << std::endl;
volData.flushAll();

View File

@ -274,7 +274,7 @@ namespace PolyVox
/// Tries to ensure that the voxels within the specified Region are loaded into memory.
void prefetch(Region regPrefetch);
/// Ensures that any voxels within the specified Region are removed from memory.
void flush(Region regFlush);
//void flush(Region regFlush);
/// Removes all voxels from memory
void flushAll();
@ -301,8 +301,6 @@ namespace PolyVox
mutable int32_t m_v3dLastAccessedChunkZ = 0;
mutable Chunk* m_pLastAccessedChunk = nullptr;
mutable std::unordered_map<Vector3DInt32, std::unique_ptr< Chunk > > m_mapChunks;
mutable uint32_t m_uTimestamper = 0;
uint32_t m_uChunkCountLimit = 0;

View File

@ -220,13 +220,16 @@ namespace PolyVox
m_pLastAccessedChunk = nullptr;
// Erase all the most recently used chunks.
m_mapChunks.clear();
for (uint32_t uIndex = 0; uIndex < uChunkArraySize; uIndex++)
{
m_arrayChunks[uIndex] = nullptr;
}
}
////////////////////////////////////////////////////////////////////////////////
/// Removes all voxels in the specified Region from memory, and calls dataOverflowHandler() to ensure the application has a chance to store the data. It is possible that there are no voxels loaded in the Region, in which case the function will have no effect.
////////////////////////////////////////////////////////////////////////////////
template <typename VoxelType>
/*template <typename VoxelType>
void PagedVolume<VoxelType>::flush(Region regFlush)
{
// Clear this pointer in case the chunk it points at is flushed.
@ -256,7 +259,7 @@ namespace PolyVox
}
}
}
}
}*/
template <typename VoxelType>
bool PagedVolume<VoxelType>::canReuseLastAccessedChunk(int32_t iChunkX, int32_t iChunkY, int32_t iChunkZ) const