From 965ff9cc09401ae61c15aca0232d59fac17bfce3 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Tue, 27 Sep 2022 13:35:49 -0400 Subject: async chunk meshing --- src/chunk.hpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'src/chunk.hpp') diff --git a/src/chunk.hpp b/src/chunk.hpp index e2cfab5..c506ca0 100644 --- a/src/chunk.hpp +++ b/src/chunk.hpp @@ -38,31 +38,30 @@ class Chunk { static std::vector& getTextures(); static Chunk* newChunk(int32_t gridX, int32_t gridZ, uint32_t world_seed); + static Chunk* getChunk(int32_t gridX, int32_t gridZ); - Chunk(int32_t gridX, int32_t gridZ, uint32_t world_seed); - ~Chunk() {}; - - const int32_t gridX, gridZ; - const uint32_t world_seed, chunk_seed; - - void createMesh(); - void createMeshAsync(); - std::shared_ptr getMesh(); + static void createMesh(Chunk* c); + static void createMeshAsync(Chunk* c); + xe::Model* getMesh(); uint8_t getBlock(int32_t x, int32_t y, int32_t z); void setBlock(int32_t x, int32_t y, int32_t z, uint8_t block); - static Chunk* getChunk(int32_t x, int32_t z); + const int32_t gridX, gridZ; + const uint32_t world_seed, chunk_seed; private: + Chunk(int32_t gridX, int32_t gridZ, uint32_t world_seed); + ~Chunk(); + void generate(); - void addVerticies(uint8_t side, int32_t x, int32_t y, int32_t z, uint8_t block); + static void addVerticies(Chunk* c, uint8_t side, int32_t x, int32_t y, int32_t z, uint8_t block); bool reloadRequired{false}; bool working{false}; - std::shared_ptr chunkMesh; + xe::Model* chunkMesh; xe::Model::Data vertexData; std::vector cubes; std::thread worker; -- cgit v1.2.3-freya