Lukas Tenbrink
d6540e4aa7
Add move semantics to RBMap and RBSet. Make copy constructors explicit.
2026-02-20 20:47:15 +01:00
Lukas Tenbrink
6e345f80ec
Integrate (a nerfed version of) clang-tidy into CI.
...
For now, it's integrated into core, main and scene only.
Fix a few superficial clang-tidy failures.
2026-02-20 00:49:00 +01:00
Thaddeus Crews
5482b9e89e
Tests: Convert test headers to compilation files
...
• Excludes module tests, as they'd be a more involved process
2026-02-19 07:36:26 -06:00
Thaddeus Crews
15558cb886
Merge pull request #108111 from Repiteo/core/sanitizer-restructure
...
Core: Restructure sanitizers
2026-02-18 12:04:30 -06:00
Thaddeus Crews
fa56f71ddd
Merge pull request #107452 from Ivorforce/bit-math-header
...
Move binary math functions to `Math` namespace in `math_funcs_binary.h`
2026-02-17 09:28:31 -06:00
Lukas Tenbrink
0ea5ece984
Move binary math functions to Math namespace in math_funcs_binary header.
2026-02-17 12:24:35 +01:00
Lukas Tenbrink
c9249346c4
Change HashSet copy constructor from implicit to explicit.
2026-02-16 23:10:33 +01:00
Thaddeus Crews
1e12317895
Merge pull request #115646 from Ivorforce/list-explicit-copy
...
Change `List` copy constructor from implicit to explicit.
2026-02-16 15:02:34 -06:00
Lukas Tenbrink
39ed2fa9a5
Add move semantics to HashSet.
2026-02-14 13:20:48 +01:00
Lukas Tenbrink
c5df0cb82b
Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history.
2026-02-04 19:31:28 +01:00
Rémi Verschelde
429750f60b
Merge pull request #115093 from Ivorforce/hashmap-explicit-copy
...
Change copy constructors of `HashMap` and `AHashMap` from implicit to explicit
2026-01-31 22:50:51 +01:00
Lukas Tenbrink
7072a9a874
Change List copy constructor from implicit to explicit.
2026-01-30 18:58:42 +01:00
Thaddeus Crews
beda8dd027
Core: Restructure sanitizers
2026-01-28 09:13:16 -06:00
Lukas Tenbrink
63272b23ef
Make LocalVector copy constructor explicit.
2026-01-23 20:52:03 +01:00
Lukas Tenbrink
1825e89787
Change copy constructors of HashMap and AHashMap from implicit to explicit.
2026-01-21 13:01:23 +01:00
Rémi Verschelde
d59db26710
Revert "Core: Switch RID_alloc::owns to lock-free"
...
This reverts commit bdfe8549b8 .
This caused a regression for GPUParticles3D emitters on macOS arm64,
which is proving to be both tricky to reproduce and solve. Other parts
of the engine using RID_Owner might be affected too.
Given that we're about to release 4.6, reverting might be the safest
option at this time, and this optimization can be re-attempted for 4.7.
Fixes #114900 .
2026-01-14 21:58:29 +01:00
Rémi Verschelde
f084100f43
Merge pull request #114688 from HolonProduction/fix-resize-uninit-desc
...
Fix description for `resize_uninitialized`
2026-01-13 22:20:41 +01:00
HolonProduction
01d0878c83
Fix description for resize_uninitialized
2026-01-13 12:52:36 +01:00
Lukas Tenbrink
7a3c74e739
Add documentation to Vector::reserve and Vector::reserve_exact.
2026-01-03 18:49:34 +01:00
Pedro J. Estébanez
824287eefb
CommandQueueMT: Make re-entrant again + Fix multiple flushers case
2025-12-09 16:09:08 +01:00
Bryce Hutchings
cb4d1b79e0
Fix crash in command_queue_mt due to destruction of wrong object
2025-12-04 08:46:51 -08:00
Lukas Tenbrink
109d3d8530
Make Vector bsearch method const.
2025-11-25 19:05:30 +01:00
Pāvels Nadtočajevs
51ff09dc1e
Fix memory alignment on 32-bit Windows.
2025-11-25 13:01:43 +02:00
Pedro J. Estébanez
4ba4558cf6
CommandQueueMT: Reduce lock contention in cases of single flusher
2025-11-21 11:11:30 +01:00
Pedro J. Estébanez
b16a8b8a76
CommandQueueMT: Fix race conditions
2025-11-21 11:09:16 +01:00
Lukas Tenbrink
43a8009a56
Clean up String::find to remove duplicate code, and speed up comparison with memcmp where possible.
2025-11-19 22:39:05 +01:00
kobewi
e14263f917
Remove empty constructors and destructors from core/
2025-11-17 20:09:05 +01:00
Thaddeus Crews
910133fda6
Merge pull request #104280 from Ivorforce/span-equality
...
Add `Span` equality (`==` and `!=`) operators.
2025-11-17 10:56:55 -06:00
Thaddeus Crews
359ef8fc2b
Merge pull request #108932 from Nazarwadim/hash_map_final_optimization
...
Do not zero elements and perform fast clear in `HashMap`
2025-11-17 10:56:27 -06:00
Lukas Tenbrink
d7f5c13db8
Add Span equality (== and !=) operators.
...
Exchange duplicate equality iteration implementations across `Vector` and `String` with the `Span` version, for a speed boost.
2025-11-15 14:21:54 +01:00
Thaddeus Crews
c6fe923e33
Merge pull request #108516 from KoBeWi/file_graveyard
...
Remove unnecessary cpp files after cleanup
2025-11-14 14:23:06 -06:00
Stuart Carnie
90c0e6acca
2D: Switch to VBOs for instance data
...
- Add support for vertex bindings and UMA vertex buffers in D3D12.
- Simplify 2D instance params and move more into per-batch data to save
bandwidth
Co-authored-by: Skyth <19259897+blueskythlikesclouds@users.noreply.github.com >
Co-authored-by: Clay John <claynjohn@gmail.com >
Co-authored-by: A Thousand Ships <96648715+athousandships@users.noreply.github.com >
2025-11-15 06:25:49 +11:00
Nazarii
e6bc3fa164
Do not zeroed elements and fast clear in HashMap
2025-11-14 11:33:13 +02:00
Thaddeus Crews
df51b1480d
Merge pull request #112660 from aaronfranke/list-find-const
...
Add a const version of `List::find`
2025-11-12 11:24:16 -06:00
Aaron Franke
6f207a4601
Add a const version of List::find
2025-11-12 00:36:09 -08:00
Stuart Carnie
bdfe8549b8
Core: Switch RID_alloc::owns to lock-free
2025-11-12 15:17:45 +11:00
aaronp64
afd59b36cf
Avoid extra copy in Vector/CowData push_back/insert
...
Update push_back/insert methods to move new item into CowData instead of copying
2025-11-11 12:19:35 -05:00
David Snopek
bc9f3c7d92
Make Vector<T>::duplicate() const
...
Co-authored-by: Aaron Franke <arnfranke@yahoo.com >
2025-11-04 17:13:11 -06:00
Thaddeus Crews
5c9333073a
Merge pull request #111696 from StarryWorm/langtable-include
...
Fix missing includes in headers
2025-10-27 10:01:51 -05:00
StarryWorm
796281f62f
Add missing includes
...
Add missing <winnt.h> include in windows/lang_table.h
Add missing typedefs.h and rid.h include in godot_constraint_3d.h
Add missing <type_traits> include in iterable.h
Add missing forward declarations in rendering_shader_library.h
2025-10-26 18:25:17 -04:00
Lukas Tenbrink
6733345f73
Fix false positive warning with FixedVector array bounds in gcc.
2025-10-17 13:11:33 +02:00
Thaddeus Crews
89ce203427
Merge pull request #106997 from Ivorforce/fixed-move-semantics
...
Fix `FixedVector` move and copy semantics.
2025-10-10 10:26:06 -05:00
Thaddeus Crews
7efb51c9d3
Merge pull request #111361 from Ivorforce/cleanup-hashfuncs
...
Clean up `hashfuncs.h`
2025-10-09 11:46:43 -05:00
Lukas Tenbrink
1fa332cad4
Add max() to Span.
...
Remove `<algorithm>` include from `rendering_device_commons.h`, using `Span` instead.
2025-10-07 22:26:32 +02:00
Lukas Tenbrink
f678729f89
Clean up hashfuncs.h: Move long functions to hashfuncs.cpp and replace static with inline. Remove hash_make_uint64_t and hash_make_uint32_t.
2025-10-07 13:50:18 +02:00
Lukas Tenbrink
d6036462b1
Remove hash_map.h include from a_hash_map.h, and remove cross conversion operators.
2025-10-06 17:20:31 +02:00
Lukas Tenbrink
ad600125df
Rewrite HashMapHasherDefault based on type traits - it is now possible to declare a default hashing function for any type.
...
Remove cross-project includes from `hashfuncs.h`.
Improve hashing function for `Color` (based on values instead of `String`).
Move `Variant` comparison from `hash_map.h` to `dictionary.cpp` (`VariantComparatorDictionary`), where it's used.
Remove now unnecessary `HashableHasher`.
2025-10-05 01:49:11 +02:00
Lukas Tenbrink
c993db9688
Add reserve_exact to CowData and Vector.
...
Change growth factor to be an indeterministic 1.5x.
Use `reserve_exact` in `FileAccess` to reduce on binary file loading RAM usage.
# Conflicts:
# core/templates/cowdata.h
2025-10-01 11:57:40 +02:00
Thaddeus Crews
55ac91b887
Merge pull request #111084 from Ivorforce/cowdata-reserve-verbose
...
Make `CowData::reserve` warn message when new capacity < size verbose, like other `reserve` methods
2025-09-30 18:35:23 -05:00
Thaddeus Crews
e5bf31b170
Merge pull request #107369 from Ivorforce/node-iter-children
...
Core: Add `Node::iterate_children` as a fast way to iterate a node's children
2025-09-30 18:35:21 -05:00