Commit Graph

17 Commits (f3d8ffed54431ef7c5b1521adac3a0af91af51c8)

Author SHA1 Message Date
EmaMaker afdd622ec2 refactor message system between main and update threads
restores blockpicking with new multithread system
2023-10-04 14:35:29 +02:00
EmaMaker 88abf21502 multithread: refactor update thread, communication between mesh/gen/upd threads
- Use parallel_for to iterate over all the stored chunks
- Only push a chunk to a queue if it is not already present, using chunk state bitfield (solves
	memory leak, continously adding new elements to a queue)
- Properly delete an element from chunks concurrent_hash_map using accessor, then free the memory
(solves memory leak: not being able to delete old elements and always adding new ones)

Breaks:

- Rendering (will be properly refactored in a future commit)
- Block picking (will be refactored in a future commit)
2023-10-04 13:10:05 +02:00
EmaMaker 490f207e39 chunk/mgr: calculate index belongs to chunk namespace 2023-10-03 22:45:09 +02:00
EmaMaker c6d00c4200 fix type mismatch in chunk index/coordinates
typedef an appropriate chunk_index_t and chunk_intcoord_t
2023-10-03 22:45:09 +02:00
EmaMaker 1bea6c835c separate mesh and generation threads, with priority queues for input
Allows blockpicking while the world is generating, without hiccups
2023-07-30 12:17:51 +02:00
EmaMaker f798575cac chunkmanager: add function getBlockAtPos, returns block at world pos
Returns Block::NULLBLK only to signal an invalid position
2023-06-01 21:31:18 +02:00
EmaMaker e225babb0c chunkmesher: external queue of chunk mesh data
instead of every chunk having its own queue

This decreases usage of ram
2023-05-20 22:15:32 +02:00
EmaMaker 78e3bc11e6 initial update and render with concurrent DS 2023-05-20 22:15:15 +02:00
EmaMaker 2b1991ff2b separate rendering in a dedicated file 2023-04-10 00:30:24 +02:00
EmaMaker da6608c66a chunkmanager: only calculate update sphere indices at startup 2023-03-25 16:32:01 +01:00
EmaMaker 8584d2e974 general code cleanup 2023-03-25 16:28:12 +01:00
EmaMaker e609f4858b initial blockpicking 2023-03-23 14:25:34 +01:00
EmaMaker 8040868055 chunkmanager: unload chunks after a time treshold 2023-03-13 13:33:32 +01:00
EmaMaker e69c58abd3 gracefully shut down secondary threads 2023-03-12 12:43:41 +01:00
EmaMaker 716056b8c5 experimental multithreaded generation and meshing 2023-03-03 21:33:11 +01:00
EmaMaker c8f429564c chunkmgr: properly dispose allocated chunk memory 2022-12-01 23:44:03 +01:00
EmaMaker 3a649836e5 initial commit
initial port of https::/git.emamaker/voxel-test-intervalmaps to c++ and opengl
2022-11-10 19:53:52 +01:00