Performance optimization

We know the chunk size at compile time because constexpr. So we do std::array for datacontiguous.
This commit is contained in:
2025-01-14 23:32:27 -05:00
parent 5d7e8d8eb3
commit dc3e923a46
2 changed files with 5 additions and 5 deletions

View File

@@ -66,7 +66,7 @@ namespace CaveGame::Core
[[nodiscard]] const TileID* ptr() const { return &tiles[0][0];}
[[nodiscard]] std::vector<TileID> DataContiguous() const;
[[nodiscard]] std::array<TileID, ChunkSize * ChunkSize> DataContiguous() const;
void SetData(char* buffer);

View File

@@ -72,10 +72,10 @@ namespace CaveGame::Core
return GetChunkCell()*Core::Chunk::ChunkSize;
}
std::vector<TileID> Chunk::DataContiguous() const {
std::vector<TileID> data(ChunkSize * ChunkSize);
memcpy(data.data(), tiles, ChunkSize * ChunkSize * sizeof(TileID));
return data;
std::array<TileID, Chunk::ChunkSize * Chunk::ChunkSize> Chunk::DataContiguous() const {
std::array<TileID, ChunkSize * ChunkSize> result{};
memcpy(result.data(), tiles, ChunkSize * ChunkSize * sizeof(TileID));
return result;
}
void Chunk::SetData(char* buffer) {