Commit Graph

487 Commits

Author SHA1 Message Date
b626695f70 Fix internal JSON stringify not preserving p_full_precision 2025-07-21 08:36:29 -07:00
296aba7dc5 Fix CSV translation not updating after reimport 2025-06-17 17:22:49 +08:00
kit
477a37a594 Fix Resource Duplication test errors 2025-06-15 12:48:03 -04:00
2d0ff9774d Add a smoke test to Span in debug builds to recover from non-empty nullptr Span. 2025-06-12 12:19:21 +02:00
61639d9574 Merge pull request #106996 from Ivorforce/no-oa-hashmap
Core: Remove `OAHashMap`, in favour of `AHashMap`
2025-06-05 13:12:34 +02:00
6b2674fe18 Reuse and optimize sorting logic for List, SelfList, and HashMap
Added SortList class, and updated List, SelfList, and HashMap sort methods to use it.  Sorting is done with merge sort, with an initial check to optimize for already sorted lists, and sorted lists that were appended to.
2025-06-04 10:18:22 -04:00
f6f1df7d73 Add 64-bit versions of core power of 2 functions 2025-06-01 23:11:12 -07:00
963c20565b Remove OAHashMap, in favour of AHashMap.
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +02:00
0f67c3e992 Merge pull request #104522 from Ivorforce/localvector-force-trivial-resize
Core: Add `resize_initialized` and `resize_uninitialized` to `Vector` and `LocalVector`
2025-05-27 09:39:27 -05:00
63dff62948 Merge pull request #100673 from RandomShaper/res_duplicate
Overhaul resource duplication
2025-05-27 09:39:25 -05:00
kit
f7c182371e Remove build_array and build_dictionary from tests 2025-05-26 13:02:01 -04:00
4cb8a0c77e Add resize_initialized and resize_uninitialized to Vector. These functions serve as replacements for resize, to make sure the caller understands whether elements need to be initialized 'by hand' after the call. 2025-05-26 18:35:41 +02:00
6841b45552 Add tests for resource duplication 2025-05-26 17:05:04 +02:00
15de1d6c35 Use Grisu2 algorithm in String::num_scientific to fix serializing 2025-05-22 09:13:16 -07:00
d237e31a89 Style: Remove redundant DEBUG_METHODS_ENABLED
• Replaced with functionally identical and far more ubiquitous `DEBUG_ENABLED`
2025-05-15 13:09:41 -05:00
3bf400ffae Move bisect to Span and deduplicate code.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-05-14 18:19:09 +08:00
0ce3d75c20 Merge pull request #93783 from aaronp64/json_stringify_performance
Improve `JSON::stringify` performance
2025-05-07 12:48:28 -05:00
f13b4b760a Improve JSON::stringify performance
- Changed stringify to call static function _stringify directly, instead of creating JSON object
- Changed colon and end_statement from String to const char * to avoid extra allocations in each _stringify call
- Pass result String reference to each _stringify call to append to instead of allocating new String in each call

