summaryrefslogtreecommitdiff
path: root/src/engine.c
diff options
context:
space:
mode:
authorAaditya Dhruv <[email protected]>2026-01-30 00:42:50 -0600
committerAaditya Dhruv <[email protected]>2026-01-30 00:42:50 -0600
commit839e04c5b583b51726207fc2508dce5c3afb3f04 (patch)
tree70da713f51c513b47ece6b8db1b9bfb28e0b3da8 /src/engine.c
parent8150b91d4076d15f8df5cd66acc1b8076a2ee1a9 (diff)
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
Diffstat (limited to 'src/engine.c')
-rw-r--r--src/engine.c9
1 files changed, 5 insertions, 4 deletions
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
}
}