Performance optimization
We know the chunk size at compile time because constexpr. So we do std::array for datacontiguous.
This commit is contained in:
@@ -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);
|
||||
|
||||
|
@@ -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) {
|
||||
|
Reference in New Issue
Block a user