stabilize delays of chunks meshes building

This commit is contained in:
MihailRis 2025-12-29 20:41:47 +03:00
parent f47ccd5f30
commit 88544183d0
13 changed files with 335 additions and 191 deletions

View file

@ -21,7 +21,6 @@ class Chunks;
class Frustum;
class BlocksRenderer;
class ContentGfxCache;
class VoxelsVolume;
struct EngineSettings;
struct ChunksSortEntry {
@ -41,7 +40,7 @@ struct RendererResult {
struct RendererJob {
std::shared_ptr<Chunk> chunk;
std::shared_ptr<VoxelsVolume> volume;
std::shared_ptr<VoxelsRenderVolume> volume;
};
class ChunksRenderer {
@ -58,7 +57,8 @@ class ChunksRenderer {
const Mesh<ChunkVertex>* retrieveChunk(
size_t index, const Camera& camera, bool culling
);
std::shared_ptr<VoxelsVolume> prepareVoxelsVolume(const Chunk& chunk);
std::shared_ptr<VoxelsRenderVolume> prepareVoxelsVolume(const Chunk& chunk);
size_t enqueuedInFrame = 0;
public:
ChunksRenderer(
const Level* level,
@ -71,13 +71,13 @@ public:
virtual ~ChunksRenderer();
const Mesh<ChunkVertex>* render(
const std::shared_ptr<Chunk>& chunk, bool important
const std::shared_ptr<Chunk>& chunk, bool important, bool lowPriority
);
void unload(const Chunk* chunk);
void clear();
const Mesh<ChunkVertex>* getOrRender(
const std::shared_ptr<Chunk>& chunk, bool important
const std::shared_ptr<Chunk>& chunk, bool important, bool lowPriority
);
void drawShadowsPass(