Commit Graph

27 Commits (e6f1be6ac33ca41d25a555418d865d715b56c18a)

Author SHA1 Message Date
Marc Gilleron 30db0c5193 Split VoxelBuffer in two, script-facing wrapper and internal.
The internal is the main use within the voxel engine,
and does not inherit Reference.
2021-09-26 04:14:50 +01:00
Marc Gilleron 411be94559 Renamed ArraySlice -> Span 2021-05-31 16:48:49 +01:00
Marc Gilleron f1e2ea9ad4 Update to latest Godot's threading primitives 2021-02-19 01:30:22 +00:00
Marc Gilleron b65b0b8045 Implemented saving and loading of modified instances in SQLite 2021-02-07 17:22:50 +00:00
Marc Gilleron 01e5e18922 Implemented VoxelStreamSQLite 2021-01-28 22:02:49 +00:00
Marc Gilleron 4ef4da180c Saving generator output is no longer enabled by default. Now only changes may be saved. 2021-01-21 19:40:26 +00:00
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 107f29c5d3 Removed old profiler 2020-08-29 23:20:51 +01: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 1a551fc77d Added support for per-voxel and per-block metadata 2020-08-10 19:03:01 +01:00
Marc Gilleron 071c5ee5c0 Fix channel depth not being applied to VoxelMap::get_buffer_copy() 2020-07-11 18:05:26 +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 83e8c22539 Comments 2020-01-21 20:00:29 +00:00
Marc Gilleron 9dc09618be ZProfiler is now usable from anywhere including threads 2020-01-07 20:32:36 +00:00
Marc Gilleron 3ead96f06e Added option to tweak how VoxelStreamImage samples the heightmap 2020-01-05 22:42:02 +00: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 457ebf626d Added stat for time spent opening files 2019-08-18 16:10:40 +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 43446356e9 Switch block processing to use arrays instead of single blocks to allow batching 2019-08-16 20:56:07 +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 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