Marc Gilleron
1464286660
Add experimental key caching in VoxelStreamSQlite.
...
Not enabled by default, will test this in the future because it might
optimize multithreaded query speed in worlds with sparse saves.
2022-06-18 23:28:30 +01:00
Marc Gilleron
4e3d4d4ed8
Threading classes wrappers
2022-04-19 00:32:37 +01:00
Marc Gilleron
87d98e9162
Engine-agnostic error macros
2022-04-11 02:10:44 +01:00
Marc Gilleron
0cc3801655
Define smart pointers default allocator in a single place
2022-04-10 20:10:33 +01:00
Marc Gilleron
219c7bfda3
Changed prefix of profiling macros
2022-04-09 15:33:08 +01:00
Marc Gilleron
ab5d3a22d3
Abstract logging for verbose print
2022-04-09 15:00:34 +01:00
Marc Gilleron
5519054c01
Unify macro prefixes
2022-04-06 23:26:54 +01:00
Marc Gilleron
b3faec2bef
Removed voxel_block_request.h, use specialized structs
2022-02-12 23:37:02 +00:00
Marc Gilleron
98eed9adba
Remove some usages of Vector<T>. Also fixed some indexing issues in streams.
...
Reason: in a future port to GDExtension, that class won't be available.
This may also apply to Map and HashMap.
Note: the issues in streams were not hit so far because they are in
multi-block load/save functions. We've been loading and saving blocks
one by one at the moment.
2022-02-06 21:26:48 +00:00
Marc Gilleron
f1694b08ec
Remove a few unnecessary usages of the wrapper version of VoxelBuffer
2022-02-03 00:02:10 +00:00
Marc Gilleron
f838adf26a
Renamed emerge/imerge_block => load_voxel_block/save_voxel_block
2022-01-16 04:21:02 +00:00
Marc Gilleron
3045e9a489
BlockSerializer is no longer a class
2022-01-16 04:01:22 +00:00
Marc Gilleron
9c6118806f
Namespaced remaining stuff
2022-01-09 22:46:26 +00:00
Marc Gilleron
b67ca3d903
Namespaced every registered class
2022-01-09 22:16:44 +00:00
Marc Gilleron
0e48ee71a4
Namespaced VoxelStreamSQLite
2022-01-09 05:04:28 +00:00
Marc Gilleron
d690ef0963
Namespaced VoxelStreamCache
2022-01-09 03:42:45 +00:00
Marc Gilleron
e53dcf7c84
Re-namespaced VoxelConstants
2022-01-09 03:06:58 +00:00
Marc Gilleron
9c653b8a9f
Namespaced FixedArray
2022-01-09 02:53:21 +00:00
Marc Gilleron
38baeae2d9
Namespaced VoxelBufferInternal
2022-01-08 22:49:59 +00:00
Marc Gilleron
0fee995c0f
Namespaced godot utility funcs
2022-01-03 23:52:54 +00:00
Marc Gilleron
2fdf0bf6df
Namespaced VoxelBlockSerializerInternal
2022-01-03 02:52:06 +00:00
Marc Gilleron
0773f9f107
Namespace serialization and compressed data
2022-01-03 01:50:58 +00:00
Marc Gilleron
922f361cb0
Made it compile in Godot 4
...
- Made a bunch of changes to comply with Godot 4 API
- Use Godot's Vector3i and add the missing stuff with helper functions
- Transvoxel uses custom attributes API, the old way would not work
- Wrap MeshOptimizer in a unique namespace (see build script why)
- Added clang-format file for the module as some rules now differ
- Prevent thirdparty code and lookup tables from being clang-formatted
- Very likely full of runtime bugs that need fixing
2021-12-13 21:38:10 +00:00
Marc Gilleron
cb1af8c1d9
Fix GCC warning about shadowed local
2021-12-11 23:55:40 +00:00
Marc Gilleron
375c68b0de
Merge branch 'master' into full_load_mode
2021-10-13 20:29:58 +01:00
Marc Gilleron
191659ae7c
Fix voxel mips saved at wrong positions, caused them to show up often in the air
2021-10-04 01:32:12 +01:00
Marc Gilleron
bb7311b282
Merge branch 'master' into full_load_mode
2021-10-03 02:48:46 +01:00
Marc Gilleron
e04091f3cb
Added full load mode to VoxelLodTerrain
...
With this mode enabled, editing anywhere becomes possible.
All edited blocks are loaded at once when the stream is assigned.
The generator is used on the fly to fill the gaps, instead of being
pre-emptively cached only nearby the viewer to allow editing.
Editing is still on the main thread, so this can cause stalls if
the generator is complex. There is also no controlled limit on how
much data gets loaded, so if edited data is larger than RAM, it will
not be playable. The feature is already quite usable, but more work
may be done for wider viability.
2021-10-03 01:48:07 +01:00
Marc Gilleron
33b66153dc
Use span instead of requiring a vector
2021-10-03 01:32:01 +01:00
Marc Gilleron
00c228851d
Fix signedness
2021-09-26 16:36:08 +01:00
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
149eb2a873
Added test for instance data serialization
2021-07-18 19:42:42 +01:00
Marc Gilleron
da8dc36590
Return all channels supported with region files and SQLite
...
This fixes a node configuration warning,
because before these were always returning no channels at all.
2021-06-14 18:51:19 +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
26eebd3c66
Fix warnings
2021-02-16 22:03:03 +00:00
Marc Gilleron
6ec45792ed
Fix SQLite database connection not cached correctly.
...
The file path returned by sqlite is different from the property we used to
open it, so instead we have to remember that path.
2021-02-09 00:34:57 +00:00
Marc Gilleron
b65b0b8045
Implemented saving and loading of modified instances in SQLite
2021-02-07 17:22:50 +00:00
Marc Gilleron
7d0a4f3e78
Fix signedness warnings
2021-01-31 16:42:06 +00:00
Marc Gilleron
fe49e70243
Fix property hint
2021-01-31 16:23:59 +00:00
Marc Gilleron
0526c4e860
Fix cache not getting flushed correctly, causing saves to take too long
2021-01-31 15:26:15 +00:00
Marc Gilleron
db7fc640c1
Increased cache size, SQLite saving is slower than loading
2021-01-30 01:39:15 +00:00
Marc Gilleron
c6b169b978
Upgraded block serialized format, added some error handling
2021-01-30 01:36:37 +00:00
Marc Gilleron
158715922d
Fix retrieving from cache
...
It should have made a copy and the input should have been populated
instead of being replaced (because it wouldn't hold the ref)
2021-01-30 01:33:55 +00:00
Marc Gilleron
01e5e18922
Implemented VoxelStreamSQLite
2021-01-28 22:02:49 +00:00