These changes make JSON::stringify around 2-3x faster in most cases
2025-05-06 18:27:32 -04:00
kit
6d56d2d05e Fix tests that fail when alone 2025-05-06 13:48:16 -04:00
acf38b2292 Merge pull request #76560 from aaronfranke/node-set-string-name
Change Node `set_name` to use StringName, slightly improves performance
2025-05-02 09:25:25 -05:00
a0cc41b5ed Use libjpeg-turbo for improved jpg compatibility and speed
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-05-02 11:47:56 +02:00
a404b668a1 Change Node set_name to use StringName 2025-05-01 15:15:19 -07:00
1b1ab76a14 Add FixedVector template.
This is a high performance `Vector`-like object that can be used if the maximum number of objects is small and known, and the objects are needed only temporarily.
2025-04-30 19:14:08 +02:00
3947cbe3b2 Merge pull request #104386 from Repiteo/core/cpp-math
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
91fe434a86 Always use String as StringName backing internally. 2025-04-23 14:57:03 +02:00
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
692a244713 Test for insertion at array's size 2025-04-15 12:08:54 -04:00
501c64a12f Remove auto misuse cases. 2025-04-14 16:54:57 +03:00
717df3ee88 Merge pull request #105249 from Repiteo/core/math-defs-namespace
Core: Use `Math` namespace for constants
2025-04-11 09:51:04 -05:00
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
bf963e767e Add Options, Functions and Settings to convert Node-Names and Strings to kebab-case
- refactored and renamed String::_camelcase_to_underscore to String:_separate_compound_words
- refactored String::to_snake_case to work with the refactored String::_separate_compound_words
- created char_utils::is_hyphen to catch all hyphen variants in kebab-case conversion
- created String::to_kebab_case using the new String::_separate_compound_words
- created corresponding Documentation in String and StringName
- simplified both switch statements in EditorNode and ProjectDialog
- added new kebab-casing Option for Node Names in ProjectSettings
- added missing camelCase Options to Scene- and Node-Names in ProjectSettings
- simplified Mono RuntimeInterop Functions
- hooked up the ConnectionsDialog
- created additional Unit Tests
2025-04-10 21:22:21 +02:00
cade15a163 Merge pull request #92475 from AThousandShips/string_replace_char
Add `String::replace_char(s)` methods for performance and convenience
2025-04-10 10:18:16 -05:00
fc1dbda769 Merge pull request #105164 from stuartcarnie/apple_pthread
Apple: Add pthread implementation of `Thread` class
2025-04-10 10:18:12 -05:00
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
8c8d6de3e7 Apple: Add pthread implementation of Thread class
This allows Apple platforms to override the default stack size of
a thread in the WorkerThreadPool, which is 512KiB by default.

This must be increased, as SPIRV-Cross, used by the Metal driver, can
use deeply nested stacks, as can debug builds.
2025-04-10 09:35:40 +10:00
7a6c3b309f Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
ec675fc329 Merge pull request #100333 from YYF233333/reduce_list
Use `LocalVector` instead of `List` as arg of `Dictionary::get_key_list`
2025-04-09 08:51:45 -05:00
e6b2a42053 Merge pull request #83027 from rarysson/array-negative-indexes
Add negative index to `Array.remove_at` and `Array.insert`
2025-04-09 08:51:40 -05:00
7ae1fa0a33 Merge pull request #105157 from adamscott/test_rid_add_threads_enabled
Add `THREADS_ENABLED` check before RID thread tests
2025-04-09 08:51:37 -05:00
f7e4987d0e Dictionary::get_key_list use LocalVector instead of List. 2025-04-09 02:46:24 +08:00
cba1ee1594 Add THREADS_ENABLED check before RID thread tests 2025-04-08 14:06:56 -04:00
fe39ffeb7d Add negative index to Array.remove_at and Array.insert 2025-04-08 14:55:39 -03:00
68f4502a5b Fix FileAccessCompressed claiming one byte more than it actually has.
Add a unit test for fastlz compressed file access.
2025-04-08 15:19:58 +02:00
9abe2e5294 Add uri_file_decode to handle + in file names. 2025-04-07 23:49:17 +03:00
21db8487a2 Merge pull request #104664 from tomfull123/missing-typed-dictionary-initializer-list
Add missing `initializer_list` constructor to TypedDictionary
2025-04-03 16:50:23 -05:00
e6d166344b Remove unused get_inheritance_list_static from GDCLASS. 2025-04-03 17:18:28 +02:00
Tom
8a3f9846c5 Add missing initializer_list constructor for TypedDictionary 2025-04-03 00:17:44 +01:00
f2197a1013 Expose TriangleMesh api functions wrapped for scripting
Adds script wrapped TriangleMesh api functions to create and query the triangle BVH tree.
2025-04-02 09:52:35 +02:00
1f1b1c56e7 Merge pull request #104381 from Ivorforce/object-notification-nobool
Optimize `Object::notification` by avoiding runtime branches
2025-04-01 19:53:37 -05:00
8a76e31547 Remove bool from Object::notification virtual function; replace with separate functions to avoid branching. 2025-04-01 15:26:32 +02:00