From 839e04c5b583b51726207fc2508dce5c3afb3f04 Mon Sep 17 00:00:00 2001 From: Aaditya Dhruv Date: Fri, 30 Jan 2026 00:42:50 -0600 Subject: Add chunk_unloading on chunk Changes If we change a chunk, unload all chunks. This removes block GPU data (vbo, ebo, vao). We anyways redraw so we don't lose anything --- src/engine.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/engine.c') diff --git a/src/engine.c b/src/engine.c index 2d509f3..b840a2f 100644 --- a/src/engine.c +++ b/src/engine.c @@ -63,9 +63,7 @@ void engine_update(struct engine* engine) { engine->curr_chunk[1], curr_chunk[0], curr_chunk[1]); - // Update the curr_chunk - memcpy(engine->curr_chunk, curr_chunk, sizeof(vec2)); - // Load chunks of CHUNK_DISTANCE around curr_chunk + // Unload existing chunks for (int i = -CHUNK_DISTANCE; i <= CHUNK_DISTANCE; i++) { for (int j = -CHUNK_DISTANCE; j <= CHUNK_DISTANCE; j++) { struct chunk* chunk; @@ -75,9 +73,12 @@ void engine_update(struct engine* engine) { int real_coord[2] = { i + CHUNK_DISTANCE, j + CHUNK_DISTANCE }; // engine->loaded_chunks[real_coord[0]][real_coord[1]] = chunk; // Load chunk - chunk_load(chunk, chunk_coord); + chunk_unload(chunk); } } + // Update the curr_chunk + memcpy(engine->curr_chunk, curr_chunk, sizeof(vec2)); + // Load chunks of CHUNK_DISTANCE around curr_chunk } } -- cgit