1
0
Fork 0
Commit Graph

489 Commits

Author SHA1 Message Date
Thaddeus Crews b7a0971ad2
Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Adam Johnston 3ac043c508 Add fuzzy string matching to quick open search
Co-authored-by: sam <samsface@gmail.com>
2024-10-28 11:24:36 -07:00
Haoyu Qiu f451997666 Fix duplicated entries in `TranslationServer::get_loaded_locales()` 2024-10-26 15:10:43 +08:00
Thaddeus Crews 6e9907d483
Merge pull request #92554 from Nazarwadim/implement_a_hash_map
Implement array based hash map `AHashMap`
2024-10-25 13:03:45 -05:00
Adam Scott 0d350e7108
Set clang-format `RemoveSemicolon` rule to `true`
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Clay John 33db590947
Merge pull request #98357 from yeojunh/valid-base-check-num-int64-uint64
Core: Fix String::num_int64(), uint64 for valid base check
2024-10-24 19:41:43 -07:00
nazarii 76208f7155 Implement array based hash map 2024-10-24 21:34:12 +03:00
kobewi 5c0f2414cd Always add decimal when printing float 2024-10-23 15:00:21 +02:00
yeojunh b3b24ded19 Add checks for valid base in String::num_int64, uint64().
- Ensure String::num_int64, uint64 returns an empty string for bases less than 2 or greater than 36.
- Added corresponding test cases to verify the behavior.
- Error messages are printed when invalid bases are encountered. These messages are suppressed in the test output.
2024-10-20 00:22:08 -07:00
A Thousand Ships 610635e1c8
Add test 2024-10-18 08:47:29 +02:00
Pablo Andres Fuente 0b258e69f3 Add unit tests for String::parse_url() 2024-10-01 17:09:22 -03:00
Rémi Verschelde a7d0464e9e
Merge pull request #95931 from pafuent/adding_packet_peer_tests
Add unit tests for `PacketPeer`
2024-10-01 17:30:36 +02:00
Rémi Verschelde d71d95448c
Merge pull request #95784 from pafuent/adding_stream_peer_buffer_tests
Add unit tests for `StreamPeer` and `StreamPeerBuffer`
2024-10-01 17:30:33 +02:00
Pablo Andres Fuente ff10dee946 Add unit tests for StreamPeer and StreamPeerBuffer
Partially fixes #43440
2024-10-01 12:25:11 -03:00
Pablo Andres Fuente 0a41a715da Add unit tests for PacketPeer
Partially fixes #43440
2024-10-01 12:19:41 -03:00
Haoyu Qiu 6516ca6b11 Parse fragment from URL 2024-09-27 19:42:30 +08:00
Haoyu Qiu a751c05b15 Fix script editor wrongly replaces and quotes non-ASCII letters 2024-09-23 00:05:16 +08:00
Rémi Verschelde 6bf8a3e3f8
Merge pull request #95449 from SlashScreen/array_functions
Add callable support for `find` and `rfind` `Array` methods
2024-09-20 16:06:13 +02:00
Rémi Verschelde f7daa0fb2f
Merge pull request #96856 from RandomShaper/selfdestruct_correctness
Object: Let debug lock handle callee destruction within call chain gracefully
2024-09-16 13:35:06 +02:00
Pedro J. Estébanez bb77520599 Object: Add tests about the safety of tail destruction 2024-09-16 09:58:47 +02:00
Slashscreen 89491f4403 Add callable support for `find` and `rfind` `Array` methods 2024-09-13 00:01:53 -07:00
Rémi Verschelde d1caac5e75
Merge pull request #93856 from timothyqiu/expression-period
Fix parsing of `4.` in Expression
2024-09-11 12:34:39 +02:00
Thaddeus Crews 9853a69144
Implement typed dictionaries 2024-09-04 10:27:26 -05:00
Rémi Verschelde 13a90e938f
Merge pull request #70096 from rune-scape/stringname-dict
StringName Dictionary keys
2024-09-03 17:38:06 +02:00
A Thousand Ships 194bdde947
Cleanup of raw `nullptr` checks with `Ref`
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
Rémi Verschelde ce069e4567
Merge pull request #96291 from miv391/string-unit-tests
Add more unit tests for String `insert` and `join`.
2024-08-30 09:59:47 +02:00
Rémi Verschelde 4c6bac15a3
Merge pull request #92656 from fire/vsk-json-to-native-4.3
Ability to convert native engine types to JSON and back.
2024-08-30 09:58:57 +02:00
rune-scape 154049ce17 StringName Dictionary keys
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
K. S. Ernest (iFire) Lee 71bdbcdfb1 Ability to convert native engine types to JSON and back.
Implements support for all engine types in JSON encoding/decoding

