Commit Graph

25 Commits (dce6ddc3f56b530bf99d2850bf0294c0751452ee)

Author SHA1 Message Date
Marc Gilleron 0713016d9c Fix missing result in emerge_block() 2021-01-21 19:39:57 +00:00
Marc Gilleron 4ec60074bb Refactor generators and streams
- VoxelGenerator no longer inherit VoxelStream
- VoxelStream is now more focused on files
- Nodes have separate stream and generator properties
- Generators use 2 dedicated threads instead of sharing a single one with streams
- TODO Image.lock() is problematic for multithreading
- TODO Voxel graph can cause RWLock contention if edited while it runs
- TODO Saving generator output no longer works, need to put it back
2021-01-17 17:18:05 +00:00
Marc Gilleron 89750a20f8 Made file streams thread-safe (but still won't be used in more than one thread)
- Added a global file locker so threads can synchronize when accessing files
- Added mutexes to serialize access to file streams (i.e to call in series)
- VoxelStream API now expects implementations to be thread-safe
- Did some logic/data separation in RegionFile in case we need an
  in-memory implementation, however I might just use SQLite in the
  future instead
2021-01-16 13:34:45 +00:00
Marc Gilleron 10d6e5bd8a Script-based generators and streams have their own class, should fix C# API 2020-10-31 22:11:25 +00:00
Marc Gilleron 23ce65d789 Show terrain in editor, with option to turn it off. A scripted stream will turn it off by default. 2020-08-14 20:33:09 +01:00
Marc Gilleron 845fa465b8 Put model information within a struct 2020-08-11 20:29:27 +01:00
Marc Gilleron ac3e303818 Report script errors a bit better, I hope 2020-08-02 18:57:08 +01:00
Marc Gilleron f9e2d9cc12 Stop using NULL 2020-07-25 23:19:08 +01:00
Marc Gilleron 071c5ee5c0 Fix channel depth not being applied to VoxelMap::get_buffer_copy() 2020-07-11 18:05:26 +01:00
Marc Gilleron 60d32ec006 Make stream and generator script methods optional, fixes errors in editor 2020-05-09 00:46:17 +01:00
Cory Petkovsek 63514efd76 Update pr 2020-02-16 23:07:10 +08:00
Marc Gilleron 8879d9b2e7 Moved all generators under their own base class and folder 2020-01-26 22:34:26 +00:00
Marc Gilleron c493aec343 Use StringNames when applicable 2020-01-17 20:43:28 +00:00
Marc Gilleron 9dc09618be ZProfiler is now usable from anywhere including threads 2020-01-07 20:32:36 +00:00
Marc Gilleron 31f588c1a1 Add profiling scopes to VoxelLodTerrain, also fix usage in VoxelStream 2020-01-02 20:29:02 +00:00
Cory Petkovsek 4820998c56 Fix build errors due to Godot macro change 2019-11-13 13:20:05 +08:00
Marc Gilleron a0c7201fcd Rename `get_stats()` => `get_statistics()` 2019-08-25 17:40:19 +01:00
Marc Gilleron dc73977a1a Changed profiler to be more like a stack-based one, also made it super light (CPU-wise) 2019-08-18 23:13:12 +01:00
Marc Gilleron 0483413b80 Added stats to VoxelStream, tweak file handles and batch counts 2019-08-17 00:46:24 +01:00
Marc Gilleron 07d4deeaab Formatting 2019-08-15 01:40:27 +01:00
Marc Gilleron 01b1ee0170 Added first working version of region save format, still WIP 2019-08-14 20:34:06 +01:00
Marc Gilleron c272a37f1a Merge branch 'master' into persistence
# Conflicts:
#	terrain/block_thread_manager.h
#	terrain/voxel_terrain.cpp
2019-06-25 20:51:35 +01:00
Cory Petkovsek 1dff1f3e50 Fix gdscript emerge bug 2019-06-18 18:53:32 +09:00
Marc Gilleron 82502d3397 Simple file-per-block saving WIP. Compiles but didn't test. 2019-05-28 00:40:09 +01:00
Marc Gilleron 4a90ca10a5 Rename "provider" files to "stream" 2019-05-25 16:16:03 +01:00