Pāvels Nadtočajevs
da767ebfa2
Prevent `changed` signal spam on resource reload.
2025-02-11 15:22:49 +02:00
Rémi Verschelde
62d22ffa6b
Merge pull request #98216 from pafuent/fixing_log_rotation
...
Fix file logging log rotation
2025-02-11 10:54:01 +01:00
Pablo Andres Fuente
d1338528f9
Fix file loggin log rotation
...
Fixes #97066
`RBSet` were used on `RotatedFileLogger` because it guarantees that
iterating it is done via `operator<`. This is important because
`RotatedFileLogger` depends on this behavior to delete the oldest log file.
On #61194 `HashSet` was added and all `RBSet` uses were replaced by
`HashSet`.
When that happened, the iteration in order is guaranteed to be the insertion
order, wich made that `RotatedFileLogger` delete the newest log file.
As a bonus, I added unit test for `RotatedFileLogger` and `CompositeLogger`.
2025-02-10 21:57:07 +01:00
Rémi Verschelde
261e7d32d3
Merge pull request #102649 from bruvzg/fb_loc
...
Use fallback locale from project settings instead of hardcoded "en" for TextServer.
2025-02-10 10:50:02 +01:00
Pāvels Nadtočajevs
e9fd760357
Use fallback locale from project settings instead of hardcoded "en" for TextServer.
2025-02-10 08:55:50 +02:00
Hilderin
9457666bba
Fix accessing UID before first scan
2025-02-08 20:04:32 -05:00
Lukas Tenbrink
e34f1f504c
Use `std::size` instead of `sizeof(a) / sizeof(a[0])` pattern throughout the codebase.
2025-02-07 14:57:48 +01:00
Pāvels Nadtočajevs
1bc86c2626
Fix `PackedStringArray.to_byte_array()` to return UTF-8 encoded data instead of pointers.
2025-02-07 10:19:32 +02:00
Rémi Verschelde
161abe7bdd
Merge pull request #102489 from KoBeWi/uid_file_factory_regulations
...
Improve UID file creation condition
2025-02-07 01:39:55 +01:00
kobewi
65509ae4ff
Improve UID file creation condition
2025-02-06 17:08:00 +01:00
bruvzg
a6ff518763
Add ZWSP to the list of space characters.
2025-02-06 10:31:32 +02:00
Pāvels Nadtočajevs
b50d9742c2
Fix `is_valid_float`, `Variant` parser, `Expression` parser, script highlighter, and `TextServer` not handing capital E in scientific notation.
2025-02-05 18:39:40 +02:00
bruvzg
3be46a69c4
Fix uppercase B and X parsing in the integer literals.
2025-02-05 16:02:06 +02:00
David Snopek
be81b0685f
Prevent instantiating classes that aren't exposed
2025-02-04 17:09:37 -06:00
David Snopek
7095431aa7
GDExtension: Add interface functions for `Object::set_script_instance()`
2025-02-04 14:47:06 -06:00
Thaddeus Crews
acddf31c39
Merge pull request #101489 from RandomShaper/optimize_classnames_enumeration
...
Optimize classnames enumeration
2025-02-04 09:03:59 -06:00
A Thousand Ships
e825085978
[Core] Add `is_same` to types that have float components
...
Compares `NaN` as equal.
Added to:
* `AABB`
* `Basis`
* `Color`
* `Plane`
* `Projection`
* `Quaternion`
* `Rect2`
* `Transform2D`
* `Transform3D`
* `Vector2`
* `Vector3`
* `Vector4`
And added as a method in `Math`
2025-02-03 19:25:50 +01:00
A Thousand Ships
46b6acdabb
[Core] Expose `Packed*Array::erase`
2025-02-03 19:25:09 +01:00
Pāvels Nadtočajevs
e6e108d091
Implement `get_length()` for pipes.
2025-02-03 16:50:00 +02:00
Thaddeus Crews
4fcd9598de
Merge pull request #102144 from Cwazywierdo/get-euler-epsilon
...
Core: Fix `Basis::get_euler` incorrectly simplifying rotations in some cases.
2025-02-03 08:15:42 -06:00
Thaddeus Crews
699237d243
Merge pull request #102131 from dsnopek/classdb-bind-method-custom-leak
...
Fix memory leak when `ClassDB::bind_method_custom()` fails
2025-01-30 11:39:04 -06:00
lawnjelly
5c6d7bfb98
Change `VariantUtility` to prevent undef `print_verbose`
...
Changes the `VariantUtility` function from `print_verbose` to `_print_verbose`, eliminating the need for undefining the `print_verbose` macro, which caused compilation problems.
2025-01-30 10:29:11 +00:00
Thaddeus Crews
424487869e
Merge pull request #90726 from Chubercik/ucaps-exorcism
...
Update `ucaps.h` to contain proper case matchings
2025-01-29 17:45:14 -06:00
Adam
d56cbd374b
Fix `Basis::get_euler` incorrectly simplifying rotations in some cases.
2025-01-29 16:13:29 -06:00
Lukas Tenbrink
60443b1ae6
Optimize `ProjectSettings::get_setting_with_override` / `GLOBAL_GET` by avoiding repeated dict lookups.
2025-01-29 14:11:15 +01:00
Jakub Marcowski
104857687c
Update `ucaps.h` to contain proper case matchings
2025-01-29 12:37:33 +01:00
Pedro J. Estébanez
318af42020
Include more attributes in the global class names cache
2025-01-29 09:39:50 +01:00
Thaddeus Crews
3c80c14092
Merge pull request #101924 from adamscott/game-editor-non-cached-mouse-mode
...
Delegate handling `mouse_mode` to the `DisplayServer`
2025-01-28 16:08:56 -06:00
David Snopek
e904c0c014
Fix memory leak when `ClassDB::bind_method_custom()` fails
2025-01-28 11:10:35 -06:00
Adam Scott
47f553ae0b
Delegate to the DisplayServer the task of handling mouse_mode
...
- Add `MOUSE_MODE_MAX` and various index checks
2025-01-28 11:22:27 -05:00
Thaddeus Crews
1aed2f577e
Merge pull request #100904 from kiroxas/fixVariantMSVCWorkaround
...
Fix MSVC Variant Workaround
2025-01-28 09:03:33 -06:00
Hugo Locurcio
daa6198925
Add built-in GUI to display license notices
...
Press Ctrl/Cmd + Shift + L (`ui_toggle_licenses_dialog` built-in action)
to show/hide the notices dialog.
The dialog can be shown via script using
`SceneTree.licenses_dialog_visible = true|false`.
Co-authored-by: MewPurPur <mew.pur.pur@abv.bg>
2025-01-27 18:35:04 +01:00
Jakub Marcowski
10485764a7
Automate generation of the `char_range.inc` file
...
Co-authored-by: Danil Alexeev <dalexeev12@yandex.ru>
2025-01-23 19:25:59 +01:00
Thaddeus Crews
376b1c9de9
Merge pull request #101752 from MTareqAzim/fix-resource-loader-cache-uid
...
Fix ResourceLoader.has_cached() and ResourceLoader.get_cached_ref() not handling UIDs.
2025-01-22 16:32:24 -06:00
Tareq Anuar
9014cdb596
Fix ResourceLoader.has_cached() and ResourceLoader.get_cached_ref() not handling UIDs.
2025-01-20 20:36:23 +08:00
Silc Lizard (Tokage) Renew
27e23280c5
Fix Quaternion arc constructor to check dot & Add test for same vec3s
2025-01-20 18:16:53 +09:00
Travis Wrightsman
72856f304f
Make COPYRIGHT.txt compliant with specification
...
Also fix license header generation by skipping over the new Comment
field in the COPYRIGHT.txt header stanza.
2025-01-17 13:35:15 -08:00
Lukas Tenbrink
512abc38b2
Remove implicit conversions from String, Char16String and CharString to data pointers. Make conversions to StrRange implicit to aid transition.
2025-01-17 17:31:58 +01:00
Thaddeus Crews
49481c12bc
Merge pull request #98792 from MJacred/fix_remove_joy_mapping
...
Fix `Input::remove_joy_mapping`
2025-01-17 10:16:44 -06:00
Thaddeus Crews
ce88021aa0
Merge pull request #101606 from Ivorforce/stringname-lock-late
...
Lock the `StringName::mutex` after hashing the string, to spend less time hoarding it unnecessarily.
2025-01-16 17:18:04 -06:00
Thaddeus Crews
0c0c45d695
Merge pull request #99494 from RandomShaper/rerefix_res_unrecog
...
ResourceLoader: Report appropriate error code when no suitable loader is found
2025-01-16 17:18:03 -06:00
Thaddeus Crews
ec85334a84
Merge pull request #90425 from tracefree/load-pack-fix
...
Fix "res://" being replaced by resource packs in the editor and on Android
2025-01-16 17:18:02 -06:00
Thaddeus Crews
9bcf5ac9f7
Merge pull request #101560 from darksylinc/matias-union-order
...
Fix union order to simplify empty initializers
2025-01-16 17:17:53 -06:00
Thaddeus Crews
c4f7192a86
Merge pull request #101594 from BlueCube3310/image-channel-mask-fix
...
Fix certain channel masks for Texture previewer
2025-01-16 17:17:46 -06:00
ialex32x
6b225ebe24
Fix index check in MethodBind::get_argument_type
2025-01-16 15:47:50 +08:00
Lukas Tenbrink
dbf189e28f
Lock the `StringName::mutex` after hashing the string, to spend less time hoarding it unnecessarily.
2025-01-15 21:20:48 +01:00
Adam Scott
33e16435f5
Replace some problematic uses of `String::num` to `String::num_int64`
2025-01-15 12:51:51 -05:00
BlueCube3310
271067eb2b
Fix certain channel masks for Texture previewer
2025-01-15 18:40:53 +01:00
Rie
d17ce4c37e
Fix "res://" being replaced by resource packs in the editor and on Android
2025-01-15 11:20:46 +01:00
Matias N. Goldberg
7b2f1e1d09
Fix union order to simplify empty initializers
...
This is a followup to PR #101344 (commit
0e06eb80bc ).
Some of them were not an issue because Godot was initializing all
members, but they were "fixed" just in case since it could become a
problem in the future.
Valgrind was specifically complaining about HashMapData &
GlobalPipelineData.
2025-01-14 19:05:01 -03:00
MJacred
8e75fae49e
Ue an array removed_idx
2025-01-14 12:09:16 +01:00
Rémi Verschelde
f07e3ed551
Merge pull request #100157 from Zylann/texture_preview_channel_selector
...
Add color channel filter to editor texture previews
2025-01-14 12:08:54 +01:00
Pāvels Nadtočajevs
b983b9d9f4
[RTL] Add cell option to control if cell is shrinked to its contents width.
2025-01-13 21:44:06 +02:00
Rémi Verschelde
df0a268472
Merge pull request #101493 from Ivorforce/string-equal-fast
...
Optimize `String` `==`, `ends_with` and `begins_with` by using `memcmp`.
2025-01-13 20:22:48 +01:00
MJacred
f355382ef5
Updating the index after the first mapping record of p_guid requires a second loop
2025-01-13 16:55:26 +01:00
MJacred
e98f3a6bf0
Apply feedback
2025-01-13 16:23:55 +01:00
Lukas Tenbrink
2e600789dd
Optimize `String` `==`, `ends_with` and `begins_with` by using `memcmp`.
2025-01-13 15:23:08 +01:00
MJacred
f7c6a8659a
Apply feedback + Remove unused variable `uid` in parse_mapping()
2025-01-13 11:43:25 +01:00
Marc Gilleron
c7a9d64eaf
Add color channel filter to editor texture previews
2025-01-11 23:27:48 +00:00
David Snopek
696285f23a
Use `MethodInfo::get_compatibility_hash()` to generate the hash for `MethodBind::get_hash()` and other GDExtension hash clean up
2025-01-11 15:57:42 -06:00
Rémi Verschelde
5b52b4b5c4
Merge pull request #101446 from KoBeWi/path_ensuring_never_ends
...
Fix UID path remap
2025-01-11 22:30:25 +01:00
Rémi Verschelde
7c6d0d81c2
Merge pull request #101441 from KoBeWi/what_happened_to_your_uid,_why_is_it_so_invalid
...
Improve missing UID errors
2025-01-11 22:30:18 +01:00
Rémi Verschelde
65af5ae981
Merge pull request #101386 from Ivorforce/vector-append-array-memorysafe
...
Revert regression of memory unsafe `append_array` (same vector into same vector).
2025-01-11 22:30:05 +01:00
Rémi Verschelde
6a8ca81789
Merge pull request #100674 from dsnopek/gdextension-virtual-method-compat
...
GDExtension: Add compatibility system for virtual methods
2025-01-11 22:29:38 +01:00
kobewi
9ad34ecc3e
Fix UID path remap
2025-01-11 22:15:59 +01:00
kobewi
d3d874e0d1
Improve missing UID errors
2025-01-11 21:30:25 +01:00
Rémi Verschelde
ad74e337b9
Merge pull request #100954 from Bromeon/bugfix/nodepath-slice
...
Fix `NodePath::slice()` incorrect behavior for subname indexing
2025-01-10 23:05:56 +01:00
David Snopek
39f16e70f8
GDExtension: Add compatibility system for virtual methods
2025-01-10 16:00:05 -06:00
Lukas Tenbrink
2aeca3e885
Optimize `String::chr` to avoid calling `strlen`. Use `String::chr` instead of `String(&chr, 1)` where appropriate.
2025-01-10 18:06:46 +01:00
Lukas Tenbrink
cf145de21e
Revert regression (GH-31736) of memory unsafe append_array (append vector to itself). Add comments to prevent future regressions.
2025-01-10 15:30:36 +01:00
Nazarii
6609caf76e
Use 1.5x growth factor for LocalVector
2025-01-10 15:57:54 +02:00
Rémi Verschelde
2db8f8837e
Merge pull request #101125 from axunes/master
...
macOS: Allow running unpacked game files from .app bundle resources
2025-01-09 11:17:20 +01:00
Rémi Verschelde
a7052a2bd0
Merge pull request #101033 from Ivorforce/string-count-avoid-copy
...
Optimize `_count` by replacing a full copy with a CoW copy for the full-string count case.
2025-01-09 11:17:17 +01:00
Rémi Verschelde
7fe0609118
Linux: Relax interdependency between freetype, libpng, and zlib for unvendored builds
...
This restriction was added to fix #7373 back then, which was a symbol conflict
between FreeType's bundled copy of gzip/zlib, and distro packages.
But we also unbundled FreeType's zlib in #69395 so this is no longer an issue.
On the other hand recent issues pointed out that using system-provided icu4c
or harfbuzz can cause issues (#91401 , #100301 ). We still allow it for now but
raise a warning.
2025-01-09 00:28:46 +01:00
Rémi Verschelde
76c8e76560
Merge pull request #101284 from akx/tyops
...
A handful of typo fixes
2025-01-08 15:53:33 +01:00
Rémi Verschelde
b857c2f3e6
Merge pull request #101016 from kiroxas/AddVariantStaticAssert
...
Add static assert checks in `Variant` constructors
2025-01-08 15:53:23 +01:00
Aarni Koskela
f134769506
Fix various typos
...
* Add TODO notes for typos that should be fixed for 5.0
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-08 14:47:42 +02:00
axunes
50b90604af
macOS: search for project file in .app resources
2025-01-08 01:59:00 -05:00
Synzorasize
b0845da37d
Fix parsing Resource type as value type of a Dictionary
2025-01-07 18:37:31 -06:00
Rémi Verschelde
0fee2724f0
Merge pull request #100751 from YYF233333/force_regex_with_editor
...
Force build editor with regex module, remove checking code
2025-01-07 23:17:35 +01:00
Yufeng Ying
34d8255947
Force build editor with regex module, remove checking code.
...
Fix include.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-07 19:43:23 +08:00
Rémi Verschelde
d9535301ab
Merge pull request #101001 from adamscott/fix-metadata-script
...
Fix Script metadata usage
2025-01-07 10:14:46 +01:00
Rémi Verschelde
91fda4ecaf
Merge pull request #101055 from Ivorforce/variant-to-number-consolidate
...
Consolidate `Variant` int and float conversion functions to reduce duplicate logic.
2025-01-06 22:48:24 +01:00
Rémi Verschelde
653f5a9613
Merge pull request #100976 from AThousandShips/uid_fixes
...
[Core] Fix UID encoding
2025-01-06 22:48:13 +01:00
Rémi Verschelde
e06cac212b
Merge pull request #99893 from kiroxas/avoidUTF8ParsingWhenNotNecessary
...
Avoid duplicated `utf8()` calls
2025-01-06 22:47:12 +01:00
Rémi Verschelde
be4678b836
Merge pull request #95750 from mosquitochang/fix-input-event-get-index
...
Fix `InputMap::event_get_index` to handle unmatched events correctly
2025-01-06 22:46:37 +01:00
Rémi Verschelde
4319d380d1
Merge pull request #94507 from akien-mga/variantparser-improve-error-reporting
...
VariantParser: Ensure all parse errors have an explanation
2025-01-06 22:46:31 +01:00
Rémi Verschelde
1aaf20b1f1
Merge pull request #98488 from RandomShaper/lockless_rid_fetch_pro
...
Fix `RID_Owner` synchronization
2025-01-06 08:38:14 +01:00
Rémi Verschelde
da4f9339ea
Merge pull request #101072 from hpvb/thread-id-optimization
...
Optimize `Thread::get_caller_id()`
2025-01-05 14:52:18 +01:00
Lukas Tenbrink
0e72967244
Consolidate `Variant` int and float conversion functions to reduce duplicate logic.
2025-01-03 20:16:43 +01:00
HP van Braam
873eb21ce8
Optimize Thread::get_caller_id()
...
By making sure that Thread always has a valid caller_id we can remove the
check making the function a straightforward getter instead.
In some quick tests we see a repeatable performance improvement of
somewhere around 0.32 mspf in TPS demo.
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2025-01-03 17:33:10 +01:00
Rémi Verschelde
c049d07121
VariantParser: Ensure all parse errors have an explanation
...
Likewise in ResourceFormatText and JSON.
2025-01-03 17:17:37 +01:00
Adam Scott
6db599232e
Fix Script metadata usage
2025-01-03 11:12:37 -05:00
Pedro J. Estébanez
de7e4efef8
Fix RID_Owner synchronization
2025-01-03 17:05:36 +01:00
Ricardo Subtil
b77aa473a1
Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization
2025-01-03 10:50:15 +00:00
Rémi Verschelde
a17a0bc808
Merge pull request #100717 from KoBeWi/icon_uncache
...
Fix icon UIDs in Project Manager
2025-01-03 02:01:24 +01:00
Rémi Verschelde
b34adf29dc
Remove unused OS `_display_driver_id` member
2025-01-03 01:52:25 +01:00
Rémi Verschelde
d47fef15b8
Merge pull request #100991 from TokageItLab/180deg-arc
...
Fix looking at with 180 degree arc
2025-01-03 00:49:59 +01:00
Rémi Verschelde
21e6671740
Merge pull request #100937 from Repiteo/style/clang-format-sync
...
Style: Enforce `AllowShortFunctionsOnASingleLine`
2025-01-03 00:49:44 +01:00
Rémi Verschelde
5ff616736a
Merge pull request #100825 from KoBeWi/colored_eight
...
Add `Color.from_rgba8` and deprecate Color8
2025-01-03 00:49:18 +01:00
Rémi Verschelde
e9da833e6c
Merge pull request #100795 from hpvb/optimize-variant-clear
...
Don't set `Variant::Type` in destructor
2025-01-03 00:49:10 +01:00
Rémi Verschelde
dd7d36e803
Merge pull request #100770 from hpvb/command-queue-mt
...
Core: Refactor CommandQueueMT to use vararg templates for performance and maintainability
2025-01-03 00:49:02 +01:00
Rémi Verschelde
0d710da96c
Merge pull request #98554 from Calinou/add-property-hint-ranges
...
Add more property hint ranges for project settings
2025-01-03 00:47:59 +01:00
Lukas Tenbrink
b2d881a73a
Optimize `_count` by replacing a full copy with a CoW copy for the full-string count case.
2025-01-02 18:16:06 +01:00
Thaddeus Crews
e06d83860d
Style: Enforce `AllowShortFunctionsOnASingleLine`
2025-01-02 10:09:41 -06:00
HP van Braam
cccd2432c3
Refactor CommandQueueMT to use vararg templates
...
In order to make CommandQueueMT more maintainable this PR changes the
previous macro hell with variadic templates instead. This makes the
class far more explicit and will allow us to more easily change the way
the class functions in the future.
Furthermore this refactoring has allowed for some optimizations. In
particular by using std::forward to delay the decision of decaying the
type to as late as possible we are able to move the data from the
callsite into our Command buffer and later move it to the call.
In practice what this means is that compared to the old version instead
of copying values 3 times, we can now get away with 1 copy, and 1 move
for lvalues, and just 2 moves for rvalues. This saves quite a few
operations in a hot codepath.
We also now test to make sure that the amount of copies and moves are
what we expect. This way we can spot performance regressions in this
code easily.
Somewhat unscientifically, running TPS-demo by pressing enter and not
touching the controls average mspf, repeatable across many runs:
before: 6.467
after : 6.202
2025-01-02 15:35:08 +01:00
Kiro
176e5f42b2
add Static assert checks
2025-01-02 09:02:43 +01:00
Silc Lizard (Tokage) Renew
d0c421976c
Fix looking at with 180 degree arc
...
Co-authored-by: Fruitsalad <949631+fruitsalad@users.noreply.github.com>
2025-01-02 15:47:01 +09:00
Rémi Verschelde
f2d4dac92e
Thread: Re-add `<new>` include for `std::hardware_destructive_interference_size`
...
Somehow it would still build fine, but would crash when compiled with GCC 12.2
on Debian 12.
Also re-add wrongly removed Mutex include from `thread_safe.h`, where it's used
in macros.
Add IWYU pragma comments to prevent it from mistakenly flagging those as unused.
2025-01-01 22:43:42 +01:00
AThousandShips
25ecf5ec83
[Core] Fix UID encoding
...
Fixes edge case where `0` encoded as `uid://` instead of `uid://a`, and
fixes the size of the temporary buffer storing encoded UID strings.
2024-12-31 15:20:09 +01:00
Jan Haller
df66ea74d7
Fix `NodePath::slice()` incorrect behavior for subname indexing
...
Adjust slice boundaries in `NodePath` logic to correctly handle subnames.
Update test cases to reflect these changes.
2024-12-30 21:22:26 +01:00
Kiro
52ee437d7e
try Fixing Variant workaround
2024-12-29 16:35:10 +01:00
kobewi
4e48b19e1f
Add Color.from_rgba8 and deprecate Color8
2024-12-27 11:26:59 +01:00
kobewi
81b1138a7f
Fix icon UIDs in Project Manager
2024-12-26 14:54:09 +01:00
HP van Braam
46c23e1758
Don't set Variant::Type in destructor
...
When profiling Dome Keeper, I found that in physics_process a HashMap
gets cleared a lot, which ends up calling the Variant destructor.
Calling Variant::clear() dominates this operation.
By not uselessly setting the Type to NIL on destruction we save about
50% of time. This is likely because if there is a simple type in the
Variant that doesn't need destructing, but now we write when we should
just drop the Variant altogether.
Since the value of Variant::type should be unobservable after
destruction this doesn't change any outward behavior.
2024-12-25 23:40:19 +01:00
Hugo Locurcio
62c17911ea
Add more property hint ranges for project settings
...
- Tweak property hint ranges for some networking settings to ensure
the minimum values don't break the debugger entirely.
- Ensure shader time rollover is set to at least 1, as 0 causes a division by
zero to occur.
All relevant project settings are now covered by a range hint.
2024-12-23 18:22:32 +01:00
Thaddeus Crews
08d4dd7fd8
Merge pull request #100694 from Ivorforce/cowdata-destruct-graciously
...
Destruct `CowData` more graciously by avoiding accidentally exposing a half-destructed buffer.
2024-12-23 11:15:18 -06:00
Thaddeus Crews
b97c8b37f6
Merge pull request #98441 from Yelloween10/fix-modifier-mask
...
Fix incorrect `KEY_MODIFIER_MASK` value
2024-12-23 11:15:17 -06:00
Thaddeus Crews
3c304ab7cc
Merge pull request #96076 from AThousandShips/improve_null_check_core_drivers
...
[Core,Drivers] Improve use of `Ref.is_null/valid`
2024-12-23 11:14:58 -06:00
Yufeng Ying
73d85f46c9
Remove unused headers in scene.
...
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-24 00:40:09 +08:00
Rémi Verschelde
31c07776f4
Merge pull request #100683 from Ivorforce/localvector-vector-conversion-typesafe-copy
...
Make `LocalVector` -> `Vector` automatic conversion safe for non-trivial types.
2024-12-22 00:10:19 +01:00
Lukas Tenbrink
25cd923ea1
Destruct `CowData` more graciously by avoiding accidentally exposing a half-destructed buffer. This can avoid problems if any of the destructed objects tries to access the data while it's being destructed.
2024-12-21 20:01:03 +01:00
Lukas Tenbrink
0e32f3b957
Make `LocalVector` -> `Vector` automatic conversion safe for non-trivial types.
2024-12-21 10:28:57 +01:00
Rémi Verschelde
dac0b67c4d
Merge pull request #100659 from clayjohn/color-srgb-precision
...
Increase precision in `linear_to_srgb()` and `srgb_to_linear()`
2024-12-20 23:57:35 +01:00
Rémi Verschelde
c9e99291c1
Merge pull request #100622 from dsnopek/gdextension-compat-hashes
...
Rename `GDExtensionCompatHashes` to make it clear it's only for exceptional situations
2024-12-20 23:57:02 +01:00
Rémi Verschelde
119c99a8d0
Merge pull request #100193 from raulsntos/gdextension/set_class_icon
...
GDExtension: Add method to set the class icon
2024-12-20 23:56:48 +01:00
Rémi Verschelde
a11364d1e6
Merge pull request #99010 from Hilderin/embedding-game-process
...
Embed game process in editor
2024-12-20 23:56:43 +01:00
clayjohn
46ce499b6f
Increase precision in linear_to_srgb and srgb_to_linear
...
This avoids the situation where white stops being white after conversion. While maintaining as much floating point ops as possible
2024-12-20 10:49:43 -07:00
Thaddeus Crews
151e7fc687
Merge pull request #100477 from Ivorforce/cowdata-move-insert-n-remove
...
Optimize `CowData` and `LocalVector` functions `.insert` and `.remove_at` by using move semantics.
2024-12-19 20:00:20 -06:00
Thaddeus Crews
1b8a2d930f
Merge pull request #100474 from Ivorforce/cowdata-abstract-realloc
...
Abstract `CowData`'s reallocations into `_realloc` to consolidate duplicate logic.
2024-12-19 20:00:19 -06:00
Thaddeus Crews
fb8d2ee044
Merge pull request #100582 from bruvzg/fix_in_ops
...
[GDScript] Fix `Packed*Array` `OP_IN` using low precision int and float as input.
2024-12-19 20:00:06 -06:00
Thaddeus Crews
416a86f47c
Merge pull request #100434 from Ivorforce/string-copy-from-rename
...
Rename `String::copy_from` functions to their respective encodings (`parse_latin1`, `parse_wstring`, `parse_utf32`).
2024-12-19 19:59:57 -06:00
Thaddeus Crews
bf9ef5f8a5
Merge pull request #100564 from YYF233333/iwyu
...
Remove unused headers in core
2024-12-19 19:59:55 -06:00
Thaddeus Crews
92615f24e7
Merge pull request #100563 from Ivorforce/move-semantics-list
...
Add move semantics (constructor, operator=) to `List`.
2024-12-19 19:59:54 -06:00
Thaddeus Crews
0b01f3cc14
Merge pull request #100560 from Ivorforce/localvector-move-semantics
...
Add `LocalVector` move semantics (constructor and operator=).
2024-12-19 19:59:51 -06:00
Thaddeus Crews
eaa447135c
Merge pull request #95920 from Repiteo/core/initializer-list-templates
...
Core: Expand `std::initializer_list` support in container templates
2024-12-19 19:59:42 -06:00
Thaddeus Crews
a94b559f9b
Merge pull request #100483 from Ivorforce/string-name-move-semantics
...
Add move semantics (constructor, assignment) to `StringName`.
2024-12-19 19:59:34 -06:00
David Snopek
506600a560
Rename `GDExtensionCompatHashes` to make it clear it's only for exceptional situations
2024-12-19 18:08:42 -06:00
Lukas Tenbrink
8483d794ff
Abstract `CowData`'s reallocations into `_realloc` to consolidate duplicate logic.
2024-12-19 17:27:16 +01:00
Lukas Tenbrink
3564e7c231
Add `LocalVector` move semantics (constructor and operator=).
2024-12-19 15:05:05 +01:00
Lukas Tenbrink
19992e3284
Add move semantics (constructor, operator=) to `List`.
2024-12-19 15:04:15 +01:00
Kiro
06efe84bca
Remove duplicate `utf8()` calls
2024-12-19 10:15:46 +01:00
Thaddeus Crews
361e3b4fe8
Core: Expand `std::initializer_list` support
2024-12-18 18:46:59 -06:00
Hilderin
9d2a4c03be
Embedding game process in editor
2024-12-18 17:52:42 -05:00
Pāvels Nadtočajevs
eaf2d7c5b0
[GDScript] Fix `Packed*Array` `OP_IN` using low precision int and float as input.
2024-12-18 23:41:27 +02:00
Yufeng Ying
be86ce3103
Apply iwyu suggestion in core.
2024-12-19 00:43:47 +08:00
Rémi Verschelde
851d8e49e8
Merge pull request #100386 from hpvb/core-ubsan
...
Core: Fix UBSAN reports
2024-12-18 17:23:32 +01:00
HP van Braam
240f510fa7
Core ubsan fixes
...
This fixes UBSAN errors reported by running our testsuite, importing the
TPS demo, and running the TPS demo. I have tried, wherever possible, to
fix issues related to reported issues but not directly reported by UBSAN
because thse code paths just happened to not have been exercised in
these cases.
These fixes apply only to errors reported, and caused by, core/
The following things have been changed:
* Make sure there are no implicit sign changing casts in core.
* Explicitly type enums that are part of a public API such that users of
the API cannot pass in wrongly-sized values leading to potential stack
corruption.
* Ensure that memcpy is never called with invalid or null pointers as
this is undefined behavior, and when the engine is built with
optimizations turned on leads to memory corruption and hard to debug
crashes.
* Replace enum values only used as static values with constexpr static
const values instead. This has no runtime overhead. This makes it so
that the size of the enums is explicit.
* Make sure that nan and inf is handled consistently in String.
* Implement a _to_int template to ensure that all of the paths use the
same algorhithm, and correct the negative integer case.
* Changed the way the json serializer precision work, and added tests to
verify the new behavior. The behavior doesn't quite match master in
particulary for negative doubles as the original code tried to cast -inf
to an int. This then led to negative doubles losing all but one of
their decimal points when serializing. Behavior in GDScript remains
unchanged.
2024-12-18 14:31:12 +01:00
Rémi Verschelde
d328c00ad3
Merge pull request #99667 from RandomShaper/res_load_verb
...
ResourceLoader: Print load message only when actually loading
2024-12-18 09:53:06 +01:00
Pedro J. Estébanez
6740823e40
ResourceLoader: Print load message only when actually loading
2024-12-18 09:36:16 +01:00
Yelloween
0153cb8c16
Fix incorrect MODIFIER_MASK value
...
Updated key modifier mask and documented API change
Changed the old value
Changed the old value inside the .expected file
Resolved Conflicts
Moved changes to the end
2024-12-18 02:59:29 +03:00
Hugo Locurcio
7a04d85ec3
Only allow valid types in Decal, Light3D projector, PointLight2D texture and CSGMesh3D mesh
...
If an invalid type is supplied (which can still be done from a script),
a warning is printed (along with a workaround for ViewportTexture).
This also adds support for "negative" resource hints such as
"Texture2D,-ViewportTexture" to exclude one or more subclasses
from a class hint.
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2024-12-17 20:41:12 +01:00
Lukas Tenbrink
a636c04244
Optimize `CowData` and `LocalVector` functions `.insert` and `.remove_at` by using move semantics.
2024-12-17 14:10:10 +01:00
Raul Santos
69f1cc10b6
GDExtension: Add icon path to class creation info
...
Allows GDExtensions to set the icon of a class programmatically, which is useful for extensions that don't use a `.gdextension` file.
2024-12-17 08:43:12 +01:00
MJacred
40832387ce
Fix Input::remove_joy_mapping
...
Erasing a joypad mapping can invalidate other attached joypads and the fallback mapping guid
2024-12-16 20:27:33 +01:00
Thaddeus Crews
24a8c05cbd
Merge pull request #100335 from kiroxas/Improve`ResourceUID--id_to_text`Performance
...
Improve `ResourceUID::id_to_text` performance
2024-12-16 12:10:05 -06:00
Thaddeus Crews
e42c22f359
Merge pull request #100426 from Ivorforce/variant-move-constructor
...
Add move assignment and move constructor to Variant.
2024-12-16 12:09:52 -06:00
Thaddeus Crews
9c9af038d5
Merge pull request #91060 from dalexeev/code-edit-add-doc-tooltips
...
Code Editor: Add documentation tooltips
2024-12-16 12:09:45 -06:00
Thaddeus Crews
7254761a46
Merge pull request #98861 from MJacred/get_joypad_infos_on_windows
...
Get joypad's vendor ID, product ID and name on Windows for XInput devices.
2024-12-16 12:09:44 -06:00
Thaddeus Crews
a7fa0528bb
Merge pull request #100372 from Calinou/os-add-get-version-alias
...
Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number
2024-12-16 12:09:40 -06:00
Lukas Tenbrink
8c4e674770
Add move semantics (constructor, assignment) to `StringName`.
2024-12-16 19:02:52 +01:00
Rémi Verschelde
08508d2e01
Merge pull request #99700 from hpvb/scene_tree_editor_performance
...
Improve Scene Tree editor performance
2024-12-16 17:16:00 +01:00
Kiro
e4f8a7f8cf
improveParseUTF8Performance
2024-12-16 09:55:11 +01:00
MJacred
01a2726c59
Get joypad's vendor ID, product ID, and name on Windows
2024-12-15 23:59:11 +01:00
Lukas Tenbrink
df3e9291c6
Rename `String::copy_from` functions to their respective encodings (`parse_latin1`, `parse_wstring`, `parse_utf32`).
2024-12-15 21:46:50 +01:00
Lukas Tenbrink
34fa0bf3ec
Add move assignment and move constructor to Variant.
...
Add `_to_variant` helper functions to `gdvirtual.gen.inc` to work around an MSVC bug.
2024-12-15 14:38:46 +01:00
Kiro
5f401e63b5
Improve `ResourceUID::id_to_text` performance
2024-12-15 10:41:13 +01:00
Danil Alexeev
80d11500b5
Code Editor: Add documentation tooltips
2024-12-15 10:51:33 +03:00
Hugo Locurcio
928982891e
Add `OS.get_version_alias()` to return a human-readable Windows/macOS version number
...
Windows 11's major version number is actually 10.x.x, which can be confusing
if you don't know about this quirk. `OS.get_version_alias()` avoids this
by displaying the "branding" version number and the build number as a suffix,
so that individual updates can still be distinguished from each other.
On macOS, `OS.get_version_alias()` returns the version number prepended
with the version name (e.g. Sequoia for macOS 15).
On other operating systems, this returns the same value as `OS.get_version()`.
2024-12-14 18:47:50 +01:00
Rémi Verschelde
68559c4906
Merge pull request #100367 from Ivorforce/swap-move
...
Optimize `SWAP` macro by using move semantics.
2024-12-14 18:25:42 +01:00
Hilderin
4e19ab8afe
Fix connecting a signal with a double click is too difficult
...
Co-authored-by: Danil Alexeev <dalexeev12@yandex.ru>
2024-12-14 16:18:34 +03:00
Markus Sauermann
ee2930cad4
Remove temporary project conversion
...
This project conversion should be removed before the next stable release,
because it affects only projects opened during dev-builds.
2024-12-14 00:37:47 +01:00
Lukas Tenbrink
383d933f53
Optimize `SWAP` macro by using move semantics.
2024-12-13 16:19:52 +01:00
Thaddeus Crews
ba2c5c1e61
Merge pull request #100318 from dsnopek/stream-peer-extension-put-partial-data-bug
...
Fix `StreamPeerExtension::put_partial_data()` to call `_put_partial_data()`
2024-12-12 16:13:38 -06:00
Thaddeus Crews
9fba62a938
Merge pull request #100239 from Ivorforce/cowdata-move-constructor
...
Add move constructor and move assignment to `CowData`, `String`, `Char16String`, `CharString`, and `Vector`.
2024-12-12 16:13:30 -06:00
Thaddeus Crews
9c290c4c56
Merge pull request #100033 from Daylily-Zeleen/daylily-zeleen/optimize_callable_to_string
...
Optimize callable's stringify text.
2024-12-12 16:13:23 -06:00
HP van Braam
6f7525c396
Improve Scene Tree editor performance
...
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.
Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.
In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.
We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.
SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.
There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.
This fixes #83460
I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.
2024-12-12 22:47:05 +01:00
David Snopek
8c01fc2274
Fix `StreamPeerExtension::put_partial_data()` to call `_put_partial_data()`
2024-12-12 08:31:12 -06:00
Rémi Verschelde
7b15c0622e
Merge pull request #100295 from Ivorforce/string-builder-inplace
...
Optimize `StringBuilder.as_string` by constructing the string in-place and skipping unnecessary checks.
2024-12-12 14:10:21 +01:00
Rémi Verschelde
321bd35317
Merge pull request #100294 from Ivorforce/count-no-realloc
...
Optimize `String.count` and `String.countn` by avoiding repeated reallocations.
2024-12-12 14:10:17 +01:00
Rémi Verschelde
819db4daf5
Merge pull request #99559 from mayoff/OperatorEvaluatorModNZ-ptr_evaluate
...
Fix `Variant` modulo operation
2024-12-12 14:09:59 +01:00
Rémi Verschelde
1e1e862204
Merge pull request #98100 from BlueCube3310/image-cleanup-more
...
Image: More cleanup and reduced code duplication
2024-12-12 14:09:49 +01:00
BlueCube3310
335077a03f
Image: More cleanup and reduced code duplication.
2024-12-12 11:52:59 +01:00
Lukas Tenbrink
76af9537ed
Optimize `StringBuilder.as_string` by constructing the string in-place and skipping unnecessary checks.
...
Co-authored-by: YYF233333 <nbyyf2002@mail.ustc.edu.cn>
2024-12-12 01:35:02 +01:00
Thaddeus Crews
c5e6f6276b
Merge pull request #100110 from DarioSamo/rd-get-data-async
...
Implement `RD::buffer_get_data_async()` and `RD::texture_get_data_async()`
2024-12-11 17:35:29 -06:00
Lukas Tenbrink
ef3eecd34e
Optimize `String.count` and `String.countn` by avoiding repeated reallocations.
2024-12-12 00:28:13 +01:00
Dario
054891de04
Implement buffer_get_data_async and texture_get_data_async.
2024-12-11 11:55:23 -08:00
Rémi Verschelde
c2e4ae782a
Merge pull request #100235 from akien-mga/revert-97303
...
Revert "Avoid duplicating signals from scene instances into packed scenes"
2024-12-11 18:48:18 +01:00
Lukas Tenbrink
57073ba14e
Add move constructor and move assignment to CowData, String, Char16String, CharString and Vector.
2024-12-11 15:52:15 +01:00
Rémi Verschelde
44dfa7e710
Merge pull request #99895 from mihe/jolt-physics
...
Add Jolt Physics as an alternative 3D physics engine
2024-12-11 14:53:57 +01:00
Mikael Hermansson
d470c2ac6a
Add Jolt Physics as an alternative 3D physics engine
...
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com>
2024-12-11 13:57:25 +01:00
Thaddeus Crews
ba66c478c0
Merge pull request #100041 from Ivorforce/optimize-string-similarity
...
Optimize String.similarity by avoiding allocation for bigrams.
2024-12-10 14:16:00 -06:00
Thaddeus Crews
3ef8e835c2
Merge pull request #99775 from Ivorforce/string-builder-template-append
...
Optimize StringBuilder by using `LocalVector` instead of `Vector`.
2024-12-10 14:15:58 -06:00
Thaddeus Crews
8f16f864a6
Merge pull request #99765 from dalexeev/core-fix-json-from-to-native
...
Core: Fix `JSON.{from,to}_native()` issues
2024-12-10 14:15:53 -06:00
Thaddeus Crews
d108d4f29e
Merge pull request #100147 from esainane/vector-victor
...
Remove apparent contradiction in vector.h header
2024-12-10 14:15:52 -06:00
Thaddeus Crews
78215f3cc6
Merge pull request #100132 from Ivorforce/string-compile-time-strlen
...
Optimize String construction from statically known strings by evaluating `strlen` at compile-time.
2024-12-10 14:15:49 -06:00
Yufeng Ying
bdf24924e6
[Codestyle] Merge identical code piece.
2024-12-11 00:48:00 +08:00
Rémi Verschelde
2153a60425
Revert "Avoid duplicating signals from scene instances into packed scenes"
...
This partially reverts commit 8a42e3d3ef .
Comment improvements and the test case were kept, with one part commented out.
2024-12-10 10:42:58 +01:00
Sai Nane
66b7d5f1b5
Remove apparent contradiction in vector.h header
...
3205a92ad8 was a major commit which removed `PoolVector`, and replaced
most references to `PoolVector` with `Vector` instead. In most cases,
this was appropriate, given that `PoolVector` was being replaced with
`Vector`, as an effective generalist in 64-bit address space layouts.
However, vector.h itself was left with an artifact advising the reader
to use `Vector` instead of `Vector` for large arrays. While this led
to a fascinating deep dive, and hopefully improved some of the
documentation along the way, it's probably best to clean this up for
the next person.
2024-12-10 01:51:30 +00:00
Lukas Tenbrink
a3f48f7047
Optimize String construction from statically known strings allowing `strlen` to be evaluated at compile time, where possible.
2024-12-09 21:47:28 +01:00
Thaddeus Crews
4b1a51d3e3
Merge pull request #100075 from demolke/simplify
...
Fix handling of leading `..` in simplify_path
2024-12-09 14:33:34 -06:00
Thaddeus Crews
5b312d0e59
Merge pull request #99816 from Ivorforce/string-copy-from-optimizations
...
Optimize `String::copy_from` and `String::copy_from_unchecked` implementations, improving String allocation speed.
2024-12-09 14:33:33 -06:00
Thaddeus Crews
da8b9ba1ff
Merge pull request #99168 from RandomShaper/even_better_spinlock
...
SpinLock: Overhaul false sharing prevention
2024-12-09 14:33:31 -06:00
Thaddeus Crews
7d4db793e6
Merge pull request #100044 from Yelloween10/fix-input-event-metadata
...
Fix discarded input event metadata in `xformed_by`
2024-12-09 14:33:27 -06:00
Thaddeus Crews
473c28b1ad
Merge pull request #98118 from bruvzg/escape_colors
...
Add support for 24-bit color escape sequences, simplify `print_rich` BBCode parsing.
2024-12-09 14:33:25 -06:00
Thaddeus Crews
a607bca2fd
Merge pull request #100024 from Ivorforce/optimize-string-single-char
...
Optimize string single char contains calls.
2024-12-09 14:33:24 -06:00
Thaddeus Crews
2654dbaf5c
Merge pull request #99984 from KoBeWi/negative_diff_but_it's_deleting_whole_files
...
Move singleton StringName definitions to header
2024-12-09 14:33:11 -06:00
Lukas Tenbrink
8df2dbe2f6
Optimize StringBuilder append for static strings, and as_string().
2024-12-08 16:39:25 +01:00
Lukas Tenbrink
875b48366c
Optimize String.similarity by avoiding allocation for bigrams.
2024-12-08 13:28:40 +01:00
Lukas Tenbrink
e1c42392c2
Improve string copy_from and copy_from_unchecked implementations, by making use of caller contracts and language spec (NULL termination and casts).
2024-12-07 01:41:25 +01:00
Lukas Tenbrink
b5c31ebb41
Add contains_char() for single-character 'contains' calls.
2024-12-06 20:23:35 +01:00
Yelloween
98a23136d5
Fix missing event metadata in _input() with Input.parse_input_event()
...
Use merge_meta_from() for metadata copying.
Fixed include order
Removed unnecessary line
2024-12-06 22:08:16 +03:00
kobewi
d3c9bee653
Move singleton StringName definitions to header
2024-12-06 13:43:31 +01:00
demolke
964e2b3a9e
Fix handling of leading `..` in simplify_path
...
Prior to this `..\..\texture.png` was incorrectly simplified to `texture.png`
2024-12-06 07:53:55 +01:00
Thaddeus Crews
45734bd451
Merge pull request #99817 from Ivorforce/strlen-char32_t
...
Use `strlen()` 3 times instead of custom length check implementations in ustring
2024-12-05 14:12:21 -06:00
Thaddeus Crews
06cce0e81a
Merge pull request #100016 from Ivorforce/camelcase-to-underscore-rolling-cache
...
Optimize `_camelcase_to_underscore` (and thus `String.capitalize`)
2024-12-05 14:11:59 -06:00
Thaddeus Crews
3a948abdce
Merge pull request #100015 from Ivorforce/is-valid-filename-cache
...
Optimize `String::is_valid_filename()` and `String::validate_filename()`
2024-12-05 14:11:57 -06:00
Thaddeus Crews
9951743adf
Merge pull request #97822 from stdmnpkg/loongarch
...
Add loongarch64 support for Linux/*BSD
2024-12-05 14:11:44 -06:00
Student Main
e0693f8ad8
Add loongarch64 support
2024-12-06 00:18:26 +08:00
aaronp64
b19ebbacb2
Improve ContainerTypeValidate performance for object types
...
Use const reference for class name instead of copying, to avoid some extra reference counting overhead
2024-12-05 11:16:43 -05:00
Daylily-Zeleen
614a51f293
Optimize callable's stringify text.
2024-12-05 14:24:39 +08:00
Lukas Tenbrink
8d82933c7c
Optimize _camelcase_to_underscore (and thus String.capitalize) by using a rolling cache of character attributes, instead of re-computing each iteration.
2024-12-04 18:39:38 +01:00
Thaddeus Crews
451fd7a436
Merge pull request #99540 from dalexeev/core-dont-gen-json-uid-files
...
Core: Do not generate `*.uid` files for JSON, certificates, and translations
2024-12-04 11:02:09 -06:00
Thaddeus Crews
ab58a339df
Merge pull request #99712 from KoBeWi/bug_spawner_spawns_new_bugs_to_fix
...
Fix UID support in MultiplayerSpawner
2024-12-04 11:02:02 -06:00
Lukas Tenbrink
0d2e13bcb8
Optimize is_valid_filename and validate_filename by caching invalid filename characters, instead of re-splitting each call.
2024-12-04 17:54:11 +01:00
Danil Alexeev
b91bacb43a
Core: Do not generate `*.uid` files for JSON, certificates, and translations
2024-12-04 14:26:10 +03:00
kobewi
67b95f341e
Fix UID support in MultiplayerSpawner
2024-12-03 22:11:43 +01:00
Thaddeus Crews
44cda51110
Merge pull request #98812 from bruvzg/macos_bundles_as_file
...
[macOS] Handle bundles as files in the embedded file dialogs.
2024-12-03 14:41:07 -06:00
Thaddeus Crews
1719f8ed3d
Merge pull request #99834 from kiroxas/passLengthToParseUTF8
...
Ensure `parse_utf8` has length of string passed in when available
2024-12-03 14:41:06 -06:00
Thaddeus Crews
156bc92282
Merge pull request #98397 from adamscott/add-tmp-support
...
Add temp utilities (alias `OS::get_temp_dir()`, `FileAccess::create_temp()`, and `DirAccess::create_temp()`)
2024-12-03 14:40:59 -06:00
Thaddeus Crews
a135a6478a
Merge pull request #98383 from RandomShaper/deprecate_unsafe_th_rend
...
Deprecate the pointless unsafe threading model for rendering
2024-12-03 14:40:56 -06:00
bruvzg
d5e599f77e
[macOS] Handle bundles as files in the embedded file dialogs.
2024-12-03 12:41:52 +02:00
Adam Scott
1b3e483899
Add file and dir temporary utilities
...
Co-authored by @Alex2782 for the Android bindings.
Many thanks to the reviewers also.
Co-authored-by: Alex <alex.hart.278@gmail.com>
2024-12-02 12:08:14 -05:00
Rémi Verschelde
acdffd0a14
Merge pull request #99864 from HuntJSparra/server-features-regression
...
Fix `OS::has_feature()` skipping custom features
2024-12-02 15:51:56 +01:00
Rémi Verschelde
d7515dddaa
Merge pull request #99815 from Ivorforce/string-name-not-equal-inline
...
Move StringName `!=` operator to the header file to make it inlineable.
2024-12-02 15:51:43 +01:00
Lukas Tenbrink
2b39314461
Abstract the implementation of 3 ustring string length checks with strlen, adding an implementation for char32_t.
2024-12-02 15:19:20 +01:00
rune-scape
d58b2e879f
Get rid of easily removable uses of const_cast
2024-12-01 17:50:13 -08:00
Lukas Tenbrink
a47d29cf11
Move StringName != to the header file to make it inlineable.
2024-12-01 19:50:34 +01:00
Kiro
83d4bde0a2
When calling code has length of string, pass it to parse_utf8
2024-12-01 08:31:22 +01:00
Hunt J. Sparra
ba992ed22f
Fix early exit once has_server_feature_callback is set; remove server feature warning due to consistent "fallthrough" features (e.g., OS-specific features)
2024-11-29 23:34:52 -05:00
Rémi Verschelde
9048776457
Merge pull request #99751 from bruvzg/dir_init
...
Add `std::initializer_list` constructor for Dictionary.
2024-11-29 22:51:17 +01:00
bruvzg
a4b17e7852
[FileAccess] Return error codes from `store_*` methods.
2024-11-29 23:22:31 +02:00
Rémi Verschelde
56a7dba10b
Merge pull request #99799 from akien-mga/fix-typos
...
Fix various typos and code style issues
2024-11-29 22:02:53 +01:00
Rémi Verschelde
b1d65e4ed8
Merge pull request #99777 from Ivorforce/string-strlen-repeat-calls
...
String: Don't repeat calls to `strlen` in `split`, and make `splitter_length` const in `get_slice`.
2024-11-29 22:02:47 +01:00
Rémi Verschelde
f4f6f5fb55
Merge pull request #99537 from BlueCube3310/betsy-bc1-bc5
...
Betsy: Add BC3 and BC5 support
2024-11-29 22:02:06 +01:00
cixil
8a42e3d3ef
Avoid duplicating signals from scene instances into packed scenes
2024-11-29 18:29:08 +01:00
Pāvels Nadtočajevs
54945c4d28
Add std::initializer_list constructor for Dictionary.
2024-11-29 14:12:40 +02:00
Danil Alexeev
bd1a35ce9e
Core: Fix `JSON.{from,to}_native()` issues
2024-11-29 12:43:06 +03:00
Rémi Verschelde
88e81ee730
Fix various typos and code style issues
2024-11-28 17:40:42 +01:00
Lukas Tenbrink
884cbb5333
Don't repeat calls to strlen in split, and make splitter_length const in get_slice.
2024-11-28 01:55:48 +01:00
Thaddeus Crews
8b5f181d86
Merge pull request #90723 from Calinou/textedit-autocompletion-always-replace-if-not-shift
...
Make TextEdit autocompletion replace word unless Shift is held
2024-11-27 10:47:24 -06:00
BlueCube3310
88ffe07de9
Betsy: Add BC3 and BC5 support
2024-11-27 12:27:05 +01:00
Thaddeus Crews
13d59b28c1
Merge pull request #99563 from akien-mga/fix-projection-stringification
...
Fix stringification of Projection
2024-11-26 13:04:58 -06:00
Thaddeus Crews
0045b1a513
Merge pull request #98862 from HuntJSparra/early-projsettings-registration
...
Register Engine, OS, ProjectSettings, and Time singletons in time for for `INITIZATION_LEVEL_CORE`
2024-11-26 13:04:51 -06:00
Thaddeus Crews
7f3242a7e8
Merge pull request #99201 from Ivorforce/variant-get-contents-ptr
...
Add GDExtension `variant_get_ptr_internal_getter`, facilitating `VariantGetInternalPtr`-like behavior in GDExtension
2024-11-26 13:04:40 -06:00
Lukas Tenbrink
ffd4de67d0
Add variant_get_ptr_internal_getter to gdextension_interface.h. The function returns functions to retrieve a pointer to a Variant's internal value. This enables GDExtensions to implement functionality similar to VariantGetInternalPtr, to access Variant internal values directly.
2024-11-26 02:19:03 +01:00
Rémi Verschelde
f2f48aaf36
Fix stringification of Projection
2024-11-25 21:10:32 +01:00
Thaddeus Crews
9b5c7e9efa
Merge pull request #99545 from KoBeWi/Vector4.0
...
Fix stringification of Vector4
2024-11-25 13:22:33 -06:00
Thaddeus Crews
ea3154a0d4
Merge pull request #99424 from dalexeev/core-fix-builtin-enum-const-binds
...
Core: Fix built-in enum constant bindings
2024-11-22 14:54:31 -06:00
Thaddeus Crews
37305e40bc
Merge pull request #95711 from TokageItLab/warn-oneshot-prop
...
Add hint for oneshot property & warning when it will be updated continuously by Force Continuous in `AnimationMixer`
2024-11-22 14:54:30 -06:00
Thaddeus Crews
dcb59f0e7e
Merge pull request #99548 from Repiteo/style/clang-format-19-options
...
Style: Add 19.1.0 LLVM options to `.clang-format`
2024-11-22 14:54:29 -06:00
Thaddeus Crews
514d73affc
Merge pull request #99416 from adamscott/set-thread-count-for-single-threaded
...
Force `get_thread_count()` to `1` if single threaded
2024-11-22 14:54:28 -06:00
Thaddeus Crews
e7b11d1c99
Merge pull request #99527 from RandomShaper/fix_threaded_trans
...
Make loading translations from threads safe
2024-11-22 14:54:26 -06:00
Thaddeus Crews
c35e4c41d2
Merge pull request #97716 from pafuent/add_half_precision_floating_point_to_stream_peer
...
Add half precision floating point support to `StreamPeer` and `FileAccess`
2024-11-22 14:54:19 -06:00
kobewi
e210313045
Fix stringification of Vector4
2024-11-22 21:44:30 +01:00
Rob Mayoff
daa665c4cb
fix copy/paste error ( fixes #99518 )
...
Replace erroneous use of `/` with `%`.
2024-11-22 13:21:02 -06:00
Thaddeus Crews
e8a4b45ce4
Style: Add 19.1.0 LLVM options to `.clang-format`
2024-11-22 09:24:32 -06:00
Danil Alexeev
03b05cf9ac
Core: Fix built-in enum constant bindings
2024-11-22 14:03:21 +03:00
Pedro J. Estébanez
7a25173ff4
Make loading translations from threads safe
2024-11-22 09:44:07 +01:00
Thaddeus Crews
f952bfe998
Merge pull request #98972 from dbnicholson/standardize-add-defaults
...
Expose `TranslationServer::standardize_locale` `add_default` param publicly
2024-11-21 17:57:01 -06:00
Dan Nicholson
6f4fadf65d
Expose standardize_locale add_default param publicly
...
Comparing locales can have surprising outcomes since it standardizes
locales with defaults. For example, zh and zh_CN result in an exact
match since the defaults change them both to zh_Hans_CN. Expose the
add_default parameter publicly with a default of false so the fully
standardized locale can be inspected.
2024-11-21 16:50:31 -07:00
Hunt J. Sparra
48fbe4172b
Register Engine, OS, ProjectSettings, and Time early.
2024-11-21 18:09:03 -05:00
Pedro J. Estébanez
f79b972d0d
ResourceLoader: Report appropriate error code when no suitable loader is found
2024-11-21 13:52:16 +01:00
Rémi Verschelde
9e6098432a
Merge pull request #99469 from akien-mga/revert-97370
...
Revert "ResourceLoader: Report error if resource type unrecognized"
2024-11-20 17:03:26 +01:00
Rémi Verschelde
cfef79415b
Merge pull request #99449 from Sauermann/fix-revert-device-id-clash
...
Revert "Fix `InputEvent` device id clash" and add a compatibility function
2024-11-20 17:03:23 +01:00
Rémi Verschelde
23fc8e22a3
Merge pull request #95303 from EIREXE/inverted_composer
...
Fix `Projection::invert` for orthographic projection
2024-11-20 17:03:03 +01:00
Rémi Verschelde
219b14b905
Revert "ResourceLoader: Report error if resource type unrecognized"
...
This reverts commit fe21913ee8 .
2024-11-20 16:50:30 +01:00
Markus Sauermann
bc5e2f9b96
Revert "Fix InputEvent device id clash" and add a compatibility function
...
This reverts commit 916d480686 .
Revert "Fix InputEvent crash when opening project"
This reverts commit abb9c0f171 .
Introduce a compatibility function for projects affected by the
device id clash reversal
Since the reverted PR introduced changes in the project.godot
file, it seems prudent to introduce a compatibility function for
such affected projects.
2024-11-20 09:18:55 +01:00
Adam Scott
4988fa1ece
Force `get_thread_count()` to `1` if single threaded
2024-11-18 22:27:17 -05:00
David Snopek
2599df3b8a
GDExtension: Fix method binds not saying if they are varargs
2024-11-18 13:19:22 -06:00
Thaddeus Crews
7ac9d7fec9
Merge pull request #99304 from emanvidmaker/Update-gamecontrollerdb.txt-2024
...
Sync controller mappings DB with SDL2 community repo [Nov 2024]
2024-11-18 09:23:47 -06:00
Thaddeus Crews
0dda6a974c
Merge pull request #99286 from KoBeWi/uid_in_a_path_factory
...
Support uid:// in more places
2024-11-18 09:23:44 -06:00
Thaddeus Crews
80e73b0dca
Merge pull request #98483 from timothyqiu/pack-dir-exists
...
`DirAccessPack`: Fix `file_exists` and `dir_exists` in exported projects
2024-11-18 09:23:37 -06:00
Álex Román
02b2efc668
Fix Projection::invert on orthogonal projections and others.
...
Fixes #68878 , specially when using orthographic projection.
Also adds some tests.
2024-11-18 16:13:04 +01:00
A Thousand Ships
68f638cf02
Use `(r)find_char` instead of `(r)find` for single characters
2024-11-17 10:02:18 +01:00
kobewi
3b6705a641
Support uid:// in more places
2024-11-16 21:43:18 +01:00
Emanuel Acosta Gonzalez (emanvidmaker)
f2d58f5d76
Sync controller mappings DB with SDL2 community repo [Nov 2024]
...
Synced with cfc2bffe0a
2024-11-15 21:56:25 -04:00
kobewi
0dabcd9941
Resource UID fixes and improvements
2024-11-14 16:37:54 +01:00
Pedro J. Estébanez
a46ea9d064
Deprecate the pointless unsafe threading model for rendering
2024-11-14 10:43:29 +01:00
Thaddeus Crews
1627912d11
Merge pull request #98918 from bruvzg/pck_enc_iv
...
Allow setting custom initialization vector for FileAccessEncrypted. Add export setting to set static seed for PCK encryption initialization vectors.
2024-11-13 08:34:31 -06:00
Thaddeus Crews
8fd98b69d2
Merge pull request #99135 from Meorge/fix-unresponsive-axis-value
...
Replace default deadzone magic number with named constant and fix `InputEventJoypadMotion::set_axis_value` unresponsiveness
2024-11-13 08:34:10 -06:00
Thaddeus Crews
370c692bcb
Merge pull request #98706 from Nazarwadim/fix_capture_cache_was_not_cached
...
Fix `capture_cache.animation` was not cached
2024-11-13 08:33:54 -06:00
Pedro J. Estébanez
a5caeeb664
SpinLock: Overhaul false sharing avoidance
2024-11-13 12:09:45 +01:00
Pāvels Nadtočajevs
93a21c3efc
Fix PackedData::has_path() using wrong path format.
2024-11-13 09:50:10 +02:00
bruvzg
45593d45b3
Allow setting custom initialization vector for FileAccessEncrypted. Add export setting to set static seed for PCK encryption initialization vectors.
2024-11-13 08:16:12 +02:00
Thaddeus Crews
4d4353179e
Merge pull request #97218 from wenqiangwang/local_debuggger_expr_evalulation
...
Add support for `print` command in local (command line `-d`) debugger
2024-11-12 12:13:13 -06:00
Thaddeus Crews
179321a0a3
Merge pull request #91201 from bruvzg/con_type
...
[OS] Add functions to determine standard I/O device type.
2024-11-12 12:13:12 -06:00
Thaddeus Crews
cc6ee3e956
Merge pull request #98713 from dalexeev/core-fix-callable-get-bound-arguments
...
Core: Fix `Callable.get_bound_arguments{,_count}()` return incorrect data
2024-11-12 12:13:04 -06:00
Thaddeus Crews
ebf49317a2
Merge pull request #97923 from kisg/translation_server_siof_fix
...
Make TranslationServer singleton variable inline.
2024-11-12 12:13:01 -06:00
Malcolm Anderson
829dade53b
Replace default deadzone magic number with named constant
2024-11-12 10:11:52 -08:00
Thaddeus Crews
8fd672cd87
Merge pull request #98120 from dalexeev/core-typed-dicts-bin-serialization
...
Core: Add typed dictionary support for binary serialization
2024-11-12 09:28:00 -06:00
Thaddeus Crews
27b394c52a
Merge pull request #98743 from dbnicholson/improve-compare-locales
...
Improve locale comparison
2024-11-12 09:27:54 -06:00
Thaddeus Crews
d3c8e4ed5d
Merge pull request #98084 from BlueCube3310/image-cleanup-v2
...
Clean up Image
2024-11-12 09:27:50 -06:00
Thaddeus Crews
1cbe9715ea
Merge pull request #98969 from Faless/net/split_sockets
...
[Net] Split Unix/Windows NetSocket implementation
2024-11-12 09:27:40 -06:00
Dan Nicholson
2dd409fd70
Improve locale comparison
...
Since 9456454109 , country specific locales are always preferred over
country-less locales even when the OS locale country doesn't match. For
example, running the Godot editor with locale es_ES will result in the
es_AR locale being chosen even though the es locale would be better.
The change happened because the score of the es_AR locale and the es
locale are the same when comparing to es_ES. Change this by parsing
locale strings into a Locale structure and decreasing the score when
script, country or variant are set in both but not matched. For the
es_ES case, this causes the es_AR score to be decreased since the
countries don't match. On the other hand, the es locale is not decreased
since it doesn't specify a country.
2024-11-12 06:06:50 -07:00
Pablo Andres Fuente
eb86670f94
Add half precision floating point support to `StreamPeer`
...
Closes godotengine/godot-proposals#5983
Adds put/get methods to `StreamPeer` that handles half precision
floating point values.
Adds endode/decode half precision floating point to `marshalls`.
Adds `get_half` and `store_half` to `FileAccess`
Co-Authored-By: "Alfonso J. Ramos" <theraot@gmail.com>
2024-11-12 08:46:52 -03:00
Danil Alexeev
9ba098b670
Core: Add typed dictionary support for binary serialization
2024-11-12 10:18:56 +03:00
Thaddeus Crews
6c4c61f1b2
Merge pull request #98547 from timothyqiu/loaded-locales-set
...
Fix duplicated entries in `TranslationServer::get_loaded_locales()`
2024-11-11 14:18:40 -06:00
Thaddeus Crews
2ed6d12652
Merge pull request #97363 from reduz/deterministic-gen-suberesources-id
...
Allow passing UID to importer
2024-11-11 14:18:30 -06:00
Thaddeus Crews
c8ff788052
Merge pull request #96590 from reduz/list-directory
...
Provide a reliable way to see original resources in a directory
2024-11-11 14:18:28 -06:00
Thaddeus Crews
d76fbb7a40
Merge pull request #97356 from reduz/pck-file-removal
...
Add ability for PCK patches to remove files
2024-11-11 14:18:27 -06:00
Thaddeus Crews
2430b7f9b4
Merge pull request #97352 from reduz/uids-everywhere
...
Universalize UID support in all resource types
2024-11-11 14:18:25 -06:00
Thaddeus Crews
f233d186ef
Merge pull request #93885 from dalexeev/core-fix-freed-object-booleanization
...
Core: Fix `Freed Object` booleanization
2024-11-11 14:18:18 -06:00
Thaddeus Crews
9be806aef1
Merge pull request #92986 from Repiteo/core/ref-instantiate-integration
...
Core: Integrate Ref `instantiate` where possible
2024-11-11 14:18:15 -06:00
Thaddeus Crews
30d87229ed
Merge pull request #82845 from Hysterelius/master
...
Color: Expose OKHSL properties
2024-11-11 14:18:04 -06:00
Thaddeus Crews
bb3d5ef47c
Merge pull request #99078 from DarkMessiah/fix_callables_compare
...
Fix comparison of callables
2024-11-11 14:17:56 -06:00
Hysterelius
2126df2dfd
Color: Expose OKHSL properties
2024-11-11 20:41:57 +01:00
Stanislav Labzyuk
824ddeea3f
Fix comparison of callables
2024-11-11 17:15:52 +01:00
Juan
2ac562cdf8
Add ability for PCK patches to remove files
...
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2024-11-11 16:34:37 +01:00
Juan
d57846087b
Universalize UID support in all resource types
...
Ensures all resource types support UIDs in a project.
This is required to fix:
* Scripts and many other resource types can't be referenced by UID and when refactored the references are lost.
* Path export properties can't use UID for unsupported types.
* Refactoring problems when files are moved outside the editor (this PR effectively fixes it).
* Editor properly refreshing paths if they changed externally while opened (as example, git update).
This needs to be addressed in a subsequent PR, but this one effectively sets the prerequisites.
Resource types that do not support UID will get a .uid file appended to them (this includes .gd, .gdshader, .gdextension, etc. files).
2024-11-11 15:59:56 +01:00
Juan
fe34c45d2a
Allow passing UID to importer
...
This helps, for importers spitting out new resources to the res://
filesystem to actually hash them to generate deterministic UIDs.
This PR also fixes the determinism for translations.
2024-11-11 15:22:42 +01:00
Marcus Paulsson
4db07a19d0
fixed empty hex bug
...
formatting
2024-11-11 12:42:12 +01:00
Thaddeus Crews
8d1462c748
CI: Update Linux runners to Ubuntu 24.04
2024-11-10 14:05:27 -06:00
Thaddeus Crews
925b690c98
Core: Integrate `Ref::instantiate` where possible
2024-11-10 12:41:26 -06:00
Thaddeus Crews
c4a52e1ade
Merge pull request #98809 from bruvzg/mac_gde_libs_non_uni
...
[GDExtension] Improve macOS library loading/export.
2024-11-10 12:13:06 -06:00
Thaddeus Crews
63838c936c
Merge pull request #98278 from a-johnston/fuzzy-search-rebase
...
Add fuzzy string matching to quick open search
2024-11-10 12:12:56 -06:00
Thaddeus Crews
155f94adc0
Merge pull request #97370 from RandomShaper/refix_rl_not_found
...
ResourceLoader: Report error if resource type unrecognized
2024-11-10 12:12:51 -06:00
Thaddeus Crews
f3294e59e1
Merge pull request #98891 from Faless/debugger/game_view_settings
...
[Debugger] Better settings configuration for RuntimeNodeSelect and Window quit
2024-11-10 12:12:46 -06:00
Thaddeus Crews
7d31e16686
Merge pull request #86600 from nikitalita/fix-missing-resources
...
Fix `MissingResource` properties being stripped on save
2024-11-10 12:12:44 -06:00
Thaddeus Crews
01ad56da38
Merge pull request #85167 from RandomShaper/good_spinlock
...
Enhance SpinLock
2024-11-10 12:12:36 -06:00
Thaddeus Crews
90ce26a27b
Merge pull request #94889 from rune-scape/no-const-list-erase
...
Remove const_cast in `List::erase`
2024-11-10 12:12:34 -06:00
Thaddeus Crews
323b2d53d7
Merge pull request #98963 from RandomShaper/fix_classdb_deadlock
...
Fix deadlocks related to ClassDB queries about global classes
2024-11-10 12:12:24 -06:00
Silc Lizard (Tokage) Renew
761a20f7a7
Add hint for oneshot & warning when it will be updated continuously
2024-11-11 01:12:45 +09:00
Fabio Alessandrelli
0c620b29cd
[Net] Split Unix/Windows NetSocket implementation
2024-11-10 16:13:50 +01:00
Pedro J. Estébanez
56bdef9f6f
Fix deadlocks related to ClassDB queries about global classes
...
`ClassDB::can_instantiate()` and other reflection methods deadlock if the type is an script global class, when such script indirectly uses a not-yet-registered class. The reason is the `ClassDB` read lock is still held when invoking the `ResourceLoader` to load the class script, which may in turn need to lock for writing (for the class registration).
In particular, this happens with some types related to animation tree, that aren't registered at engine startup, but can happen with others, especially ones from the user. Registration statements are also added for the animation-related types that were lacking them.
2024-11-08 18:15:58 +01:00
rune-scape
a47daa0a44
Avoid const_cast in List::erase by requiring mutable elements
2024-11-08 00:10:08 -08:00
Pedro J. Estébanez
360ed2b00d
Enhance SpinLock
2024-11-08 08:06:07 +01:00
Pedro J. Estébanez
95c6a24795
Add a utility cache line size constant
2024-11-08 08:06:01 +01:00
Thaddeus Crews
671d6e3230
Merge pull request #98150 from hunterloftis/fix-default-import-threaded
...
Fix freeze on non-thread-safe custom importers
2024-11-07 12:36:20 -06:00
Fabio Alessandrelli
7cd850b909
[Debugger] Move quit shortcut configuration to the SceneDebugger
2024-11-07 15:03:17 +01:00
bruvzg
76164c2aa9
[OS] Add functions to determine standard I/O device type.
2024-11-06 13:33:38 +02:00
nikitalita
95d2909474
Fix missing resource properties being dropped on save
2024-11-05 11:53:29 -06:00
Danil Alexeev
e379cc76e5
Core: Fix `Callable.get_bound_arguments{,_count}()` return incorrect data
2024-11-04 22:41:56 +03:00
Thaddeus Crews
bb5f390fb9
Style: Apply `clang-tidy` fixes (superficial)
...
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
Thaddeus Crews
89a311205f
Style: Apply `clang-tidy` fixes
...
• `modernize-use-default-member-init` and `readability-redundant-member-init`
• Minor adjustments to `.clang-tidy` to improve syntax & remove redundancies
2024-11-04 12:11:06 -06:00
Pedro J. Estébanez
fe21913ee8
ResourceLoader: Report error if resource type unrecognized
...
Co-authored-by: Summersay415 <summersay415@gmail.com>
2024-11-04 09:49:37 +01:00
bruvzg
2d66988f99
[GDExtension] Improve macOS library loading/export.
2024-11-04 09:28:30 +02:00
BlueCube3310
80a9c0d569
Clean up Image
2024-11-01 21:32:16 +01:00
A Thousand Ships
ec650a2f09
[Core,Drivers] Improve use of `Ref.is_null/valid`
...
Use `is_null` over `!is_valid` and vice versa.
2024-11-01 16:50:11 +01:00
Thaddeus Crews
c6c464cf9a
Merge pull request #98679 from Bromeon/qol/rename-static-call
...
Rename `ClassDB::class_call_static_method` -> `class_call_static`
2024-10-31 20:14:44 -05:00
Thaddeus Crews
363c0b5fec
Merge pull request #47502 from KoBeWi/add_0
...
Always add decimal when converting float to string
2024-10-31 20:14:39 -05:00
Thaddeus Crews
163bf94d04
Merge pull request #98091 from AThousandShips/improve_err_prints_core
...
[Core] Improve error messages with `vformat`
2024-10-31 20:14:36 -05:00
Nazarii
d1dc7afdd5
Fix `capture_cache.animation` was not cached
2024-10-31 19:26:02 +02:00
Jan Haller
a025ceddc0
Rename ClassDB::class_call_static_method -> class_call_static
2024-10-30 19:07:28 +01:00
A Thousand Ships
38f9769bc6
[Core] Improve error messages with `vformat`
2024-10-30 15:55:51 +01:00
Michael Alexsander
16524a8a01
Add "Game" editor for better runtime debugging
2024-10-30 11:42:17 -03:00
Thaddeus Crews
a8931f1aa9
Merge pull request #98652 from stuartcarnie/2d_texture_state_fixes
...
2D: Fix various issues and minor performance optimisations
2024-10-29 19:25:54 -05:00
Thaddeus Crews
b8f626a0e1
Merge pull request #65962 from 4d49/format-object
...
Add `Object` support for `String.format`
2024-10-29 19:25:45 -05:00
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
Stuart Carnie
0d1d945727
2D: Fix various issues and minor performance optimisations
2024-10-30 08:36:45 +11:00
Mansur Isaev
98c89f17c4
Add `Object` support for `String.format`
2024-10-29 22:27:33 +01:00
Clay John
748f4079e3
Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebased
...
Add Swappy & Pre-Transformed Swapchain
2024-10-29 12:34:40 -07:00
Matias N. Goldberg
aaa0e2fddf
Add Swappy & Pre-Transformed Swapchain
...
- Adds Swappy for Android for stable frame pacing
- Implements pre-transformed Swapchain so that Godot's compositor is in
charge of rotating the screen instead of Android's compositor
(performance optimization for phones that don't have HW rotator)
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
Changes from original PR:
- Removed "display/window/frame_pacing/android/target_frame_rate" option
to use Engine::get_max_fps instead.
- Target framerate can be changed at runtime using Engine::set_max_fps.
- Swappy is enabled by default.
- Added documentation.
- enable_auto_swap setting is replaced with swappy_mode.
2024-10-28 18:55:37 -03: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
edad871a2d
Merge pull request #98425 from darksylinc/matias-breadcrumbs-race-fix
...
Fix race conditions in breadcrumbs
2024-10-25 13:04:12 -05:00
Thaddeus Crews
d3298fe738
Merge pull request #98395 from Repiteo/core/char-range-utils-update
...
Core: Update `char_range.inc` to Unicode 16
2024-10-25 13:04:07 -05:00
Thaddeus Crews
02088ab44c
Merge pull request #74714 from dalexeev/expose-bresenham-line
...
Expose `Geometry2D.bresenham_line()` method
2024-10-25 13:04:05 -05: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
Danil Alexeev
9f0ae21095
Expose `Geometry2D.bresenham_line()` method
...
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2024-10-25 10:27:55 +03:00
Clay John
f83a27353f
Merge pull request #98318 from alexkar598/mouse_emulation
...
Fix mouse emulation always sending events to the main window
2024-10-24 20:37:55 -07: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
Clay John
b4ba0f983a
Merge pull request #98363 from dustdfg/rid_in_operator_fix
...
Allow using RID with `in` operator for Arrays and Dictionaries
2024-10-24 19:04:41 -07:00
Clay John
a9e5850681
Merge pull request #98493 from KoBeWi/tfw_you_trade_CLASH_for_a_CRASH
...
Fix InputEvent crash when opening project
2024-10-24 18:38:58 -07:00
nazarii
76208f7155
Implement array based hash map
2024-10-24 21:34:12 +03:00
Thaddeus Crews
d8aa32dccd
Merge pull request #97868 from timothyqiu/po-loader
...
Fix "No loader found" error after editing PO file
2024-10-24 13:22:54 -05:00
kobewi
abb9c0f171
Fix InputEvent crash when opening project
2024-10-24 17:05:05 +02:00
Haoyu Qiu
1b4f6f6bfa
DirAccessPack: Fix file_exists and dir_exists in exported projects
2024-10-24 14:26:36 +08:00
kobewi
5c0f2414cd
Always add decimal when printing float
2024-10-23 15:00:21 +02:00
Matias N. Goldberg
668c9b74e2
Fix race conditions in breadcrumbs
...
Adds "--accurate-breadcrumbs" CLI command
Additionally, leave out breadcrumbs code in non-debug, non-dev builds.
Fix regression introduced in #98388 where command_insert_breadcrumb() is
called even in non-debug builds.
Fixes #98338
2024-10-22 22:08:46 -03:00
Thaddeus Crews
a4ed24acef
Merge pull request #98041 from Hilderin/fix-lost-gdextensions-on-startup
...
Fix loss of gdextension on editor startup
2024-10-21 16:39:30 -05:00
Thaddeus Crews
7dbea98c49
Merge pull request #97005 from Repiteo/core/window-corner-style
...
Core: Add `DisplayServer` flag for sharp corners
2024-10-21 16:39:25 -05:00
Thaddeus Crews
291e4b78e2
Merge pull request #98237 from dustdfg/os_transitive_image_headers_refactor
...
Don't include `core/io/image.h` in `core/os/os.h`
2024-10-21 16:39:15 -05:00
Thaddeus Crews
b6547b0d06
Merge pull request #98236 from timothyqiu/locale-compare-cache-4.x
...
Cache results for `TranslationServer.compare_locales()`
2024-10-21 16:39:14 -05:00
Thaddeus Crews
ecc2eb73fc
Merge pull request #97707 from Sauermann/fix-input-device-clash
...
Fix `InputEvent` device id clash
2024-10-21 16:39:10 -05:00
Thaddeus Crews
5fb22327ee
Merge pull request #97542 from AThousandShips/dict_sort_fix
...
[Core] Fix sorting of `Dictionary` keys
2024-10-21 16:39:05 -05:00
Thaddeus Crews
ab72082fa2
Core: Update `char_range.inc` to Unicode 16
2024-10-21 14:54:19 -05:00
Yevhen Babiichuk (DustDFG)
ee5d90853f
Allow use RID with `in` operator for Arrays and Dictionaries
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-21 11:50:41 +03:00
Hilderin
fbd1643176
Fix lost of gdextension on editor startup.
...
Co-authored-by: NetroScript <noreply@enostrion.com>"
2024-10-20 18:39:31 -04:00
Markus Sauermann
916d480686
Fix InputEvent device id clash
...
`InputMap::ALL_DEVICES` and `InputEvent::DEVICE_ID_EMULATION` have the
same value `-1`.
Change value of `InputMap::All_DEVICES` so that it's different from
`InputEvent::DEVICE_ID_EMULATION`. `InputEvent::DEVICE_ID_EMULATION`
is part of the API and can't be changed without potentially breaking
projects.
Gather all special device constants in a single location inside
`InputEvent`.
Add a converter to project settings, that takes care of adjusting
project files during loading.
2024-10-20 21:56:41 +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
alexkar598
fd6138ed7e
Fixes window_id being erased when emulating mouse events from touch events
2024-10-18 15:37:39 -04:00
Thaddeus Crews
f8c4a683d7
Core: Add `DisplayServer` flag for sharp corners
2024-10-18 11:20:21 -05:00
Yevhen Babiichuk (DustDFG)
af6d260c17
Don't include `core/io/image.h` in `core/os/os.h`
...
`core/os/os.h` doesn't use `core/io/image.h`. It just brings
transitive dependencies. Lots of dependencies because `core/os/os.h`
is transitively included in almost every file of godot
Also added `core/io/image.h` into files^1 where `Ref<Image>` and `core/os/os.h`
were used to prevent obscure errors involving `Ref<Image>`
^1 except those which include `core/io/image_loader.h` or `core/io/image.h` by
corresponding .h file with the same name
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-18 19:04:19 +03:00
A Thousand Ships
79f654ced5
[Core] Fix sorting of `Dictionary` keys
...
`StringName` keys were sorted as `StringName` which is unstable.
2024-10-18 08:47:05 +02:00
Haoyu Qiu
f61fe2799c
Don't pseudolocalize empty strings
2024-10-17 10:30:17 +08:00
Haoyu Qiu
acab2d6c1c
Cache results for `TranslationServer.compare_locales()`
2024-10-16 20:54:56 +08:00
Hunter Loftis
bbb8c1703b
Fix freeze on non-thread-safe custom importers
2024-10-15 11:46:14 -04:00
Thaddeus Crews
a1e768c508
Merge pull request #97295 from BlueCube3310/betsy-bc4
...
Betsy: Implement BC4 compression
2024-10-14 14:09:56 -05:00
bruvzg
0d7027ea4c
Add support for 24-bit color escape sequences, simplify `print_rich` BBCode parsing.
2024-10-13 22:31:57 +03:00
Thaddeus Crews
9d5a7321a5
Merge pull request #95175 from KoBeWi/bruh_can_revert
...
Fix implementation of `property_can_revert()` in various classes
2024-10-10 18:13:16 -05:00
Ricardo Buring
9652695f6f
Restore arc_tolerance value when using Clipper2's InflatePaths
...
This was missed when upgrading from Clipper to Clipper2.
2024-10-09 14:13:23 +02:00
Gergely Kis
257633c354
Make TranslationServer singleton variable inline.
...
This change avoids the problem known as 'Static Initialization Order Fiasco' (SIOF).
See the following PR for more explanation: https://github.com/godotengine/godot/pull/94683
Co-authored-by: Gabor Koncz <gabor.koncz@migeran.com>
2024-10-07 13:47:42 +02:00
Juan
e05d5b8813
Provide a reliable way to see original resources in a directory
...
When exporting a project, resources are often moved, converted or
remapped (source import files are gone, text scenes are converted to binary,
etc).
This new function allows to list a directory and obtain the actual original
resource files.
Example
```GDScript
var resources = ResourceLoader.list_directory("res://images")
print(resources)
```
Result will be something like:
```
["image1.png","image2.png","image3.png"]
```
instead of
```
["image1.png.import","image2.png.import","image3.png.import"]
```
2024-10-07 09:47:22 +02:00
Haoyu Qiu
33d9b40386
Fix "No loader found" error after editing PO file
...
PO files used to be loaded as simple `Translation` resources. We later
added a dedicated `TranslationPO` resource for it. But the loader still
thinks it can only handle `Translation` resources, so it refuses to load
the updated `TranslationPO` resource.
2024-10-06 12:22:20 +08:00
detomon
eaea7c1065
Reduce allocations when solving path in `AStarGrid2D`
2024-10-05 12:17:50 +02:00
kobewi
b9d25580ce
Fix implementation of property_can_revert() in various classes
2024-10-04 23:02:04 +02:00
bruvzg
794920b1ff
Partially revert 96780, remove warnings from project/editor settings `_get`.
2024-10-04 19:13:03 +03:00
Rémi Verschelde
6c15d59154
Merge pull request #97362 from reduz/make-unique-scene-id-deterministic
...
Make internal unique scene resource ID deterministic
2024-10-04 17:18:10 +02:00
Rémi Verschelde
4dd812f2ed
Merge pull request #97119 from dsnopek/gdextension-object-instance-id
...
GDExtension: Allow directly getting `ObjectID` from `Variant`
2024-10-04 17:18:06 +02:00
Rémi Verschelde
8e6ade8708
Merge pull request #97465 from DarioSamo/lock-free-rid
...
Make `RID_Owner` lock-free for fetching.
2024-10-04 11:21:38 +02:00
Rémi Verschelde
05b519fafb
Merge pull request #96230 from timothyqiu/per-domain-pseudolocalization
...
Move pseudolocalization into `TranslationDomain`
2024-10-04 11:21:18 +02:00
Aaron Franke
a7f6ec0e4c
Add a sort method to Dictionary and HashMap
2024-10-02 14:26:33 -07:00
Rémi Verschelde
86b1514bf5
Merge pull request #97550 from AThousandShips/hash_fix
...
[Core] Add missing `HashMapComparatorDefault` cases
2024-10-02 15:01:09 +02:00
Rémi Verschelde
336d91551d
Merge pull request #97281 from reptofrog/deadzone-new-default
...
Input: Change the default deadzone value for new actions from 0.5 to 0.2
2024-10-02 15:01:02 +02:00
Rémi Verschelde
9ce149c7a3
Merge pull request #93299 from rune-scape/fix-ref
...
Fix RefCounted releasing early and not clearing reference
2024-10-02 15:00:47 +02:00
Rémi Verschelde
79804a8e77
Merge pull request #97647 from KoBeWi/yearly_REPL_pull_request
...
Add expression evaluater to debugger (REPL)
2024-10-01 17:31:31 +02:00
Rémi Verschelde
3b17e3470a
Merge pull request #97532 from kisg/use_loader_library_check
...
GDExtension: Use loader to check if the library exists.
2024-10-01 17:31:14 +02:00
Rémi Verschelde
cf1d910e10
Merge pull request #92237 from timothyqiu/url-fragment
...
String: Parse fragment from URL
2024-10-01 17:30:16 +02:00
kobewi
645abdbb80
Add expression evaluater to debugger (REPL)
...
Co-authored-by: rohanrhu <rohanrhu2@gmail.com>
2024-10-01 15:36:09 +02:00
Roman Morozov
d532eecc81
Changed the default deadzone value for new actions from 0.5 to 0.2
2024-10-01 16:47:44 +04:00
Gergely Kis
8a41b1d90f
GDExtension: Use loader to check if the library exists.
2024-09-29 07:38:45 +02:00
Wenqiang
9a94353fa3
Added support for 'print' command in local (command line -d) debugger
2024-09-28 13:28:07 -07:00
A Thousand Ships
75cb3539b1
[Core] Add missing `HashMapComparatorDefault` cases
...
Added for:
* `AABB`
* `Basis`
* `Color`
* `Plane`
* `Projection`
* `Quaternion`
* `Rect2`
* `Transform2D`
* `Transform3D`
* `Vector4`
Ensures these handles `NaN` correctly
2024-09-28 17:58:49 +02:00
Danil Alexeev
85dfd89653
Add `@export_tool_button` annotation for easily creating inspector buttons
...
Co-authored-by: jordi <creptthrust@gmail.com>
Co-authored-by: K. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>
Co-authored-by: Mack <86566939+Macksaur@users.noreply.github.com>
2024-09-27 22:24:15 +01:00
Rémi Verschelde
83b2ca3107
Merge pull request #95930 from aaronfranke/bind-array-set
...
Bind Array and Packed*Array `get` and `set` functions
2024-09-27 13:53:19 +02:00
Rémi Verschelde
8a9a26ef19
Merge pull request #93311 from dsnopek/gdextension-required-virtuals
...
GDExtension: Mark virtual function as `is_required` in `extension_api.json`
2024-09-27 13:53:16 +02:00
Haoyu Qiu
6516ca6b11
Parse fragment from URL
2024-09-27 19:42:30 +08:00
Aaron Franke
cc9f2b58a0
Bind Array get and set functions
2024-09-26 13:00:17 -07:00
Lukas Tenbrink
e117ed9cd4
Rename Vector4.components -> coord
2024-09-26 14:02:00 +02:00
Rémi Verschelde
a4c1804cab
Merge pull request #97483 from akien-mga/clang-format-19.1.0
...
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 12:46:04 +02:00
Rémi Verschelde
2912cb9975
Merge pull request #97118 from mihe/patch-exports
...
Add ability to export patch packs
2024-09-26 12:45:42 +02:00
Rémi Verschelde
991e6c92ab
Merge pull request #96923 from Repiteo/style/warning-admonition
...
Style: Add `WARNING:` as new comment admonition
2024-09-26 12:45:38 +02:00
Rémi Verschelde
ef7547384c
Merge pull request #95678 from Hilderin/fix-slow-load-on-large-project-v2
...
Fix slow editor load on large projects (v2)
2024-09-26 12:45:31 +02:00
Rémi Verschelde
9d5b59b2ae
Merge pull request #94864 from rune-scape/add-missing-method-bind
...
Add missing CallableCustomMethodPointer for const methods
2024-09-26 12:45:27 +02:00
Rémi Verschelde
c92a6c7e27
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 11:46:12 +02:00
Hilderin
21f7c8a25f
Fix slow editor load on large projects (v2)
2024-09-25 17:36:39 -04:00
Juan Linietsky
08947d366f
Make RID_Owner lock-free for fetching.
...
This PR makes RID_Owner lock free for fetching values, this should give a very
significant peformance boost where used.
Some considerations:
* A maximum number of elements to alocate must be given (by default 256k).
* Access to the RID structure is still safe given they are independent from addition/removals.
* RID access was never really thread-safe in the sense that the contents of the data are not protected anyway. Each server needs to implement locking as it sees fit.
2024-09-25 15:05:24 -03:00
Mikael Hermansson
d3be030ea6
Add ability to export patch packs
...
Co-authored-by: Poq Xert <poqxert@poqxert.ru>
2024-09-25 17:07:28 +02:00
Thaddeus Crews
32c83a228d
Style: Add `WARNING:` as new comment admonition
2024-09-25 09:44:42 -05:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
kobewi
7aef30c2a8
Discard additional redo on commiting actions
2024-09-24 15:47:55 +02:00
rune-scape
a84c480049
Add missing CallableCustomMethodPointer for const methods
2024-09-23 11:46:10 -07:00
Rémi Verschelde
4254946de9
Merge pull request #97323 from timothyqiu/drop-unicode-identifier
...
Fix script editor wrongly replaces and quotes non-ASCII letters
2024-09-23 16:14:08 +02:00
Rémi Verschelde
8c273eb14c
Merge pull request #90955 from AThousandShips/print_to_stdout
...
[Core] Add `Engine.print_to_stdout` setting to control printing
2024-09-23 16:13:41 +02:00
Juan
abf9d24520
Make internal unique scene resource ID deterministic
...
Changes the Resource::generate_scene_unique_id() to be deterministic and
seedable.
Fixes #97110
2024-09-23 15:07:00 +02:00
Rémi Verschelde
9c9e704a2b
Merge pull request #97286 from Rynzier/master
...
Clarify PCK path argument in `PCKPacker.pck_start`
2024-09-23 12:28:14 +02:00
Rémi Verschelde
1b19ecb360
Merge pull request #95166 from aaronp64/variant_op_err_return
...
Assign return value on `Variant` operator failure
2024-09-23 12:27:51 +02:00
Rémi Verschelde
510bc3dc6a
Merge pull request #90969 from Naros/expose-resource-and-saver-methods
...
Expose several resource/resource-saver functions
2024-09-23 12:27:40 +02:00
Rynzier
7b7164c80c
Clarify PCK path argument in `PCKPacker.pck_start`
...
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-09-23 09:42:13 +02:00
Chris Cranford
bc3dcf3d40
Expose several resource/resource-saver functions
2024-09-22 15:27:13 -04:00
Haoyu Qiu
a751c05b15
Fix script editor wrongly replaces and quotes non-ASCII letters
2024-09-23 00:05:16 +08:00
A Thousand Ships
d49ec39d63
[Core] Add `Engine.print_to_stout` setting to control printing
...
Also added notes to the related project settings pointing to the
`Engine` properties.
2024-09-22 12:09:01 +02:00
BlueCube3310
95fd45d9a5
Betsy: Implement BC4 compression
2024-09-22 10:16:37 +02:00
rune-scape
cee0e6667a
Refactor ref-counting code and fix ref counted releasing before aquiring
2024-09-21 11:36:58 -07:00
Haoyu Qiu
cca54ba4db
Move pseudolocalization into TranslationDomain
...
Also adds command-line option `--editor-pseudolocalization`
2024-09-21 18:28:12 +08:00
Rémi Verschelde
dd7cb059f5
Merge pull request #87344 from AThousandShips/signal_connected
...
[Core] Add way to check if a signal has any connections
2024-09-21 11:50:24 +02:00
Rémi Verschelde
621cadcf65
Merge pull request #97168 from Hilderin/fix-reloading-scripts-already-in-use
...
Fix reloading scripts already in use
2024-09-20 21:35:08 +02:00
Hilderin
9638220473
Fix reloading scripts already in use
2024-09-20 12:12:24 -04:00
A Thousand Ships
203d3be200
[Core] Add way to check if a signal has any connections
...
Added to `Object` and `Signal`
2024-09-20 16:39:09 +02:00
Rémi Verschelde
5070db2575
Merge pull request #97208 from kleonc/transform3d_aabb_multiplication_fix_csharp
...
Fix C# `operator *(Transform3D, Aabb)`
2024-09-20 16:06:56 +02:00
Rémi Verschelde
7e62565f1e
Merge pull request #95787 from timothyqiu/domestic
...
Add translation domain
2024-09-20 16:06:23 +02: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
kleonc
3bfadeff25
Fix C# operator *(Transform3D, AABB)
2024-09-20 00:18:54 +02:00
aaronp64
714357e55c
Assign return value on Variant operator failure
...
Variant operators for String formatting and "in" could result in errors, which would return from validated_evaluate without assigning r_ret. This would cause scripts using the return value from these operators to get results from previously run code. Updated to return the original String value in the String formatting case, and false for "in" when an error occurs.
2024-09-19 11:22:35 -04:00
Rémi Verschelde
b638967d01
Revert "Return error when no ResourceFormatLoader found."
...
This reverts commit 6df3621b47 .
Fixes #97153 .
2024-09-19 12:41:51 +02:00
Rémi Verschelde
d8a82a8945
Merge pull request #97068 from Mickeon/allow_joy_axis_invalid
...
Allow `JOY_AXIS_INVALID` in InputEventJoypadMotion's `axis`
2024-09-18 17:41:08 +02:00
Rémi Verschelde
57c868483a
Merge pull request #90703 from ZerxZ/core/classdb_get_api_type
...
Expose `ClassDB.class_get_api_type()` method
2024-09-18 17:40:39 +02:00
深淵の鴿子
949d24b388
Expose ClassDB::class_get_api_type method
2024-09-18 15:45:21 +01:00
David Snopek
971e154588
GDExtension: Allow directly getting `ObjectID` from `Variant`
2024-09-17 11:58:55 -05:00
kobewi
41d0971c7e
Fix path error when saving ProjectSettings
2024-09-17 15:05:20 +02:00
Haoyu Qiu
818acb4290
Make editor use translation domains
...
How editor plugins use this feature:
1. Pick a unique translation domain name.
2. `_enter_tree()`: load translations into that translation domain.
3. Call `set_translation_domain()` for its root UI node.
4. `_exit_tree()`: remove that translation domain.
Plugins can also set the translation domain to `godot.editor` for
nested nodes that should use editor translations. `EditorFileDialog`
automatically does this.
2024-09-17 13:09:44 +08:00
Haoyu Qiu
c5d147b9b5
Allow configuring which translation domain Object.tr uses
2024-09-17 13:09:44 +08:00
Haoyu Qiu
68d494e24e
Add translation domain
2024-09-17 13:09:44 +08:00
Clay John
48403b5358
Merge pull request #96959 from RandomShaper/revamp_languages_exit
...
WorkerThreadPool: Revamp interaction with ScriptServer
2024-09-16 16:05:57 -07:00
Pedro J. Estébanez
5d371e3378
WorkerThreadPool: Add safety point between languages finished and pool termination
2024-09-16 18:20:10 +02:00
Pedro J. Estébanez
2a483fa9ba
WorkerThreadPool: Refactor running and exit-requested as runlevels
2024-09-16 18:06:22 +02:00
Pedro J. Estébanez
2640960706
WorkerThreadPool: Improve logic
...
- The main thread function and the collaborative wait functions have a much more similar structure than earlier, which yields (pun intended) better maintainability.
- Also, there are not assertions anymore about the reason for ending a wait being valid, because spurious awakes can happen and so the assert would fail without that indicating an issue.
2024-09-16 18:03:36 +02:00
Rémi Verschelde
a6d84bc0ce
Merge pull request #97059 from Gaktan/fix_weird_msvc_compilation_error
...
Fix weird MSVC compilation error
2024-09-16 13:36:06 +02:00
Rémi Verschelde
46d9db565b
Merge pull request #96904 from RandomShaper/fix_previewer_deadlock
...
ResourceLoader: Fix deadlocks caused by the resource changed feature
2024-09-16 13:35:21 +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
Rémi Verschelde
08c5ce1d9c
Merge pull request #96797 from Repiteo/core/typed-dictionary-bracket-fix
...
Core: Fix `operator[]` for typed dictionaries
2024-09-16 13:35:02 +02:00
Rémi Verschelde
8ebfd89359
Merge pull request #96024 from Ryan-000/expose_get_rpc_config
...
Expose `get_rpc_config` and `get_node_rpc_config`
2024-09-16 13:34:34 +02:00
Rémi Verschelde
67c9708eb8
Merge pull request #95915 from BlueCube3310/betsy-bc1
...
Betsy: Add caching and BC1 compression support
2024-09-16 13:34:26 +02:00
Rémi Verschelde
91553f5811
Merge pull request #94246 from theashtronaut/fix-astar-partial-path
...
Fix AStar2D, AStar3D, AStarGrid2D from not returning a path when the destination is disabled/solid even with `allow_partial_path` option
2024-09-16 13:34:22 +02:00
Micky
3ecf346f12
Allow JOY_AXIS_INVALID in InputEventJoypadMotion's `axis`
2024-09-16 12:12:27 +02:00
Gaktan
453f32ae0a
Fix weird MSVC compilation error
...
For some reason, MSVC doesn't appreciate uint8 math with enum constants
2024-09-15 23:13:24 +02:00
Pedro J. Estébanez
e2fd88ed91
Revert "WorkerThreadPool: Enhance lifetime for more flexibility"
...
This reverts commit 2d1dd41ef5 .
2024-09-13 14:39:11 +02:00
Pedro J. Estébanez
e3ddf3d44a
ResourceLoader: Fixup resource changed feature (no. 2)
2024-09-13 11:32:55 +02:00
Rémi Verschelde
b60e16ff62
Merge pull request #96592 from bruvzg/alt_u
...
Add Control+Shift+U (rebindable) action for Unicode input, show hex as it is entered.
2024-09-13 11:21:51 +02:00
Slashscreen
89491f4403
Add callable support for `find` and `rfind` `Array` methods
2024-09-13 00:01:53 -07:00
allison
c46b5af06b
fix astar partial path destination can be solid/disabled
...
* AStar2D, AStar3D and AStarGrid2D will now return a path when allow_partial_path is true even if the destination is a solid/disabled point.
# Conflicts:
# core/math/a_star_grid_2d.cpp
# core/math/a_star_grid_2d.h
2024-09-12 20:09:41 -07:00
Thaddeus Crews
b3d7960df4
Core: Fix `operator[]` for typed dictionaries
2024-09-12 11:10:17 -05:00
A Thousand Ships
df29cc696f
[Core] Optionally delete `Ref` `nullptr` comparisons
...
Adds an optional (default false) compile option to enable comparing
`Ref` to `nullptr` to ensure correct use, as well as future expandsion
for more general dev checks (enabled with `dev_mode`)
2024-09-12 11:26:49 +02:00
bruvzg
b776f55bcb
Add Control+Shift+U (rebindabe) action for Unicode input, show hex as it is entered.
2024-09-12 11:47:24 +03:00
Rémi Verschelde
60ffa9645a
Merge pull request #96864 from KoBeWi/dictionerrory
...
Fix `Dictionary.merge()` type validation
2024-09-12 09:25:42 +02:00
Rémi Verschelde
f8fbb860f5
Merge pull request #95840 from raulsntos/char_metadata
...
Add metadata for `char16_t` and `char32_t`
2024-09-12 09:25:19 +02:00
Rémi Verschelde
23e51c3cb5
Merge pull request #92888 from Hilderin/fix-unable-to-use-resourceLoader-in-c#-after-threaded-load
...
Fix inability to use ResourceLoader in C# after threaded load in GDScript
2024-09-12 09:25:05 +02:00
Rémi Verschelde
cd9da3344f
Merge pull request #95292 from aaronp64/is_parent_class_perf
...
Improve `ClassDB::_is_parent_class` performance
2024-09-12 09:17:39 +02:00
Pedro J. Estébanez
10e2318bde
Object: Let debug lock handle callee destruction within call chain gracefully
...
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-09-12 08:51:24 +02:00
Raul Santos
aaffab8afb
Add metadata for `char16_t` and `char32_t`
...
We don't seem to expose any API that uses `char16_t` yet, but I added it anyway since we make the type info for it.
I didn't add anything for `wchar_t` because we are not making a type info so maybe we don't have a need for it yet, it could be added in the future.
To prevent breaking compatibility with the C# bindings, we ignore the `char32_t` metadata and still use `System.Int64`.
2024-09-12 02:15:55 +02:00
Hilderin
27d1fb63e1
Fix Unable to use ResourceLoader in C# after threaded load in GDScript #92798
2024-09-11 19:03:55 -04:00
BlueCube3310
606eedb0c9
Betsy: Add caching and BC1 compression support
2024-09-11 23:48:29 +02:00
David Snopek
c2af6bcb59
GDExtension: Mark virtual function as `is_required` in `extension_api.json`
...
Co-authored-by: Jovan Gerodetti <jovan.gerodetti@titannano.de>
2024-09-11 16:48:14 -05:00
kobewi
48d5b8a8b8
Fix Dictionary.merge() type validation
2024-09-11 17:22:49 +02:00
Rémi Verschelde
d8e5d61f22
Merge pull request #96787 from raulsntos/gdextension/remove-get-rid-func
...
Remove `get_rid_func` from `GDExtensionClassCreationInfo4`
2024-09-11 12:35:10 +02:00
Rémi Verschelde
658b8a8704
Merge pull request #96760 from RandomShaper/wtp_langs_exit_thread
...
Make use of languages' thread enter/exit more correct
2024-09-11 12:35:07 +02:00
Rémi Verschelde
3cad849b1f
Merge pull request #96586 from rune-scape/fix-empty-stringname-hash
...
StringName: Fix empty hash
2024-09-11 12:34:56 +02:00
Rémi Verschelde
0d3d4e67f3
Merge pull request #96501 from scgm0/Allow-class-names-to-be-unicode
...
GDExtension: Allow class names to be unicode
2024-09-11 12:34:49 +02: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
Pedro J. Estébanez
c8acf561ef
Make languages' thread enter/exit more resilient
2024-09-10 17:22:32 +02:00
Raul Santos
9e57674550
Remove `get_rid_func` from `GDExtensionClassCreationInfo4`
2024-09-10 12:35:24 +02:00
Pedro J. Estébanez
2d1dd41ef5
WorkerThreadPool: Enhance lifetime for more flexibility
2024-09-10 11:08:51 +02:00
bruvzg
3009073b39
[Resource Loader] Do not check property type for non registered properties.
2024-09-10 11:27:16 +03:00
rune-scape
0dde931bc9
StringName: Fix empty hash
...
+Fixed compat hashes
2024-09-09 13:30:02 -07:00
scgm0
3badff1f53
Allow class names to be unicode
2024-09-07 05:46:28 +08:00
Rémi Verschelde
effbc07976
Merge pull request #96617 from RandomShaper/res_loader_pending
...
ResourceLoader: Add last resort life-time insurance for tokens
2024-09-06 22:38:41 +02:00
Rémi Verschelde
8aae31b879
Merge pull request #94434 from bruvzg/nonblock_pipes
...
Add support for non-blocking IO mode to `OS.execute_with_pipe`.
2024-09-06 22:38:21 +02:00
Rémi Verschelde
0b4ae20156
Merge pull request #78656 from Repiteo/typed-dictionary
...
Implement typed dictionaries
2024-09-06 22:38:13 +02:00
Pedro J. Estébanez
97197ff5e9
ResourceLoader: Fixup resource changed feature
...
This is a complement to: https://github.com/godotengine/godot/pull/96593
2024-09-06 18:31:51 +02:00
Pedro J. Estébanez
ccd470d33c
ResourceLoader: Add last resort life-time insurance for tokens
2024-09-06 14:00:10 +02:00
bruvzg
10f3c1f587
Add support for non-blocking IO mode to `OS.execute_with_pipe`.
2024-09-06 14:16:39 +03:00
Rémi Verschelde
05d985496c
Merge pull request #96593 from RandomShaper/res_changed_multiverse
...
ResourceLoader: Add thread-aware resource changed mechanism
2024-09-06 11:11:13 +02:00
Rémi Verschelde
58b3481eaf
Merge pull request #89649 from dalexeev/core-bind-and-doc-iter-virtual-methods
...
Core: Bind and document iterator API virtual methods
2024-09-06 11:10:58 +02:00
Pedro J. Estébanez
74b9c38d58
ResourceLoader: Add thread-aware resource changed mechanism
2024-09-06 08:57:09 +02:00
Rémi Verschelde
a8e3feb788
Merge pull request #96244 from Repiteo/scons/msvc-__cplusplus
...
SCons: Pass `/Zc:__cplusplus` in MSVC builds
2024-09-05 19:42:51 +02:00
Rémi Verschelde
38447c545e
Merge pull request #93319 from 10Drenth/astar_jump_performance_improvement
...
Improve `AStarGrid2D` performance when jumping is enabled
2024-09-05 19:42:44 +02:00
Thaddeus Crews
4c84cb6ae8
SCons: Pass `/Zc:__cplusplus` in MSVC builds
2024-09-05 11:44:57 -05:00
Martijn
202e197717
Improve AStarGrid2D performance when jumping is enabled
2024-09-05 18:12:43 +02:00
Rémi Verschelde
4629f7d040
Merge pull request #96496 from aXu-AP/lerp-transform
...
Add support for Transform2D/3D in `lerp()`
2024-09-05 17:44:11 +02:00
Pedro J. Estébanez
c450f4d667
ResourceLoader: Simplify handling of unregistered tasks
2024-09-05 09:54:03 +02:00
Ryan
8835f326b1
Expose get_rpc_config and get_node_rpc_config
...
add documentation
Update doc/classes/Node.xml
change name of get_node_rpc_config to get_rpc_config
Co-Authored-By: moondog <159832633+dog-on-moon@users.noreply.github.com>
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2024-09-04 15:45:22 -04:00
Rémi Verschelde
cb21a207b3
Merge pull request #96555 from dalexeev/doc-theme-items-deprecated-experimental
...
Docs: Add missing deprecated/experimental tag support for theme items
2024-09-04 18:55:49 +02:00
Thaddeus Crews
9853a69144
Implement typed dictionaries
2024-09-04 10:27:26 -05:00
Danil Alexeev
2dd043d1f6
Docs: Add missing deprecated/experimental tag support for theme items
2024-09-04 17:49:05 +03:00
Rémi Verschelde
906a4e9db9
Merge pull request #96525 from bruvzg/rem_gl_renderer_incl
...
Store GLES over GL status in the OS to avoid direct renderer includes in the editor.
2024-09-04 11:16:48 +02:00
Rémi Verschelde
69ca549ef9
Merge pull request #92570 from rune-scape/rune-stringname-bits
...
StringName: `operator==` compares in-place
2024-09-04 11:16:32 +02:00
rune-scape
6abd17265b
StringName: operator== compares in-place
2024-09-03 17:31:08 -07: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
Rémi Verschelde
d15de6f264
Merge pull request #96292 from AThousandShips/null_check_ref_fix
...
Cleanup of raw `nullptr` checks with `Ref`
2024-09-03 16:13:55 +02:00
aXu-AP
7218dd6a3a
Add support for Transform2D/3D in lerp()
...
Implements godotengine/godot-proposals#10579
2024-09-03 16:59:15 +03:00
bruvzg
d4e78b8db5
Store GLES over GL status in the OS to avoid direct renderer includes in the editor.
2024-09-03 16:11:59 +03:00
Rémi Verschelde
262c8da104
Merge pull request #95887 from bruvzg/sysinfo_drv
...
Update rendering driver name on fallbacks. Fix rendering driver/method in the editor system info.
2024-09-03 11:43:12 +02:00
Rémi Verschelde
866099684c
Merge pull request #92667 from Hilderin/fix-addon-requires-editor-restart
...
Fix Addon requires editor restart to become functional
2024-09-03 11:42:52 +02:00
Hilderin
7dd235905e
Fix Addon requires editor restart to become functional
2024-09-02 16:54:45 -04:00
Rémi Verschelde
88197d4a51
Merge pull request #96462 from RandomShaper/opt_comp_loc
...
TranslationServer: Add fast path for comparison of equal locales
2024-09-02 12:14:01 +02:00
Rémi Verschelde
04f1977199
Merge pull request #96406 from Bromeon/bugfix/bool-in-header
...
Fix `bool` type appearing in GDExtension header
2024-09-02 12:13:42 +02:00
Pedro J. Estébanez
cfb7443e26
TranslationServer: Add fast path for comparison of equal locales
2024-09-02 10:50:14 +02:00
bruvzg
c273786758
Update rendering driver name on fallbacks. Fix rendering driver/method in the editor system info.
2024-09-01 18:22:40 +03:00
BlueCube3310
205a10e0ae
Reduce code duplication in FileAccess
2024-09-01 12:39:32 +02:00
Jan Haller
82b2a58f4c
Fix `bool` type appearing in GDExtension header
2024-08-31 22:40:48 +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
52d1b0be4a
Merge pull request #96328 from object71/fix-animation-snap-96159
...
Add `modf` function and fix animation editor snap behavior
2024-08-30 23:38:02 +02:00
Rémi Verschelde
4c0ce657d5
Merge pull request #96322 from RandomShaper/wtp_info
...
WorkerThreadPool: Print info about thread count at startup
2024-08-30 23:37:58 +02:00
Danil Alexeev
49bcdf78a7
Core: Сheck `r_error` after calling `callp()`
2024-08-30 21:09:30 +03:00
Hristo Iliev
fcc8518bce
Add modf function and fix snap behavior
...
Fixes #96159
2024-08-30 17:49:57 +03:00
Pedro J. Estébanez
db4672f83f
WorkerThreadPool: Print info about thread count at startup
2024-08-30 13:04:46 +02:00
Rémi Verschelde
a5830f6eb9
Merge pull request #96317 from Chaosus/objectdb_write_path_instead_of_name_at_cleanup
...
Write path instead of name at verbose output of leaked instances
2024-08-30 11:43:13 +02:00
Rémi Verschelde
acc48797e1
Merge pull request #96303 from MBCX/huf-decompress-x64-only
...
zstd: Make sure `huf_decompress` is only applied to 64-bit x86.
2024-08-30 09:59:55 +02:00
Rémi Verschelde
909629d9f9
Merge pull request #96166 from AThousandShips/more_lock_raii
...
Use `MutexLock` in more places
2024-08-30 09:59:19 +02:00
Rémi Verschelde
f0ee0bdd37
Merge pull request #93972 from Hilderin/fix-editor-needs-restart-after-adding-gdextensions
...
Fix editor needs restart after adding GDExtensions
2024-08-30 09:59:05 +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
Chaosus
75055a8278
Write path instead of name at verbose output of leaked instances
2024-08-30 10:58:50 +03:00
Rémi Verschelde
d5385491f6
Merge pull request #86183 from demolke/extras
...
Import/export GLTF extras to `node->meta` and back
2024-08-30 09:58:47 +02:00
MBCX
6b13236956
Make sure huf_decompress is only applied to 64-bit x86.
2024-08-29 17:12:09 -04: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
David Snopek
6d0a57c9fd
Fix loading GDExtensions in exported games
2024-08-29 09:50:56 -05:00
A Thousand Ships
e33fdb4296
Use `MutexLock` in more places
2024-08-29 14:12:59 +02:00
Hilderin
ef6f873938
Fix editor needs restart after adding GDExtensions
2024-08-29 06:15:32 -04:00
Rémi Verschelde
cb96fc95c3
Merge pull request #92316 from alula/msvc-clang
...
Add support for compiling with VS clang-cl toolset
2024-08-29 10:36:17 +02:00
Alula
346cbc7f1f
Add support for compiling with VS clang-cl toolset
2024-08-28 13:30:44 -05:00
Rémi Verschelde
622393c115
Merge pull request #95317 from esainane/when-i-am-64
...
binder_common: Fix uninitialized marshalling for `PtrToArg<char32_t>`
2024-08-28 17:15:05 +02:00
Rémi Verschelde
e439154407
Merge pull request #96225 from RandomShaper/wtp_fix_yield
...
WorkerThreadPool: Fix end-of-yield logic potentially leading to deadlocks
2024-08-28 15:46:57 +02:00
Rémi Verschelde
9f05ca9fc5
Merge pull request #96218 from RandomShaper/res_loader_user_case
...
ResourceLoader: Handle another case of user tokens
2024-08-28 15:46:53 +02:00
Rémi Verschelde
8c5d1b42ab
Merge pull request #92530 from Naros/expose-resource-cache-get-ref
...
Expose `get_cached_ref` from `ResourceCache`
2024-08-28 15:46:35 +02:00
Pedro J. Estébanez
5dade0e08b
WorkerThreadPool: Fix end-of-yield logic potentially leading to deadlocks
2024-08-28 15:26:08 +02:00
Pedro J. Estébanez
0441c67de6
ResourceLoader: Handle another case of user tokens
2024-08-28 13:53:39 +02:00
Rémi Verschelde
de7d4b6f5b
Merge pull request #94920 from gongpha/bring-back-print-verbose-when-loading-resources
...
Fix ResourceLoader is not printing a resource path on loading when `verbose_stdout` is enabled
2024-08-28 00:12:38 +02:00
Rémi Verschelde
56ffcabae1
Merge pull request #94792 from akien-mga/core-remove-poolallocator
...
Core: Remove unused PoolAllocator
2024-08-28 00:12:20 +02:00
Rémi Verschelde
71accb9008
Merge pull request #94679 from rune-scape/remove-unused-initialize_ref
...
Remove unused `initialize_ref`
2024-08-28 00:12:16 +02:00
Rémi Verschelde
3e8d051a4a
Merge pull request #94068 from dalexeev/core-remove-is-gpl-reversed
...
Core: Remove unused method `_is_gpl_reversed()`
2024-08-28 00:11:58 +02:00
Rémi Verschelde
330fca1ffd
Merge pull request #93985 from alvinhochun/windows-gpu-pref
...
Respect integrated GPU preference in Windows Settings
2024-08-28 00:11:45 +02:00
Rémi Verschelde
2fadd095a7
Merge pull request #93893 from Togira123/fix-rand-weighted-return-value
...
Fix `rand_weighted` incorrectly returning -1
2024-08-28 00:11:35 +02:00
Rémi Verschelde
1e6b6eaf49
Merge pull request #92123 from timothyqiu/estimate-end
...
Change param name of AStar's `_estimate_cost` method
2024-08-28 00:10:47 +02:00
Rémi Verschelde
9c7cf5440c
Merge pull request #91868 from Chaosus/astargrid_get_point_positions_in_region
...
Add a method to retrieve all points within a region to `AStarGrid2D`
2024-08-28 00:10:42 +02:00
Kongfa Waroros
bfb5570c03
Fix ResourceLoader is not verbosely printing a resource path on loading
2024-08-28 03:37:51 +07:00
Rémi Verschelde
012ccbc301
Merge pull request #95048 from KoBeWi/keep_the_party_going
...
Add `keep_screen_on` editor setting
2024-08-27 22:27:35 +02:00
Rémi Verschelde
8ae2c3a000
Merge pull request #93605 from RadiantUwU/thread-barriers
...
Add optional count argument to `Semaphore::post`
2024-08-27 22:27:21 +02:00
Rémi Verschelde
6e3320446a
Merge pull request #92799 from BlueCube3310/image-detech-signed
...
Image: Add a method for detecting signed values
2024-08-27 22:27:18 +02:00
Danil Alexeev
be5068d44b
Core: Bind and document iterator API virtual methods
2024-08-27 21:57:22 +03:00
Rémi Verschelde
142d33211c
Merge pull request #96173 from Repiteo/core/fix-unreachable-code
...
Core: Fix unreachable code
2024-08-27 17:52:47 +02:00
Rémi Verschelde
431c5839fe
Merge pull request #96168 from CreatedBySeb/remove-user-prefix
...
Remove confusing USER prefix from script-logged errors
2024-08-27 17:52:40 +02:00
Thaddeus Crews
231f3323d3
Core: Fix unreachable code
2024-08-27 10:26:06 -05:00
Radiant
6311ee5bd5
Add optional count argument to Sempahore::post
...
Co-authored-by: RandomShaper <RandomShaper@users.noreply.github.com>
Co-authored-by: A Thousand Ships (she/her) <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Mickeon <Mickeon@users.noreply.github.com>
2024-08-27 18:18:01 +03:00
Rémi Verschelde
9dfc41568a
Merge pull request #95984 from timothyqiu/what-identifier
...
Add `String.is_valid_unicode_identifier()`
2024-08-27 16:55:06 +02:00
Sébastien Dunne Fulmer
c3ed8a842c
Remove confusing USER prefix from script-logged errors
2024-08-27 15:00:48 +01:00
Danil Alexeev
2d8f6c1b1d
GDScript: Fix message when calling non-tool function in tool mode
2024-08-27 12:30:15 +03:00
BlueCube3310
76c8211653
Image: Add a method for detecting signed values
2024-08-27 09:23:17 +02: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
2e825c7d9c
Merge pull request #93141 from RadiantUwU/add_static_classdb_calls
...
Implement `ClassDB::class_call_static_method`
2024-08-26 23:28:36 +02:00
Rémi Verschelde
c7702b350a
Merge pull request #92548 from AThousandShips/string_cleaning
...
[Core] Optimize some `String` methods
2024-08-26 23:28:24 +02:00
Rémi Verschelde
ac5a528620
Merge pull request #84944 from KoBeWi/legacy_of_ancient_godots
...
Fix some legacy code
2024-08-26 23:28:14 +02:00
Rémi Verschelde
8019cdb444
Merge pull request #94137 from Craig-Stoneham/master
...
Improve template class conditionals with constexpr (code style)
2024-08-26 22:45:17 +02:00
Rémi Verschelde
ce44c91223
Merge pull request #93739 from AThousandShips/lock_unlock
...
[Core] Allow locking/unlocking of `MutexLock`
2024-08-26 22:45:13 +02:00
Rémi Verschelde
0f16336be0
Merge pull request #93526 from m4gr3d/add_apksigner_util
...
[Android Editor] Add support for exporting platform binaries
2024-08-26 22:45:09 +02:00
Rémi Verschelde
b78da13e2a
Merge pull request #93064 from Hilderin/fix-fileSystem-dock-wont-show-any-file-folders
...
Fix FileSystem dock won't show any file folders (v2)
2024-08-26 22:45:04 +02:00
Rémi Verschelde
8dad1ba482
Merge pull request #92933 from TokageItLab/match-concatenating
...
Match the coding style for concatenating String
2024-08-26 22:44:59 +02:00
Fredia Huya-Kouadio
794ea99240
Update the storage access handler logic to support accessing / retrieving contents with the `assets:/` prefix
2024-08-26 11:16:37 -07:00
Pedro J. Estébanez
9cbc3f1419
Change warning muting so it affects all levels, but locally
2024-08-26 13:13:29 +02:00
A Thousand Ships
723f5500f4
[Core] Allow locking/unlocking of `MutexLock`
2024-08-26 12:38:03 +02:00
Rémi Verschelde
0ba0be27c7
Merge pull request #94169 from RandomShaper/wtp_rl_prize
...
Batch of fixes for `WorkerThreadPool` and `ResourceLoader`
2024-08-26 10:51:25 +02:00
Rémi Verschelde
04f6321ecc
Merge pull request #91166 from raulsntos/gdextension/loader
...
GDExtension: Implement `GDExtensionLoader` concept
2024-08-26 10:51:21 +02:00
Rémi Verschelde
b4f268fae8
Merge pull request #91018 from Daylily-Zeleen/daylily-zeleen/optionally_postinitialization_for_extension_owner
...
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-26 10:51:17 +02:00
Craig-Stoneham
604df4fc83
Improve Template Class Conditionals (Code Style)
...
Refactored the following template classes by replacing runtime checks with compile-time checks using if constexpr for improved code clarity and maintainability:
- RID_Alloc
- SortArray
- PagedAllocator
Changes made:
- Updated conditional checks for THREAD_SAFE in the RID_Alloc class.
- Updated conditional checks for Validate in the SortArray class.
- Updated conditional checks for thread_safe in the PagedAllocator class.
2024-08-25 18:10:51 +01:00
Matias N. Goldberg
59d0422dcd
Disable extra memory tracking by default
...
PR #90993 added several debugging utilities.
Among them, advanced memory tracking through the use of custom
allocators and VK_EXT_device_memory_report.
However as issue #95967 reveals, it is dangerous to leave it on by
default because drivers (or even the Vulkan loader) can too easily
accidentally break custom allocators by allocating memory through std
malloc but then request us to deallocate it (or viceversa).
This PR fixes the following problems:
- Adds --extra-gpu-memory-tracking cmd line argument
- Adds missing enum entries to
RenderingContextDriverVulkan::VkTrackedObjectType
- Adds RenderingDevice::get_driver_and_device_memory_report
- GDScript users can easily check via print(
RenderingServer.get_rendering_device().get_driver_and_device_memory_report()
)
- Uses get_driver_and_device_memory_report on device lost for appending
further info.
Fixes #95967
2024-08-24 20:52:39 -03:00
Radiant
02fc4bbc2a
Implement `ClassDB::class_call_static_method`
2024-08-23 02:56:29 +03:00
Raul Santos
4dd6e8eca5
GDExtension: Implement `GDExtensionLoader` concept
...
- Implements the concept of GDExtension loaders that can be used to customize how GDExtensions are loaded and initialized.
- Moves the parsing of `.gdextension` config files to the new `GDExtensionLibraryLoader`.
- `GDExtensionManager` is now meant to be the main way to load/unload extensions and can optionally take a `GDExtensionLoader`.
- `EditorFileSystem` avoids unloading extensions if the file still exists, this should prevent unloading extensions that are outside the user project.
2024-08-22 05:29:11 +02:00
Rémi Verschelde
568589c9d8
Merge pull request #90993 from darksylinc/matias-TheForge
...
Add debug utilities for Vulkan
2024-08-22 00:38:22 +02:00
Rémi Verschelde
39b77ea04e
Merge pull request #95790 from aaronfranke/rect-aabb-support
...
Simplify Rect2/AABB `get_support` function
2024-08-22 00:10:39 +02:00
Rémi Verschelde
091212b4f1
Merge pull request #93602 from aaronp64/inspector_latency
...
Improve Editor Inspector/Theme item lookup performance
2024-08-22 00:10:26 +02:00
Matias N. Goldberg
364f916f3f
Add debug utilities for Vulkan
...
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
- Debug-only Breadcrumb info for debugging GPU crashes and device lost
- Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks
Functionality marked as "debug-only" is only available in debug or dev
builds.
Misc fixes:
- Early break optimization in RenderingDevice::uniform_set_create
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
Pedro J. Estébanez
f4d76853b9
WorkerThreadPool (plus friends): Overhaul unlock allowance zones
...
This fixes a rare but possible deadlock, maybe due to undefined behavior. The new implementation is safer, at the cost of some added boilerplate.
2024-08-21 12:22:52 +02:00
Pedro J. Estébanez
df23858488
ResourceLoader: Fix edge cases in the management of user tokens
...
1. Make handling of user tokens atomic:
Loads started with the external-facing API used to perform a two-step setup of the user token. Between both, the mutex was unlocked without its reference count having been increased. A non-user-initiated load could therefore destroy the load task when it unreferenced the token.
Those stages now happen atomically so in the one hand, the described race condition can't happen so the load task life insurance doesn't have a gap anymore and, on the other hand, the ugliness that the call to load could return `ERR_BUSY` if happening while other thread was between both steps is gone.
The code has been refactored so the user token concerns are still outside the inner load start function, which is agnostic to that for a cleaner implementation.
2. Clear ambiguity between load operations running on `WorkerThreadPool`:
The two cases are: single-loaded thread directly started by a user pool task and a load started by the system as part of a multi-threaded load.
Since ensuring all the code dealing with this distinction would make it very complex, and error-prone, a different measure is applied instead: just take one of the cases out of the dicotomy. We now ensure every load happening on a pool thread has been initiated by the system.
The way of achieving that is that a single-threaded user-started load initiated from a pool thread, is run as another task.
2024-08-21 12:22:52 +02:00
Pedro J. Estébanez
5c970db2e4
ResourceLoader: Optimize remap check by deferring until a non-mutex zone
2024-08-21 12:19:43 +02:00
Pedro J. Estébanez
28619e26cf
ResourceLoader: Enhance deadlock prevention
...
Benefits:
- Simpler code. The main load function is renamed so it's apparent that it's not just a thread entry point anymore.
- Cache and thread modes of the original task are honored. A beautiful consequence of this is that, unlike formerly, re-issued loads can use the resource cache, which makes this mechanism much more performant.
- The newly added getter for caller task id in WorkerThreadPool allows to remove the custom tracking of that in ResourceLoader.
- The check to replace a cached resource and the replacement itself happen atomically. That fixes deadlock prevention leading to multiple resource instances of the same one on disk. As a side effect, it also makes the regular check for replace load mode more robust.
2024-08-21 12:19:43 +02:00
Pedro J. Estébanez
bd0959ebdd
ResourceLoader: Properly push & pop TLS state on recursive load tasks
2024-08-21 12:19:43 +02:00
Rémi Verschelde
5ca419e32c
Merge pull request #94801 from gamelessone/fix-cond-var
...
Fix use-after-free of `ConditionVariable` in `ResourceLoader`
2024-08-21 11:14:22 +02:00
Rémi Verschelde
4b8946102b
Merge pull request #91535 from BlueCube3310/betsy-bc6h
...
Add Betsy to speed up BC6 compression
2024-08-21 06:38:03 +02:00
Hilderin
1b0c5cbc01
Fix FileSystem dock won't show any file folders (v2)
2024-08-20 21:23:13 -04:00
aaronp64
7593e55527
Improve Editor Inspector/Theme item lookup performance
...
Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab
- Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions
- Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes()
- Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead
- Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call
These changes reduce the time taken by EditorInspector::update_tree by around 30-35%
2024-08-20 13:39:40 -04:00
Daylily-Zeleen
3d575801ce
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-20 20:19:02 +08:00
Stuart Carnie
2d0165574d
Add Metal support for macOS (arm64) and iOS
2024-08-20 12:11:06 +02:00
Rémi Verschelde
6a9ecdcf0c
Merge pull request #91818 from rburing/fti_multimesh
...
Physics interpolation: `MultiMesh`
2024-08-20 10:01:46 +02:00
Aaron Franke
7db24a9ad5
Simplify and fix Rect2/AABB get_support function
2024-08-19 23:55:31 -07:00
Rémi Verschelde
af919a845f
Merge pull request #94683 from kisg/string_name_fix
...
StringName: Use inline static field definitions
2024-08-19 16:05:16 +02:00
Rémi Verschelde
6a829d5a86
Merge pull request #95508 from Summersay415/loaded-when-not
...
Return error when no ResourceFormatLoader found
2024-08-19 14:34:17 +02:00
Rémi Verschelde
86212c1fe4
Merge pull request #94666 from RandomShaper/fix_tangled_obj_clear_crash
...
Avoid potential crash on signal disconnection
2024-08-19 14:33:44 +02:00
Pedro J. Estébanez
e9407d4877
ResourceLoader: Revert workaround resource loading crashes due to buggy TLS
...
This reverts commit 41c0785636 .
2024-08-19 12:22:31 +02:00
Pedro J. Estébanez
32b7f835d8
Avoid potential crash on signal disconnection
2024-08-19 12:18:04 +02:00
Rémi Verschelde
ab2b06b8b1
Merge pull request #95730 from voidedWarranties/fix_reload_scripts_bind
...
Fix virtual binding for `ScriptLanguageExtension::_reload_scripts`
2024-08-19 12:09:39 +02:00
Rémi Verschelde
4afcbb1c8b
Merge pull request #92546 from AThousandShips/faster_replace
...
[Core] Optimize `String::replace` methods
2024-08-19 12:08:45 +02:00
Rémi Verschelde
f4037d6f6c
Merge pull request #92496 from clayjohn/HDR-2D-sRGB
...
Ensure MovieWriter output is in gamma space when using HDR 2D
2024-08-19 12:08:40 +02:00
Ricardo Buring
1728f80e7c
Fixed Timestep Interpolation: MultiMesh
...
Adds fixed timestep interpolation to multimeshes.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-08-18 17:14:59 +02:00
mosquito chang
b32395ade9
Fix `InputMap::event_get_index` to handle unmatched events correctly
2024-08-18 14:46:34 +02:00
BlueCube3310
394ea653aa
Add Betsy to speed up BC6 compression
2024-08-18 11:14:05 +02:00
voidedWarranties
d65ea6fb9c
Fix virtual binding for `ScriptLanguageExtension::_reload_scripts`
2024-08-17 21:09:32 -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
Rémi Verschelde
82adfebcf8
Merge pull request #94799 from m4gr3d/memory_allocation_cleanup_and_optimizations
...
Android memory cleanup and optimizations
2024-08-16 23:45:39 +02:00
Fredia Huya-Kouadio
a57a99f5bc
Memory cleanup and optimizations
...
- Returns an empty list when there's not registered plugins, thus preventing the creation of spurious iterator objects
- Inline `Godot#getRotatedValues(...)` given it only had a single caller. This allows to remove the allocation of a float array on each call and replace it with float variables
- Disable sensor events by default. Sensor events can fired at 10-100s Hz taking cpu and memory resources. Now the use of sensor data is behind a project setting allowing projects that have use of it to enable it, while other projects don't pay the cost for a feature they don't use
- Create a pool of specialized input `Runnable` objects to prevent spurious, unbounded `Runnable` allocations
- Disable showing the boot logo for Android XR projects
- Delete locale references of jni strings
2024-08-16 09:27:41 -07: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
Rémi Verschelde
f01e052162
Merge pull request #95549 from timothyqiu/split-translation-server
...
Split `TranslationServer` into its own file
2024-08-16 14:36:16 +02:00
Rémi Verschelde
1d4303c1fe
Merge pull request #95502 from bruvzg/net_ext_detect
...
[.NET] Move search in files extension list definition to be after Scene level module init.
2024-08-16 14:35:12 +02:00
Rémi Verschelde
69db19f058
Merge pull request #94826 from Naros/classdb-expose-property-getter-setter
...
Expose ClassDB methods `get_property_setter` / `get_property_getter`
2024-08-16 14:32:32 +02:00
Rémi Verschelde
6042c66663
Merge pull request #94720 from noidexe/fix-gamepad-triggers
...
Fix gamepad triggers not working on web exports
2024-08-16 14:32:27 +02:00
Haoyu Qiu
f483c3aafa
Fix split_floats behavior when spaces are used as separators
2024-08-16 17:30:44 +08:00
Rémi Verschelde
ae2044dccb
Merge pull request #95477 from RandomShaper/res_load_dev_bugs
...
ResourceLoader: Use better error handling for possible engine bugs
2024-08-16 10:36:33 +02:00
Rémi Verschelde
f1d6677713
Merge pull request #95469 from bruvzg/cowdata_unref
...
`CowData` remove hardcoded offset and unused argument from `_unref`.
2024-08-16 10:36:28 +02:00
Rémi Verschelde
886d5865a4
Merge pull request #95291 from BlueCube3310/hdr-optimizations
...
Optimize .hdr loading and RGB9E5 conversion
2024-08-16 10:35:32 +02:00
Rémi Verschelde
a8bbb09bd5
Merge pull request #95143 from TV4Fun/fix_non_windows_library_load
...
Fix reload of GDExtension libraries in framework package on macOS
2024-08-16 10:35:19 +02:00
Rémi Verschelde
70096c0e6a
Merge pull request #94558 from stuartcarnie/sgc/sprintf_allocations
...
Reduce allocations in `String::sprintf`
2024-08-16 10:34:28 +02:00
Rémi Verschelde
91bf992168
Merge pull request #94353 from aaronp64/cowdata_insert
...
Improve `CowData::insert` performance
2024-08-16 10:34:22 +02:00
Rémi Verschelde
27f3dd8d01
Merge pull request #93149 from Malcolmnixon/smoothstep-degenerate-case
...
Handle the smoothstep degenerate case of empty range
2024-08-16 10:33:58 +02:00
Rémi Verschelde
71ca5aa5ec
Merge pull request #92555 from AThousandShips/insert_improve
...
[Core] Optimize `String::insert`
2024-08-16 10:33:47 +02:00
Rémi Verschelde
e057c49bf7
Merge pull request #92550 from AThousandShips/join_improve
...
[Core] Optimize `String::join`
2024-08-16 10:33:42 +02:00
Rémi Verschelde
46c6865979
Merge pull request #92391 from rburing/fti_3d
...
Physics interpolation (3D)
2024-08-16 10:33:37 +02:00
Rémi Verschelde
eb684cccdc
Merge pull request #92291 from BlueCube3310/image-convert-optimized
...
Optimize image conversion for half and float formats.
2024-08-16 10:33:32 +02:00
Malcolm Nixon
23fc704cbc
This PR handles the smoothstep degenerate case where the range is empty.
...
It also updates the documentation to describe positive and negative ranges.
Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-Authored-By: kleonc <9283098+kleonc@users.noreply.github.com>
2024-08-15 19:08:05 -04:00
A Thousand Ships
ee19a092d9
[Core] Optimize some `String` methods
...
Avoids unnecessary COW checks by using pointers directly.
2024-08-15 17:17:11 +02:00
A Thousand Ships
e211d08c92
[Core] Optimize `String::join`
...
Avoid reallocation by pre-computing size
2024-08-15 16:19:07 +02:00
A Thousand Ships
746c6b87eb
[Core] Optimize `String::insert`
2024-08-15 16:18:47 +02:00
A Thousand Ships
cbaec62b03
[Core] Optimize `String::replace` methods
...
Performs a single allocation, only when any instances are found, and
avoids concatenations and other unnecessary conversions.
2024-08-15 16:15:58 +02:00
Haoyu Qiu
7343dc3a5d
Split TranslationServer into its own file
2024-08-15 15:00:47 +08:00
Lisandro Lorea
9dd372f316
Fix gamepad triggers not working on web exports
...
Fixes #81758
DisplayServerWeb::process_joypads handles buttons 6 and 7 of the
HTML5 Standard Gamepad as a special case by doing:
`input->joy_axis(idx, (JoyAxis)b, s_btns[b]);`
This doesn't work because there is no JoyAxis 6 or 7 in the enum
To fix this we use JoyAxis::TRIGGER_LEFT and TRIGGER_RIGHT for button 6
and 7
However since we are now lying to input->joy_axis we also need to lie in
the mappings for the standard gamepad in godotcontrollersdb.txt,
otherwise input->joy_axis will try to find a mapping to axis 4(LT) and
axis 5(RT) that's not defined.
Therefore we set lefttrigger to +a4 and righttrigger to +a5 in the
mapping, to match what we are actually sending.
A cleaner, and more involved fix to this would be modifying
input->joy_button so that it can handle analog buttons and map them to
axes preserving their value instead of converting to boolean
2024-08-14 16:13:16 -03:00
Summersay415
6df3621b47
Return error when no ResourceFormatLoader found.
2024-08-14 11:45:23 +07:00
bruvzg
69d52ed081
[.NET] Move search in files extension list definition to be after Scene level module init.
2024-08-14 00:16:09 +03:00
Pedro J. Estébanez
31a9e10ddb
ResourceLoader: Use better error handling for possible engine bugs
2024-08-13 12:52:08 +02:00
Pedro J. Estébanez
17ea4b405a
ResourceLoader: Fix error on querying progress for uncached loads
2024-08-13 12:41:11 +02:00
bruvzg
273ba27c2f
`CowData` remove hardcoded offset and unused argument from `_unref`.
2024-08-13 08:53:45 +03:00
BlueCube3310
80cf6cbfe9
Optimize .hdr loading and RGB9E5 conversion
2024-08-09 22:39:30 +02:00
Sai Nane
e6a7c63125
binder_common: Fix uninitialized marshalling
...
C# uses `long`s to access many native values. With `PtrToArg<m_enum>` and
`PtrToArg<bitfield<m_enum>>` this isn't a problem, as C++ code converts
through a `*(int64_t*)` cast in assignment, so all 64-bits are initialized.
However, with `PtrToArg<char32_t>`, value assignment happens through an
`*(int *)` cast, leaving 32 bits uninitialized where `int` is 32 bits. On
platforms where `int` is 16 bits, there are presumably 48 bits uninitialized,
though there are very few platforms where this is still the case.
The easiest way to see the practical effects of this is by looking at
`EventInputKey.Unicode`:
```csharp
public override void _Input(InputEvent @event) {
if (@event is InputEventKey keyEvent) {
if (keyEvent.IsPressed() && !keyEvent.Echo) {
var raw = keyEvent.Unicode;
var value = raw & 0xffffffff;
GD.Print($"Key pressed: raw: {raw}; masked: {(char) value} ({value})");
}
}
}
```
Pressing 'a' emits the following line:
```
Key pressed: raw: -3617008645356650399; masked: a (97)
```
Examining execution flow in gdb shows this conversion going through the
following line:
```
PtrToArg<char32_t>::encode (p_ptr=0x7ffcd5bb4b18, p_val=97 U'a') at ./core/variant/binder_common.h:221
221 *(int *)p_ptr = p_val;
```
Here, `p_val` is still 97, which is the value `InputEventKey.Unicode`
is expected to have. After assignment, `p *(int64_t *)0x7ffcd5bb4b18` displays
`-3617008645356650399`, with only the lower 32 bits being properly assigned,
and is the value we see from C#.
With this patch applied, the above testing `_Input` now prints:
```
Key pressed: raw: 97; masked: a (97)
```
Thank you to blujay1269 for asking about an unexpected value they saw in
`EventInputKey.Unicode`, which prompted this investigation.
2024-08-09 05:15:54 +00:00
Mikael Hermansson
613600fa89
Fix use-after-free in `FileAccess::exists`
2024-08-09 03:33:51 +02:00
aaronp64
6e5175592d
Improve ClassDB::_is_parent_class performance
...
Change ClassDB::_is_parent_class to use ClassInfo::inherits_ptr, instead of looking up each inherited class name.
2024-08-08 13:16:42 -04:00
Joel Croteau
f44d6a235f
Fix reload of GDExtension libraries in framework package on macos
...
`GDExtension::open_library` has a check in it to see if the library was loaded
from a temp file, and if it was to restore the original name as that is the one
we actually care about. This check is breaking extension reloading on Mac when
the library path is to a framework folder, as the file inside the framework
will not generally be the same name as the folder.
This check also shouldn't be necessary even on Windows, which is the only
platform that uses `generate_temp_files`, since disposal of the created temp
file is handled within `OS_Windows::open_dynamic_library`, and
`GDExtension::open_library` (which is the only function to call
`open_dynamic_library` with a `p_data` argument) only cares about the original
library file path and has to do extra work to remove the name of the temp file.
Instead, I have removed that check and set `OS_Windows::open_dynamic_library`
to return the name of the original file and not the name of the copy.
This fixes GDExtension reloading on macOS. I do not have a Windows machine
available to test that it still works properly on Windows, so someone should
check that before merging this.
2024-08-08 08:31:49 -06:00
jsjtxietian
6cf9af2817
Fix error when use relative #include in .gdshader / .gdshaderinc file
2024-08-08 11:59:14 +08:00
bruvzg
f5bb14dceb
[ResourceLoader] Add check to prevent double free crashes.
2024-08-06 08:31:03 +03:00
kobewi
ab4c23583a
Add keep_screen_on editor setting
2024-08-02 03:44:29 +02:00
kobewi
0d1c388991
Fix some legacy code
2024-08-01 12:08:14 +02:00
Hilderin
1ed723bd19
Fix global class cache file not present when no class name
2024-07-31 16:57:25 -04:00
Rémi Verschelde
372b3f8437
Merge pull request #94910 from RandomShaper/res_load_unlocked
...
ResourceLoader: Let resource setup late steps invoke loading in turn
2024-07-31 11:37:41 +02:00
Aleksey Vasenev
2ff6594928
Fix use condition_variable after free
2024-07-30 13:59:20 +03:00
Pedro J. Estébanez
5640e8adc9
ResourceLoader: Let resource setup late steps invoke loading in turn
2024-07-29 18:13:37 +02:00
Alvin Wong
c9f4436073
Fix use-after-free in WorkerThreadPool
2024-07-29 14:26:48 +02:00
Chris Cranford
7963e63165
Expose ClassDB methods `get_property_setter` / `get_property_getter`
2024-07-27 00:13:34 -04:00
Rémi Verschelde
13edeb3ee4
Core: Remove unused PoolAllocator
2024-07-26 13:05:51 +02:00
A Thousand Ships
8f3e2c96eb
[Core] Fix `Variant::construct` of `Object`
...
Variant type was not updated correctly causing leaks in ref-counted
2024-07-25 12:25:29 +02:00
Stuart Carnie
67eb6bed2b
use operator += (char32_t)
...
This prevents an allocation of a new string for every character.
Additionally, use some static constants for padding and sign characters
2024-07-25 09:17:58 +10:00
Gergely Kis
723878bbab
StringName: Use inline static field definitions
...
Before this change StringName used regular static field
definitions for its mutex, _table, configured and debug_stringname
fields.
Since in the general case the ordering of the static variable and field
initialization and destruction is undefined, it was possible that
the destruction of StringName's static fields happened prior to
the destruction of statically allocated StringName instances.
By changing the static field definitions to inline in string_name.h,
the C++17 standard guarantees the correct initialization and destruction
ordering.
2024-07-24 02:40:36 +02:00
bruvzg
25f78a5eb6
Replace .NET detection code with `ClassDB::class_exists("CSharpScript")`.
2024-07-23 23:46:14 +03:00
BlueCube3310
0ed45629fd
Support 64-bit image sizes for VRAM compression
2024-07-21 21:06:14 +02: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
Rémi Verschelde
293c0f7646
Merge pull request #94526 from RandomShaper/wtp_rl_prize_prequel
...
Batch of fixes for WorkerThreadPool and ResourceLoader (safe set)
2024-07-19 11:11:03 +02:00
Pedro J. Estébanez
28a7a95531
ResourceLoader: Fix sync issues with error reporting
...
This is about not letting the resource format loader set the error code directly on the task anymore. Instead, it's stored locally and assigned only when it is right to do so.
Otherwise, other tasks may see an error code in the current one before it's state having transitioned to errored. While this, besides the technically true data race, may not be a problem in practice, it causes surprising situations during debugging as it breaks assumptions.
2024-07-19 10:00:41 +02:00
Fabio Alessandrelli
31454423ba
[Core] Fix TypedArray encoding when full objects is disabled
2024-07-18 09:58:17 +02:00
Rémi Verschelde
0918fd2a21
Merge pull request #94452 from jamie-pate/fix_73374
...
Fix game window stops responding when debugger pauses
2024-07-17 15:45:14 +02:00
Rémi Verschelde
31f696cf03
Merge pull request #94373 from maiself/fix-library-path-as-abs
...
Fix to restore `library_path` as absolute path
2024-07-17 12:24:07 +02:00
Rémi Verschelde
59737bf3f0
Merge pull request #94413 from rburing/fix_action_press_tick
...
Fix physics tick count in `Input.action_press` and `Input.action_release`
2024-07-17 11:44:31 +02:00
Rémi Verschelde
1d13e95e06
Merge pull request #94307 from Bromeon/feature/bitfield-unsigned-docs
...
GDExtension docs: Advise bindings to use `uint64_t` for bitfields
2024-07-17 11:43:54 +02:00
Rémi Verschelde
ab67408390
Merge pull request #94238 from RandomShaper/ref_is_now_rc
...
Make errors on `RefCounted.free()` more accurate
2024-07-17 11:43:32 +02:00
Rémi Verschelde
496fd12b17
Merge pull request #94052 from m4gr3d/clean_input_dispatch_settings
...
Cleanup Android input on render thread settings
2024-07-17 11:42:52 +02:00
Alvin Wong
4091abd727
Respect integrated GPU preference in Windows Settings
2024-07-16 23:46:37 +08:00
Pedro J. Estébanez
5b5cdf2414
Fixup recent changes to threading concerns
...
ResourceLoader:
- Fix invalid tokens being returned.
- Remove no longer written `ThreadLoadTask::dependent_path` and the code reading from it.
- Clear deadlock hazard by keeping the mutex unlocked during userland polling.
WorkerThreadPool:
- Include thread call queue override in the thread state reset set, which allows to simplify the code that handled that (imperfectly) in the ResourceLoader.
- Handle the mutex type correctly on entering an allowance zone.
CommandQueueMT:
- Handle the additional possibility of command buffer reallocation that mutex unlock allowance introduces.
2024-07-16 11:03:02 +02:00
Ricardo Buring
b41ec93d63
Fix physics tick count in Input.action_press and Input.action_release
...
The physics tick count was not yet updated there.
2024-07-16 00:31:44 +02:00
Jan Haller
b2a9ea6d22
GDExtension docs: advise bindings to use uint64_t for bitfields
2024-07-15 22:37:33 +02:00
aaronp64
c1afe7dcdf
Improve CowData::insert performance
...
Update CowData::insert to call ptrw() before loop, to avoid calling _copy_on_write for each item in the array, as well as repeated index checks in set and get. For larger Vectors/Arrays, this makes inserts around 10x faster for ints, 3x faster for Strings, and 2x faster for Variants. Less of an impact on smaller Vectors/Arrays, as a larger percentage of the time is spent allocating.
2024-07-15 14:01:19 -04:00
Pedro J. Estébanez
10b543f8a7
WorkerThreadPool: Fix wrong sync logic breaking task map integrity
2024-07-15 12:15:25 +02:00
Pedro J. Estébanez
62d9ce6445
Re-add resource thread-safety measures
...
These deferring measures were added to aid threaded resource loading in being safe.
They were removed as seemingly unneeded, but it seems they are needed so resources involved in threaded loading interact with others only after "sync points".
2024-07-15 12:15:22 +02:00
Pedro J. Estébanez
76bfe8e0fd
Make errors on RefCounted.free() more accurate
2024-07-15 08:51:42 +02:00
Mai Lavelle
16eea2c837
Fix to restore `library_path` as absolute path
2024-07-14 20:37:38 -04:00
Rémi Verschelde
fe5d567917
Merge pull request #93942 from MikeSchulze/73525
...
Fix GDScript analyzer error when instantiating EditorPlugins.
2024-07-11 09:41:09 +02:00
Rémi Verschelde
34d4c9197d
Merge pull request #94133 from akien-mga/fix-gcc14-Wmaybe-uninitialized
...
Fix a couple GCC 14 `-Wmaybe-uninitialized` warnings
2024-07-11 00:27:32 +02:00
Jamie Pate
b18e1e0dcd
Fix Game window stops responding when debugger pauses
...
Fixes #73374
As of godot 4 On windows/osx the game window will be frozen and will not
be updated.
In the debugger loop it calls
OS::get_singleton()->process_and_drop_events();
which allows windows/osx to handle system events. If the window doesn't
handle these events then both systems will judge the window to be 'not
responding' (osx beachball cursor)
When the event processing code was migrated from OS to DisplayServer the
process_and_drop_events() logic was moved to DisplayServer, but the call
inside the remote debugger pause loop was not updated to call the
DisplayServer version, there are currently no implementations of
OS::process_and_drop_events() so i removed it and switched to the new
DisplayServer::force_process_and_drop_events() method.
2024-07-10 13:38:57 -07:00
baptr
810fcc7431
Fix gdscript analyzer error when instantiating EditorPlugins.
...
Editor code is not instantiable outside of the editor
(1d14c054a1/core/object/class_db.cpp (L369) ).
This is fine for editor plugins and the like, but the GDScript analyzer
balks at it, causing F5 runs to fail: #73525 .
Instead, we really just want to know if the type is abstract - so add
a new ClassDB method to check that and nothing else.
Update core/object/class_db.cpp
Apply code review comments
Co-Authored-By: Bryce <1522777+baptr@users.noreply.github.com>
2024-07-10 10:24:57 +02:00
Fredia Huya-Kouadio
5e59819727
Cleanup Android input on render thread settings
...
Follow up to https://github.com/godotengine/godot/pull/93933
Clean up the set of settings use to control whether Android input should be dispatched on the render thread.
Addresses comments in https://github.com/godotengine/godot/pull/93933#issuecomment-2210437977
2024-07-09 09:15:18 -07:00
Rémi Verschelde
247a481001
Fix a couple GCC 14 `-Wmaybe-uninitialized` warnings
2024-07-09 16:12:22 +02:00
Danil Alexeev
110c4d4067
GDScript: Fix "Mismatched external parser" for autoloads
2024-07-09 16:16:45 +03:00
Rémi Verschelde
daba91d8c6
Merge pull request #93897 from akien-mga/vformat-better-error-message
...
Core: Improve `vformat` error reporting on `sprintf` failure
2024-07-09 00:03:17 +02:00
Rémi Verschelde
8ed9bfdc25
Merge pull request #94089 from dsnopek/gdext-valid-runtime-properties
...
GDExtension: Fix setting base class properties on a runtime class
2024-07-08 23:53:12 +02:00
David Snopek
91fcdff01e
GDExtension: Fix setting base class properties on a runtime class
2024-07-08 12:33:55 -05:00
Rémi Verschelde
3ced38cf28
Merge pull request #94073 from mihe/macos-home-end
...
Add Home/End to text caret movements on macOS
2024-07-08 19:13:39 +02:00
Mikael Hermansson
085f0cc50a
Add Home/End to text caret movements on macOS
2024-07-08 16:08:27 +02:00
Pedro J. Estébanez
a426479b3f
ResourceLoader: Fix error message due to already-awaited tasks being re-awaited
2024-07-08 12:19:44 +02:00
Danil Alexeev
151f34bb80
Core: Remove unused method `_is_gpl_reversed()`
2024-07-08 12:31:09 +03:00
Pedro J. Estébanez
f952d3956c
ResourceLoader: Fixup management of thread-specific status
...
- Allows the message queue override to flush after loading each resource, which was the original intent.
- Removes a redundant call to mark the thread as safe-for-nodes.
2024-07-08 10:30:25 +02:00
Ricardo Buring
2f8ab4a654
Fixed Timestep Interpolation (3D)
...
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
Ricardo Buring
23521635d2
Fix physics tick counter
...
The counter is now incremented at the start of a physics tick rather than at the end.
Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 19:04:05 +02:00
Rémi Verschelde
438382cdc2
Merge pull request #94006 from alvinhochun/log-file-utf8-fix
...
Fix UTF-8 misintepreted as Latin-1 when logging to file
2024-07-07 12:38:54 +02:00
Rémi Verschelde
5bc5ea898c
Merge pull request #93993 from Chaosus/astargrid2d_update_fix
...
Add a check to prevent user to call `AStarGrid2D::update` when its not needed
2024-07-07 12:38:44 +02:00
Rémi Verschelde
7197678df2
Merge pull request #91551 from m4rr5/configure_timestamp_query_elements
...
Add a project setting to configure the maximum number of timestamps.
2024-07-07 12:38:19 +02:00
Alvin Wong
5b3857e5f1
Fix UTF-8 misintepreted as Latin-1 when logging to file
2024-07-07 02:46:41 +08:00
Yuri Rubinsky
453c8753a9
Add a check to prevent user to call `AStarGrid2D::update` when its not needed
2024-07-06 14:59:38 +03:00
Rémi Verschelde
496b7b8482
Core: Improve vformat error reporting on sprintf failure
...
And fix a few occurrences of formatting errors that led me to this.
2024-07-04 10:54:55 +02:00
Togira
ab13513403
Fix RandomPCG::rand_weighted incorrectly returning -1
2024-07-04 02:00:59 +02:00
rune-scape
c8b697c64c
Remove unused `initialize_ref`
2024-07-03 13:32:50 -07:00
Danil Alexeev
68481b6cdb
Core: Fix `Freed Object` booleanization
2024-07-03 09:49:47 +03:00
Haoyu Qiu
ee9cea521d
Fix parsing of `4.` in Expression
2024-07-02 20:53:52 +08:00
lawnjelly
0ed71f3e0c
Physics Interpolation - Fix `interpolated_transform_2d`
...
Uses the skew correct `Transform2D::interpolate_with()` function rather than the bugged 3.x version.
2024-07-02 08:10:55 +01:00
Rémi Verschelde
152d7c1bba
Revert "Make freed object different than null in comparison operators"
...
This reverts commit 150b50cfcd .
As discussed with the GDScript team, this has some implications which aren't
fully consensual yet, and which we want to revisit.
For now we revert to the 4.2 behavior for the 4.3 release, to avoid breaking
user expectations.
2024-07-01 14:11:43 +02:00
Pedro J. Estébanez
f2f9a6b8a1
WorkerThreadPool: Fix wrong pointer used in the case of BinaryMutex
2024-06-28 19:46:55 +02:00
Rémi Verschelde
e052a53bb6
Merge pull request #93695 from RandomShaper/res_load_main_th
...
`ResourceLoader`: Support polling and get-before-complete on the main thread
2024-06-28 14:43:01 +02:00
Rémi Verschelde
6f8b90e412
Merge pull request #93032 from RandomShaper/wtp_antilock
...
GDScript: Avoid deadlock possibility in multi-threaded load
2024-06-28 14:42:48 +02:00
Pedro J. Estébanez
ec61c5064c
ResourceLoader: Support polling and get-before-complete on the main thread
2024-06-28 11:25:10 +02:00
Rémi Verschelde
6cdd303c68
Merge pull request #93564 from Calinou/project-user-dir-prevent-trailing-periods
...
Prevent folder names with trailing periods from being used automatically
2024-06-26 18:15:19 +02:00
Rémi Verschelde
0364443d12
Merge pull request #93346 from RandomShaper/gds_cyc_alt
...
GDScript: Enhance handling of cyclic dependencies
2024-06-26 18:15:16 +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
Pedro J. Estébanez
c1391489e3
GDScript: Enhance handling of cyclic dependencies
2024-06-26 17:44:32 +02:00
Hugo Locurcio
492787b134
Prevent folder names with trailing periods from being used automatically
...
Folder names ending with one or more `.` characters are not allowed
on Windows, so this would break writing logs, shader cache and other
project-specific files. Trailing periods are now stripped in this case.
On non-Windows platforms, this change still applies in the interest
of portability.
2024-06-26 17:42:47 +02:00
Ibrahn Sahir
607c5ec49f
Move MIDI parsing up from ALSA driver to platform independent driver.
...
Aims for more consistent MIDI support across Windows, MacOS, Linux and
to provide a base for adding MIDI drivers for other platforms.
Reworks the MIDIDriverALSAMidi MIDI parsing implementation as a platform
independent version in MIDIDriver::Parser.
Uses MIDIDriver::Parser to provide running status support in MacOS
MIDIDriverCoreMidi.
Collects connected input names at open, ensuring devices indices reported
in events match names in array returned from get_connected_inputs.
Fixes #77035 .
Fixes #79811 .
With code review changes by: A Thousand Ships (she/her)
<96648715+AThousandShips@users.noreply.github.com>
2024-06-25 16:46:30 +01:00
Rémi Verschelde
6b281c0c07
Merge pull request #93563 from mihe/nothreads-feature
...
Add `nothreads` feature tag to signify lack of `THREADS_ENABLED`
2024-06-25 10:08:33 +02:00
Rémi Verschelde
b9038501db
Merge pull request #90582 from Repiteo/core/remove-macro-_NO_DISCARD_
...
Core: Replace `_NO_DISCARD_` macro with `[[nodiscard]]`
2024-06-25 10:01:39 +02:00
Mikael Hermansson
53d3d66f9f
Add `nothreads` feature tag to signify lack of `THREADS_ENABLED`
2024-06-24 19:52:21 +02:00
Rémi Verschelde
f11e8d033d
Remove editor pseudolocalization debug feature
...
We've seen multiple users enable it by mistake and get utterly confused,
reporting as a bug that the interface text is garbled.
On the other hand we haven't really seen much use of the feature by editor
UI developers, so we can likely simply remove it.
If there's a need eventually, we can re-add it as a command line option
(which is also better than an editor setting as one would typically want
to toggle it during development).
2024-06-24 17:08:26 +02:00
Rémi Verschelde
e78dc83ee8
Merge pull request #93540 from RandomShaper/res_load_uncached
...
`ResourceLoader`: Fix handling of uncached loads
2024-06-24 13:20:24 +02:00
Pedro J. Estébanez
884d1da938
ResourceLoader: Fix handling of uncached loads
...
- `CACHE_MODE_IGNORE_DEEP` is checked in addition to `CACHE_MODE_IGNORE` to determine if a load is uncached. This avoids crashes in uncached loads due to prematurely freed load tasks.
- Cached load tasks are isolated (not registered in the task map ever). This avoids regular loads from reusing in-flight cached loads, which is not correct.
2024-06-24 11:25:57 +02:00
Raul Santos
175e5bcf4e
Lookup method also in base scripts of a PlaceHolderScriptInstance
2024-06-22 08:11:48 +02:00
Rémi Verschelde
c53a4a7f64
Merge pull request #90069 from KoBeWi/file_suicide_prevention_measures
...
Don't allow copying file into its own path
2024-06-21 16:49:26 +02:00
Rémi Verschelde
74f9f12c71
Merge pull request #92320 from Hilderin/fix-importing-assets-with-csv
...
Fix reimporting assets with csv in the project
2024-06-21 13:54:35 +02:00
Pedro J. Estébanez
03d14e436b
WorkerThreadPool: Refactor deadlock prevention collaboration into a generic mechanism
...
This is strictly beyond a refactor because it also changes when the mutexes are relocked,
but that's only for extra safety.
2024-06-19 14:01:54 +02:00
Rémi Verschelde
19bf77f666
Merge pull request #91382 from adamscott/sample-player
...
Add sample playback support
2024-06-19 07:59:07 +02:00
bruvzg
dd883bebd4
Improve PR plural translation rules handling.
2024-06-18 19:04:00 +03:00
Rémi Verschelde
0a83e7c5da
Merge pull request #93288 from rune-scape/gdextension-const-stringname-weird
...
Object: Use const correct `GDExtensionConstStringNamePtr`
2024-06-18 17:59:25 +02:00
Rémi Verschelde
a492b32ed0
Merge pull request #93281 from TitanNano/jovan/fix_get_frame_data
...
Make `profiling_get_frame_data` call the correct GDVIRTUAL method
2024-06-18 17:59:22 +02:00
Adam Scott
52fa4f05f3
Add samples playback support
2024-06-18 11:06:31 -04:00
Rémi Verschelde
470cc59706
Merge pull request #93293 from rune-scape/cleanup-order
...
Fix cleanup order in `unregister_core_types()`
2024-06-18 14:09:04 +02:00
rune-scape
818fb63f03
fixed cleanup order in `unregister_core_types()`
2024-06-18 00:44:01 -07:00
rune-scape
ca916a536a
Object: use correct GDExtensionConstStringNamePtr
2024-06-17 19:06:40 -07:00
Jovan Gerodetti
21586da50e
Make profiling_get_frame_data call the correct GDVIRTUAL method.
2024-06-18 00:53:25 +02:00
Fabio Alessandrelli
ae7045f67e
[Crypto] Expose OS.get_entropy
2024-06-17 12:02:37 +02:00
Rémi Verschelde
c3336aa110
Merge pull request #93178 from Faless/crypto/expose_tls_options_getters
...
[Crypto] Expose TLSOptions getters
2024-06-17 10:58:51 +02:00
Fabio Alessandrelli
3639c1f0ca
[Crypto] Expose TLSOptions getters
2024-06-14 22:33:10 +02:00
Fabio Alessandrelli
33d0e1c50c
[Crypto] Expose get_system_ca_certificates.
2024-06-14 22:27:03 +02:00
Rémi Verschelde
087ef4b942
Merge pull request #93124 from RandomShaper/skull_trio
...
`ResourceLoader`: Let the caller thread use its own message queue override
2024-06-14 17:13:38 +02:00
Rémi Verschelde
75eb8ad510
Merge pull request #93091 from RandomShaper/remove_false_safety
...
Remove no longer needed thread safety measures
2024-06-14 17:13:31 +02:00
Rémi Verschelde
08a21fda8d
Merge pull request #93082 from RandomShaper/fix_err_deadlock
...
ResourceLoader: Avoid deadlock when awaiting a loader thread that failed early
2024-06-14 17:13:28 +02:00
Pedro J. Estébanez
cc6f5d1a7a
ResourceLoader: Let the caller thread use its own message queue override
2024-06-13 10:31:11 +02:00
Pedro J. Estébanez
21c03d1956
WorkerThreadPool: Fix thread message queue not restored after overridden in a task
...
Also, simplifies the thread override teardown in MessageQueue.
2024-06-13 10:31:08 +02:00
bruvzg
e651421905
[TextServer, GDExtension] Fix building text servers as GDExtension, expose new/changed low-level methods to GDExtension API.
2024-06-12 19:30:19 +03:00
Pedro J. Estébanez
b6994a414d
Remove no longer needed thread safety measures
...
This is basically a revertion of commit 84b85d894c .
2024-06-12 18:10:11 +02:00
Pedro J. Estébanez
bdcceef0e2
ResourceLoader: Avoid deadlock when awaiting a loader thread that failed early
2024-06-12 13:49:37 +02:00
Rémi Verschelde
5bab95a556
Merge pull request #92827 from raulsntos/core/node-to_string
...
Use GDExtension `to_string` in Node
2024-06-12 10:00:29 +02:00
Hilderin
f1099ab943
Fix reimporting assets with csv in the project
2024-06-11 17:04:15 -04:00
Raul Santos
29bf60cc02
Use GDExtension `to_string` in Node
...
Matches the `Object::to_string` implementation.
2024-06-11 17:40:51 +02:00
Rémi Verschelde
4629845ead
Merge pull request #92718 from jsjtxietian/importer-duplicate
...
Fix same importer will be added multiple times in `get_importers_for_extension`
2024-06-11 11:51:06 +02:00
Rémi Verschelde
e4fa8543ea
Revert "Fix FileSystem dock won't show any file folders"
...
This reverts commit 72856d633a .
Fixes #93022 .
2024-06-11 11:46:35 +02:00
Rémi Verschelde
94929439b6
Revert "Fix method name for custom callable"
...
This reverts commit e88095ed8f .
Fixes #92695 .
2024-06-11 11:02:03 +02:00
Rémi Verschelde
0a9f2d2262
Merge pull request #92650 from Hilderin/fix-fileSystem-dock-wont-show-any-file-folders
...
Fix FileSystem dock won't show any file folders
2024-06-11 10:48:46 +02:00
Hilderin
72856d633a
Fix FileSystem dock won't show any file folders
2024-06-10 19:54:37 -04:00
Chris Cranford
8577340501
Expose several EngineDebugger methods and signals as plugin callbacks
2024-06-10 19:46:23 -04:00