Co-Authored-By: Juan <reduzio@gmail.com>
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2024-08-29 10:57:15 -07:00
demolke c409e6d722 Import/export GLTF extras to node->meta
This is useful for custom tagging of objects with properties (for example in Blender) and having this available in the editor for scripting.

- Adds import logic to propagate the parsed GLTF extras all the way to the resulting Node->meta
- Adds export logic to save Godot Object meta into GLTF extras
- Supports `nodes`, `meshes` and `materials` (in GLTF sense of the words)
2024-08-29 19:17:04 +02:00
Mika Viskari 3153e9afda Added more unit tests for String insert and join. 2024-08-29 20:05:44 +03:00
Haoyu Qiu 8bf4ecc026 Add `String.is_valid_unicode_identifier()`
- Adds `is_valid_unicode_identifier()`
- Adds `is_valid_ascii_identifier()`
- Deprecates `is_valid_identifier()`
- Renames `validate_identifier()` to `validate_ascii_identifier()`
2024-08-27 11:34:08 +08:00
Rémi Verschelde 80935234f4
Merge pull request #93134 from AThousandShips/default_bind_check
[Tests] Ensure all default method arguments can be encoded
2024-08-26 23:28:29 +02:00
Aaron Franke 7db24a9ad5
Simplify and fix Rect2/AABB get_support function 2024-08-19 23:55:31 -07:00
Rémi Verschelde 49e5fbfbd2
Merge pull request #95184 from jsjtxietian/shader-include-relative
Fix `String::simplify_path` handling of relative paths to parent dir (`../`), fixes relative shader includes
2024-08-17 00:46:11 +02:00
A Thousand Ships 61998b1a05
[Tests] Ensure all default method arguments can be encoded
Checks that all arguments of bound methods can be encoded in extensions, checking non-empty or non-null cases for containers and objects
2024-08-16 19:57:03 +02:00
Rémi Verschelde 803dfcc3cb
Merge pull request #95613 from timothyqiu/split-empty
Fix `split_floats` behavior when spaces are used as separators
2024-08-16 14:36:40 +02:00
Haoyu Qiu f483c3aafa Fix split_floats behavior when spaces are used as separators 2024-08-16 17:30:44 +08:00
Haoyu Qiu 7343dc3a5d Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
Aaron Franke 5ced75aeb1
Fix Vector4, Vector4i, and Projection missing from ClassDB tests 2024-08-14 02:59:59 -07:00
jsjtxietian 6cf9af2817 Fix error when use relative #include in .gdshader / .gdshaderinc file 2024-08-08 11:59:14 +08:00
Hugo Locurcio 0445ccf428
Fix Image CowData crash when baking large lightmaps
This switches to 64-bit integers in select locations of the Image
class, so that image resolutions of 16384×16384 (used by
lightmap texture arrays) can be used properly. Values that are larger
should also work.

VRAM compression is also supported, although most VRAM-compressed
formats are limited to individual slices of 16384×16384. WebP
is limited to 16383×16383 due to format limitations.
2024-07-19 16:04:30 +02:00
A Thousand Ships 832695eb2c
[Tests] Fix various unit tests on minimal builds 2024-07-18 15:17:28 +02:00
A Thousand Ships ea2e6be0a6
[Tests] Fix some invalid error messages
These used `utf8().get_data()` when they should be passed as `String`
2024-07-10 15:57:52 +02:00
Haoyu Qiu ee9cea521d Fix parsing of `4.` in Expression 2024-07-02 20:53:52 +08:00
A Thousand Ships 17929a3443
[Tests] Fix unit tests in template builds 2024-06-29 18:35:50 +02:00
Rémi Verschelde 3d8562d775
Merge pull request #89197 from AThousandShips/arr_typed_fix
[Core] Fix sharing of typed arrays from constructor
2024-06-26 18:15:09 +02:00
kobewi 5514b2c70c Use subfolder for temporary test files 2024-06-05 20:31:42 +02:00
Rémi Verschelde 972181d701
Merge pull request #90506 from Calinou/test-transform2d-add-more-tests
Add more unit tests for Transform2D
2024-05-29 22:13:35 +02:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
lawnjelly b35264ad95 Fix AABB Ray intersection - return inside
* Separates find_intersects from test_intersects for rays, and wraps the former.
* Changes parameter name to "r_intersection_point".
* Fixes broken old version which returned per axis t.
* Returns whether the ray origin is within the AABB.
* Returns intersection point when origin outside.
* Returns "backtracking" intersection point when inside.
* Returns sensible normal when inside.
* Returns valid results on borders.
* Returns robust results dealing with floating point error.

Co-authored-by: Claire Blackshaw <evilkimau@gmail.com>
2024-05-09 20:41:19 +01:00
Rémi Verschelde a9a1d0a162
Merge pull request #91619 from AThousandShips/find_improve
Replace `find` with `contains/has` where applicable
2024-05-08 14:35:44 +02:00
A Thousand Ships b4c6cc7d82
[Core] Add case-insensitive `String::containsn` 2024-05-08 12:48:01 +02:00
A Thousand Ships a0dbdcc3ab
Replace `find` with `contains/has` where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
Rémi Verschelde 7d03b1de0b
Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
Rémi Verschelde 4c30718102
Merge pull request #91615 from Frozenfire92/remap-doc-nan-note
Add docs note about remap returning undefined when istart == istop
2024-05-08 09:54:20 +02:00
Joel Kuntz 26feefa91c Add notes for remap's return when istart and istop are the same
Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
Co-Authored-By: kleonc <9283098+kleonc@users.noreply.github.com>
2024-05-07 19:37:29 -03:00
Wilson E. Alvarez d4154dbc55
Add const char * overloads to String class
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-05-07 10:53:00 -04:00
A Thousand Ships 09460d33e6
[Core] Fix sharing of typed arrays from constructor 2024-05-07 09:52:17 +02:00
Rémi Verschelde e63252b421
Merge pull request #90705 from AThousandShips/foreach_list
Reduce and prevent unnecessary random-access to `List`
2024-05-07 09:04:44 +02:00
A Thousand Ships 86de59d60a
[Core] Add `LocalVector::has` for convenience 2024-05-06 18:03:37 +02:00
A Thousand Ships 955d5affa8
Reduce and prevent unnecessary random-access to `List`
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
K. S. Ernest (iFire) Lee f9b488508c
Add PackedVector4Array Variant type
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-03 00:58:27 +02:00
kit cb17798df3 Add Array and Variant list inializer 2024-05-02 15:35:17 -04:00
killzebug 53a95d6a00 Suppressed expected errors for uncached resources. 2024-04-22 23:50:20 +03:00
Ricardo Buring 8a28f816d0 Replace Clipper1 library by Clipper2 library 2024-04-20 13:37:59 +02:00
Rémi Verschelde 0f7452fedd
Merge pull request #61013 from Calinou/test-add-transform3d
Add rotation unit tests for Transform3D
2024-04-19 16:26:31 +02:00
Rémi Verschelde c951421c99
Merge pull request #90268 from RandomShaper/wtp_servers
Use WorkerThreadPool for Server threads (enhanced)
2024-04-15 10:12:00 +02:00
A Thousand Ships 80cb914e06
[Core] Fix incorrect comparison for `Array` const iterator 2024-04-13 17:32:33 +02:00
Alex Billedeaux f421d20280
Add `closest_points_between_segments()` basis path tests for Geometry2D 2024-04-10 23:49:23 +02:00
titus125 ca3ff2b89e
Add more unit tests for Transform2D 2024-04-10 23:17:15 +02:00
Hugo Locurcio 4e6de25540
Add rotation unit tests for Transform3D
Co-authored-by: Alexander Pruss <alex.pruss@gmail.com>
2024-04-10 22:27:14 +02:00
Rémi Verschelde 83b916bb00
Fix a doc and a test issue not caught by CI 2024-04-10 18:49:02 +02:00
Pedro J. Estébanez 1b104ffcd8 WorkerThreadPool: Support daemon-like tasks (via yield semantics) 2024-04-10 18:47:42 +02:00
Rémi Verschelde 5bd2af6c38
Merge pull request #90313 from Nazarwadim/unit_tests_oa_hash_map
Add unit tests for `OAHashMap`
2024-04-10 17:49:29 +02:00
A Thousand Ships 64146cb7f3
[Core] Add iteration support to `Array` 2024-04-10 14:49:34 +02:00
RevoluPowered 65d076b78d
Add unit test for resolve_hostname 2024-04-10 14:19:04 +02:00
nazarii 0c8e1c69f8 Add unit tests for OAHashMap 2024-04-10 07:51:06 +03:00
nazarii b8caf9b224 Add unit test for Vector2 plane_project 2024-04-05 21:57:01 +03:00
Rémi Verschelde c5ac5d2308
Merge pull request #90063 from aaronfranke/really-floaty
Fix some uses of `float` and `real_t` in `core/math`
2024-04-04 14:36:57 +02:00
Rémi Verschelde ec5cae37d6
Merge pull request #78219 from dalexeev/core-typed-arrays-bin-serialization
Core: Add typed array support for binary serialization
2024-04-04 14:30:22 +02:00
Aaron Franke 158fcf107c
Fix some uses of float and real_t in core/math 2024-03-29 16:44:12 -07:00
A Thousand Ships bb6305d1c4
[Core] Fix incorrect file sort method 2024-03-24 17:54:57 +01:00
A Thousand Ships 2cbf469912
Fix sorting of files/dirs in dialogs
Sorts leading `_` before other characters except `.`.
2024-03-20 13:45:47 +01:00
Danil Alexeev c30bec7fca
Core: Add typed array support for binary serialization 2024-03-20 11:37:41 +03:00
Rémi Verschelde a1c476f9d7
Merge pull request #87680 from AThousandShips/the_angry_count
Add methods to get argument count of methods
2024-03-13 22:16:43 +01:00
Rémi Verschelde b0d07b1bc2
Merge pull request #86936 from akx/env-utf-8
Attempt parsing environment variables as UTF-8
2024-03-11 14:02:22 +01:00
A Thousand Ships 59bcc2888c
Add methods to get argument count of methods
Added to:
* `Callable`s
* `Object`s
* `ClassDB`
* `Script(Instance)`s
2024-03-10 11:02:43 +01:00
Rémi Verschelde d082ce908f
Merge pull request #85390 from TheSofox/merge-all-commit-fix
UndoRedo: Fix `MERGE_ALL` commit from repeating actions
2024-03-06 09:50:13 +01:00
Sofox f249667dc8 Fixed MERGE_ALL commit from repeating actions 2024-03-05 23:40:26 +00:00
Mika Viskari 3026b566b0 Fix String::begins_with when both strings are empty 2024-03-05 20:46:10 +02:00
Rémi Verschelde 1cc9190c70
Merge pull request #81822 from nlupugla/nodepath-slice
Add `NodePath::slice` method
2024-02-29 13:53:34 +01:00
A Thousand Ships 3a707b1f54
Fix some additional errors with 3D disabled
* Disabled 2D navigation tests as they do not work
* Disabled tests for primitive meshes
* Unbound some `Mesh` methods that rely on 3D resources
* Unexposed `World3D` as it depends on physics (and isn't useful)
* Unexposed some `Viewport` vrs related properties that had unexposed
  methods
2024-02-23 20:58:56 +01:00
A Thousand Ships d7a72d72e6
Fix running tests in template builds 2024-02-22 18:05:42 +01:00
Danil Alexeev c0aa88ae4f
Add Unicode support to `String.to_*_case()` methods 2024-02-22 13:58:46 +03:00
Muller-Castro a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Mel Collins 8406e60522 Add InputEventKey.location to tell left from right
This adds a new enum `KeyLocation` and associated property
`InputEventKey.location`, which indicates the left/right location of key
events which may come from one of two physical keys, eg. Shift, Ctrl.

It also adds simulation of missing Shift KEYUP events for Windows.
When multiple Shifts are held down at the same time, Windows natively
only sends a KEYUP for the last one to be released.
2024-01-26 14:42:28 +01:00
A Thousand Ships b4191bf8f6
[Core] Fix `AABB.encloses` failing on shared upper bound
This differs from `Rect2(i)` and was fixed for those classes in the past
2024-01-12 17:58:42 +01:00
Aarni Koskela a4c5dae8cb Attempt to parse environment variables as UTF-8 2024-01-07 19:53:43 +02:00
Robert Yevdokimov f9826a1dd7 Fix various spelling errors 2024-01-04 09:56:43 -05:00
Rémi Verschelde 22e880ad20
Merge pull request #83163 from Chubercik/vectorXi_dist_methods
Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-03 09:58:36 +01:00
EddieBreeg 8747c67d9e
Fix potential integer underflow in rounded up divisions
A new `Math::division_round_up()` function was added, allowing for easy
and correct computation of integer divisions when the result needs to
be rounded up.

Fixes #80358.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-02 14:14:47 +01:00
nlupugla cd221c1816 Added NodePath::slice method. 2023-12-13 13:30:28 -05:00
Rémi Verschelde b952b007b1
Merge pull request #84782 from rsburke4/image-fix
Prevent crash on conversion of invalid data in `Image`
2023-12-12 00:17:42 +01:00
rsburke4 dec2269bca Added error to catch conversion on invalid image 2023-12-10 15:06:22 -05:00
Yuri Sizov 47cd07aa13 Merge pull request #85666 from miv391/more-unit-tests-for-string-to-number-conversions
Add more C++ unit tests for String to number conversions
2023-12-08 16:58:29 +01:00
Aaron Franke 7ee273723d
Fix Basis is_orthogonal and is_rotation methods, add is_orthonormal 2023-12-06 13:12:05 -06:00
Mika Viskari 5e40124d4d Add more C++ unit tests for String to number conversions 2023-12-02 20:54:48 +02:00
SilicDev c0808d5083 fix assignment to vec2 tests 2023-10-25 20:57:45 +02:00
Rémi Verschelde 897ff71156
Merge pull request #76244 from kgrubbs22/variant-test-updates
Added Unit Tests for Variant for Operator Overloading
2023-10-16 10:37:40 +02:00
Jakub Marcowski cb954c6bab Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to` 2023-10-12 13:46:49 +02:00
Alfonso J. Ramos 5cd7ca0ccc Do not replace starting digit with underscore when making identifier 2023-10-04 08:05:04 -05:00
etti 3a39de4e2f Add rotate_toward and angle_difference to GDScript and C# 2023-10-01 22:19:42 +02:00
Rémi Verschelde 3ec673085b
Merge pull request #79523 from aaronfranke/is-conformal
Add `is_conformal` method to Basis and Transform2D
2023-09-26 13:44:41 +02:00
Aaron Franke bcfb2c0089
Simplify Geometry3D tests 2023-09-25 01:54:22 -05:00
Yuri Sizov 721cac4a38 Merge pull request #81456 from AThousandShips/test_fix
Fix errors when testing `Resource`
2023-09-14 15:21:37 +02:00
Aaron Franke 56806ffeed
Add `is_conformal` method to Basis and Transform2D 2023-09-13 17:20:30 -05:00
Rémi Verschelde 38ca83e16f
Merge pull request #81464 from AcatXIo/fix-sign-nan
Fix `SIGN(NAN)` returning 1
2023-09-12 12:01:39 +02:00
AcatXIo 7d69a5ba50 Fix sign(NAN) returning 1.
Fixes #79036. sign(NAN) now returns 0.
This should not impact performance much in any way.
Adds a test for the NAN case. Updates the documentation to clarify the new behavior.
2023-09-09 11:30:11 +02:00
A Thousand Ships 7726ed6740 Fix errors when testing `Resource`
Replaces `get_meta` with `has_meta` for cases where the meta is expected
to be empty.
2023-09-09 08:20:05 +02:00
Aaron Franke 22e2696767
Add unit tests for type_convert Variant utility function 2023-09-08 10:13:22 -05:00
Rémi Verschelde 11518665b7
Codestyle: Don't use auto where not warranted
We allow using auto for lambdas or complex macros where a return type
may change based on the parameters. But where the type is clear, we
should be explicit.

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-09-07 16:15:18 +02:00
bruvzg 2b3bbde6da
[String] Fix string conversion for -0.0 float values. 2023-09-05 11:32:55 +03:00
Jcrespo 528a76486c Add inverse hyperbolic functions `asinh()`, `acosh()` & `atanh()`
GDScript has the following built-in trigonometry functions:

- `sin()`
- `cos()`
- `tan()`
- `asin()`
- `acos()`
- `atan()`
- `atan()`
- `sinh()`
- `cosh()`
- `tanh()`

However, it lacks the hyperbolic arc (also known as inverse
hyperbolic) functions:

- `asinh()`
- `acosh()`
- `atanh()`

Implement them by just exposing the C++ Math library, but clamping
its values to the closest real defined value.
For the cosine, clamp input values lower than 1 to 1.
In the case of the tangent, where the limit value is infinite,
clamp it to -inf or +inf.

References #78377
Fixes godotengine/godot-proposals#7110
2023-09-01 01:27:56 +02:00
Rémi Verschelde 8edc0b43b9
Merge pull request #78634 from Sauermann/fix-notification-order
Fix `Object::notification` order
2023-08-30 08:44:36 +02:00
Markus Sauermann c4705a590b Fix Object::notification order
Previously the `p_reversed` parameter didn't influence the order
in a correct way.
Also script overridden _notification functions were not called in
the correct order.

To fix this some `notification` functions had to add a `p_reversed`
parameter.

This made it necessary to adjust cpp-bindings.

Co-authored-by: David Snopek <dsnopek@gmail.com>
2023-08-30 00:15:55 +02:00
clayjohn 0045dc204c Revert "Implement loading DDS textures at run-time"
This reverts commit 34ab1c8a36.
2023-08-29 14:25:16 +02:00
kobewi 67db4693eb Expose _validate_property() for scripting 2023-08-28 15:18:48 +02:00
Rémi Verschelde c3fd8752d2
Merge pull request #80612 from akien-mga/scons-disable-exception-handling
SCons: Disable C++ exception handling
2023-08-16 16:56:07 +02:00
Rémi Verschelde 20e24bd2bb
Merge pull request #78529 from Chaosus/string_reverse
Add `String.reverse` method
2023-08-16 16:53:40 +02:00
Rémi Verschelde 3907e53ff6
SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
2023-08-16 10:23:34 +02:00
Rémi Verschelde b78d52b693
Merge pull request #75694 from YuriSizov/editor-hot-singleton-interfaces-in-your-area
Make `EditorInterface` accessible as a singleton
2023-08-10 14:53:35 +02:00
Yuri Sizov 951ea2415b Make EditorInterface accessible as a singleton
- EditorPlugin.get_editor_interface() is removed as redundant.
2023-08-09 16:01:31 +02:00
Rémi Verschelde 835957b1fc
Merge pull request #79980 from bruvzg/fix_test_str_errs
[String] Fix Unicode parsing error message encoding and related JSON tests.
2023-08-09 15:20:16 +02:00
Rémi Verschelde 169a28bd0f
Merge pull request #80362 from Calinou/string-use-unicode-compiletime
Use compile-time Unicode string conversion
2023-08-07 14:55:58 +02:00
Rémi Verschelde 432405a3e1
Merge pull request #79342 from RedworkDE/localize-win-path
Fix `ProjectSettings::localize_path` for Windows paths
2023-08-07 14:45:48 +02:00
Rémi Verschelde 66e40e402a
Merge pull request #79331 from azuloo/translation-server-test-suite
Add a test suite for TranslationServer
2023-08-07 14:45:24 +02:00
Hugo Locurcio e9f723006a
Use compile-time Unicode string conversion
Thanks to this syntax introduced in C++11, this reduces the amount of work
that needs to be performed at run-time while making the code more terse.
2023-08-07 10:38:16 +02:00
Marcin Nowak 34ab1c8a36 Implement loading DDS textures at run-time 2023-07-31 21:31:26 +02:00
bruvzg 84a6f0d232 [String] Fix Unicode parsing error message encoding and related JSON tests. 2023-07-28 12:27:01 +03:00
Pedro J. Estébanez f34d580861 Revert "Implement parallel foreach() for easier multithreading"
This reverts commit e28868e30c.
2023-07-27 13:41:27 +02:00
Yuri Sizov 53ba9ccb19 Merge pull request #72346 from myaaaaaaaaa/disconnect-order
Avoid sorting CallableCustomMethodPointers by their actual address values
2023-07-26 18:39:08 +02:00
RedworkDE aee1e50b48 Fix `ProjectSettings::localize_path` for Windows paths 2023-07-26 16:18:31 +02:00
Yuri Sizov b8a29f71e5 Merge pull request #79444 from Miguel0312/TestInputEvent
Add a test suite to InputEvent
2023-07-21 17:54:35 +02:00
Miguel Pereira c2ad5ca435 Added tests to InputEvent 2023-07-17 17:48:34 +02:00
Yuri Sizov 3d04a22d7c
Merge pull request #79103 from AThousandShips/array_slice_range
Fix range error for `Array.slice`
2023-07-17 16:48:48 +02:00
Maxim Kulkin 058604f5b8 Fix crash when saving resources with circular references
When saving resources, marking of already seen resources was
done too late, causing infinite loop traversing referenced resources
and eventual stack overflow. The change marks traversed resource
before descending to it's children, thus when this resource is
encountered again, it is already marked as seen and traversal stops.
2023-07-14 19:20:04 +02:00
Yuri Sizov 2a595c26d9 Merge pull request #72784 from myaaaaaaaaa/parallel-foreach
Implement parallel `foreach()` for easier multithreading
2023-07-14 18:48:49 +02:00
Yuri Sizov e88934cb74 Merge pull request #74238 from bitsawer/fix_image_convert
Fix `Image.convert()` overwriting custom mipmaps
2023-07-12 17:15:39 +02:00
Yuri Sizov f6d568b9e4 Merge pull request #66170 from RedMser/json-fix-invalid-escapes
Disallow invalid escape sequences in `JSON.parse`
2023-07-12 15:08:29 +02:00
azuloo dd0bd90865 Add a test suite for TranslationServer 2023-07-11 14:30:53 +03:00
MewPurPur cc5500f7de Fix erroneous pad_zeros warning 2023-07-08 16:16:01 +03:00
Ninni Pipping 7752a0d8d1 Fix range error for `Array.slice` 2023-07-07 23:19:42 +02:00
RedMser 427b293c7d Disallow invalid escape sequences in JSON.parse 2023-06-30 21:28:36 +02:00
Rémi Verschelde 100082b3ac
Merge pull request #74760 from lassade/unicode-err-uses-replacement-char
Don't append non unicode scalar values on the string, instead use the unicode replacement char
2023-06-22 18:30:04 +02:00
Yuri Roubinski 230385b587 Add `String.reverse` method 2023-06-21 20:40:48 +03:00
angel-721 ab4e89ecde
Add HTTPClient unit tests 2023-06-21 11:53:55 +02:00
myaaaaaaaaa 5cc961627d Avoid sorting CallableCustomMethodPointers by their actual address values 2023-06-20 08:40:01 -04:00
Rémi Verschelde 867ea7fe59
Merge pull request #74730 from MarioLiebisch/fix-74726
Fix read-only dictionaries adding missing keys
2023-06-19 21:38:38 +02:00
andybarcia 553f4f8dce
Improve error reporting when parsing CSV translation file
Fixes #46682.

Also fix unit test suite to separate generic FileAccess CSV testing
from using CSV as translation. And add more CSV translation tests.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-06-19 12:47:44 +02:00
Rémi Verschelde 1a62f1e4fc
Merge pull request #74741 from vnen/variant-not-for-everyone
Allow boolean operators for all Variant types
2023-06-18 16:28:10 +02:00
MewPurPur a8412c12da Standardize and Optimize blue robot SVG
Co-authored-by: Andre Vallestero <39736205+AndreVallestero@users.noreply.github.com>
2023-06-12 18:12:40 +02:00
myaaaaaaaaa e28868e30c Implement parallel foreach() for easier multithreading 2023-06-09 08:27:32 -04:00
Kory Postma c8cac39446 Grayscale fix for Image::premultiply_alpha() and Image::convert(FORMAT_L8) while using REC.709, with added test case 2023-05-27 18:01:44 -05:00
myaaaaaaaaa c996863464 Streamline WorkerThreadPool tests and make them more robust 2023-05-17 17:33:08 -04:00
Rémi Verschelde 863bcd3e2b
Merge pull request #76936 from clayjohn/revert-hsl
Revert "Add API for HSL conversion"
2023-05-12 10:03:21 +02:00
Rémi Verschelde fd4a06c515
Merge pull request #76906 from lawnjelly/safe_acos4_2
Make acos and asin safe
2023-05-11 13:33:37 +02:00
lawnjelly 50c5ed4876 Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 08:34:34 +01:00
clayjohn f83a90192f Revert "Add API for HSL conversion"
This reverts commit 0b7fd664c1.
2023-05-10 17:45:56 -03:00
Rémi Verschelde 703a3ce7ad
Merge pull request #76830 from ajreckof/fix_wrapf_CI_with_too_big_float
fix a test for wrapf with signed 32-bit float
2023-05-10 10:20:03 +02:00
Rémi Verschelde 6bca6beea3
Merge pull request #76878 from RedworkDE/tests-fix-errors
Fix various errors when running the unit tests
2023-05-09 19:28:54 +02:00
Rémi Verschelde 0f444f101a
Merge pull request #76661 from bonjorno7/hsl
Add API for HSL conversion
2023-05-09 19:28:35 +02:00
RedworkDE 8e7afec479 Fix various errors when running the unit tests
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-05-09 18:40:56 +02:00
bonjorno7 0b7fd664c1 Add API for HSL conversion
Math ported pretty much 1:1 from https://en.wikipedia.org/wiki/HSL_and_HSV
Style doesn't match the existing HSV code exactly, but should be close enough.
2023-05-09 17:43:10 +02:00
ajreckof fabd9535f0 fix a test for wrapf with signed 32-bit float 2023-05-08 20:53:58 +02:00
Clay John 7a13cf9aeb
Merge pull request #75510 from SilicDev/string_erase
Reimplement `String.erase()` as immutable method
2023-05-05 10:03:49 -07:00
SilicDev 6fa4f71ca6 Reimplement String.erase 2023-05-04 00:52:35 +02:00
Rémi Verschelde e0e93ce094
Merge pull request #72421 from myaaaaaaaaa/signal-hashmap
Store Object signals in a HashMap rather than a VMap
2023-04-25 19:26:35 +02:00
kendelle 0ec48a43d6 Updated Varaint assignemnt unit tests with Vec4,Vec4i,Rect2,Rect2i,Trans2d,Trans3d,Color,,Plane,Basis,AABB,Quant,Proj,RID,and Object
Updated Varaint assignemnt unit tests with Vec4,Vec4i,Rect2,Rect2i,Trans2d,Trans3d,Color,,Plane,Basis,AABB,Quant,Proj,RID,and Object

Updated Varaint assignemnt unit tests with
Vec4,Vec4i,Rect2,Rect2i,Trans2d,Trans3d,Color,,Plane,Basis,AABB,Quant,Proj,RID,and Object
2023-04-19 11:23:11 -05:00
Juan Linietsky 223ce4fcb9 Optimize Node::add_child validation
Adding 10k nodes is almost twice as fast.
2023-04-07 13:18:47 +02:00
Ninni Pipping 10f385fb79 Fix `Array.slice()` rounding for `abs(step) != 1` 2023-03-14 15:46:45 +01:00
Felipe Jorge 999f3e2c13 use the unicode replacement char on error
update tests

also fix utf8 and ascii parse functions to use the replacement char

created a _replacement_char const inside the string
2023-03-12 11:46:56 -03:00
Mario Liebisch 62e1a5e235
Added two test cases 2023-03-11 18:53:17 +01:00
George Marques a1e3ef919c
Add operator NOT for all Variant types 2023-03-10 15:58:55 -03:00
bitsawer 5a9d7fd8a6 Fix Image.convert() overwriting custom mipmaps 2023-03-02 16:46:06 +02:00
myaaaaaaaaa 1ec5381c16 Store Object signals in a HashMap rather than a VMap 2023-02-25 18:44:09 -05:00
Dmitrii Maganov c5f7a89b0f Core: Identity compare objects by id, not by pointers 2023-02-24 23:33:29 +02:00
Aaron Franke c551d7489c
Explicitly cast to Variant's int type in Time tests 2023-02-20 14:46:21 -06:00
myaaaaaaaaa 6b0f253a45 Fix PagedArray.merge_unordered() dropping pages 2023-02-16 19:58:27 -05:00
Andrés Botero a90e151b2a Added component-wise `min` and `max` functions for vectors 2023-02-11 15:03:11 -05:00
Rémi Verschelde ab4a7b2b77
Merge pull request #72547 from MewPurPur/string-split-fix
Fix String.split() with empty string and delimeter
2023-02-09 16:12:57 +01:00
VolTer 57e39d0ce9 Fix String.split() with empty string and delimeter 2023-02-02 01:34:11 +01:00
myaaaaaaaaa 132e987633 Fail instead of segfaulting in IO tests 2023-01-31 02:21:27 -05:00
Rémi Verschelde 2d47c4c307
Merge pull request #72213 from ARez2/ARez2/master
Add Unit test for InputEventMouse
2023-01-30 10:00:45 +01:00
ARez 23827d4303 Add Unit test for InputEventMouse 2023-01-29 14:09:53 +01:00
Aaron Franke 5f3d3722b2
Add support for interpolating skewed transforms 2023-01-28 18:28:42 -06:00
Adam Scott 37248d7c87 Add `@GlobalScope` `is_same(a, b)` and `Variant::identity_compare()` 2023-01-25 10:46:21 -05:00
Jan Haller 83026126d4 Add tests to ensure bound methods and signals are valid identifiers 2023-01-23 21:19:57 +01:00
bruvzg daad4aed62
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00