1
0
Fork 0
Commit Graph

8952 Commits

Author SHA1 Message Date
Luo Zhihao 727066fe1f Free script and extension instance before object deconstructing
Co-Authored-By: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-09-26 18:15:08 +08:00
Haoyu Qiu 4e80190a46 Move context and plural support to Translation
- `TranslationPO` is now an empty class. It exists for compatibility.
- `OptimizedTranslation` stays the same, no context or plural support.
2025-09-26 10:51:57 +08:00
Haoyu Qiu e882e42e1b Add default plural rules
This makes the PO loader correctly handle the situation where the optional
`Plural-Forms` header field does not exist.

The `Translation` class and its subclasses always have access to valid plural
rules via `_get_plural_rules()`. Plural rules are prioritized:

1. `Translation.plural_rules_override`
2. `TranslationServer.get_plural_rules(locale)`
3. The English plural rules: `nplurals=2; plurals=(n != 1)`

Co-Authored-By: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-09-26 10:51:57 +08:00
Haoyu Qiu ebb96e2303 Move plural rules logic into a separate class
- Extracts plural rules logic in `TranslationPO` into a new `PluralRules` class.
- Changes caching the last used plural index in `TranslationPO` into an LRU cache in `PluralRules`.
- Adds tests for `PluralRules`.
2025-09-26 10:51:55 +08:00
Lukas Tenbrink 1bf821c1e1 Store current capacity in `CowData` buffers, and rewrite most of it.
Add `reserve` to `CowData`, `Vector` and `Array`.

# Conflicts:
#	core/os/memory.h
#	core/templates/cowdata.h
2025-09-25 22:00:17 +02:00
Thaddeus Crews 1f7630f1bf
Merge pull request #110841 from smix8/raster_casual
Make navmesh rasterization errors more lenient
2025-09-25 14:57:11 -05:00
Thaddeus Crews 5fda92451d
Merge pull request #100145 from Ivorforce/memory-offset-func
Add `mem_aligned_address` to simplify data offset constants.
2025-09-25 14:57:09 -05:00
Stuart Carnie 7227fdd805 Core: Add UNIX domain socket support
> [!NOTE]
>
> Later versions of Windows has support for `AF_UNIX`, so it could be
> added.
2025-09-26 05:46:19 +10:00
Lukas Tenbrink 3ac159094f Add `memory_get_offset` to simplify data offset constants. 2025-09-25 20:55:33 +02:00
smix8 19df15f1dc Make navmesh rasterization errors more lenient
Make navmesh rasterization on the navigation regions and map more lenient by starting out with a lower internal cell scale by default and changing the merge error to just warning that can be toggled.
2025-09-25 20:18:18 +02:00
Thaddeus Crews c32c2606f4
Merge pull request #110837 from wheatear-dev/add-gdsoftclass-deeper
Add `GDSOFTCLASS` to deeper inheritors of `Object`
2025-09-25 12:13:56 -05:00
A Thousand Ships bd65cfa876
Revert "Replace many uses of `is_class` with `derives_from`."
This reverts commit 78b743cf4a.
2025-09-25 13:48:53 +02:00
Edward Moulsdale e366471fdc Add GDSOFTCLASS to deeper inheritors of Object 2025-09-24 19:15:56 +01:00
BlueCube3310 f64ccadceb Image: Support generating mipmaps for all formats 2025-09-24 18:48:28 +02:00
Aaron Franke a238af4d20
Use num_scientific (Grisu2) when stringifying JSON with full precision 2025-09-24 08:21:37 -07:00
Thaddeus Crews 78b743cf4a
Merge pull request #110832 from Ivorforce/is-class-to-derives-from
Replace many uses of `is_class` with `derives_from`.
2025-09-24 09:59:09 -05:00
Thaddeus Crews 3d1d4bf934
Merge pull request #110247 from BlueCube3310/image-fill-mips
Image: Make `fill` method also fill the mipmaps
2025-09-24 09:59:04 -05:00
DeeJayLSP 8a7a0faa75 Add `reserve()` to `Dictionary`, apply to constructors on GDScript VM 2025-09-23 16:57:52 -03:00
Thaddeus Crews 8d27c00038
Merge pull request #107692 from timothyqiu/editor-overrides-doc
Show description for editor setting overrides
2025-09-23 14:51:49 -05:00
Thaddeus Crews 329acc038d
Merge pull request #110826 from Ivorforce/reserve-smaller-than-size-verbose
Change "reserve called with a capacity smaller than the current size" error message to a verbose message.
2025-09-23 14:51:48 -05:00
Lukas Tenbrink c6f57c7a55 Change "reserve called with a capacity smaller than the current size" error message to a verbose message. 2025-09-23 20:02:40 +02:00
Lukas Tenbrink 8ef4a43ada Replace many uses of `is_class` with `derives_from`. 2025-09-23 19:59:00 +02:00
Thaddeus Crews cd3a6c88fd
Merge pull request #106200 from BlueCube3310/image-16-u16
Image: Implement 16-bit unorm and uint formats
2025-09-23 12:08:46 -05:00
Hugo Locurcio 0dcf28104d
Allow all gamepad devices for built-in `ui_*` input actions
This allows all controllers to navigate the UI, which enhances
compatibility with PC handhelds when external controllers are connected.

Previously, only the first device was allowed to use `ui_*` actions
out of the box, which means that on a PC handheld, external controllers
couldn't navigate the UI (since the first ID is always the built-in controller).
2025-09-23 17:12:56 +02:00
BlueCube3310 666ed1b51c Image: Make `fill` method also fill the mipmaps 2025-09-23 14:55:04 +02:00
Thaddeus Crews a20ca7bbfe
Merge pull request #110459 from YeldhamDev/let_the_poor_ints_slide
Allow to use sliders for integers in `EditorSpinSlider`
2025-09-22 13:28:52 -05:00
Thaddeus Crews 035f5d3055
Merge pull request #110763 from Ivorforce/object-derives-from
Use `AncestralClass` to speed up `Object::cast_to` when possible.
2025-09-22 13:28:45 -05:00
Thaddeus Crews be421bcdd4
Merge pull request #110250 from YeldhamDev/i_just_cant_keep_focused
Hide `Control` focus when given via mouse input
2025-09-22 13:28:44 -05:00
Michael Alexsander f16ff829f0
Allow to use sliders for integers in `EditorSpinSlider` 2025-09-22 11:23:15 -03:00
Thaddeus Crews b4a99e775d
Merge pull request #109843 from Muller-Castro/fix-fileaccess-create-temp
Fix `FileAccess::create_temp()` default args error
2025-09-22 08:50:07 -05:00
Thaddeus Crews 9b7a723aac
Merge pull request #107721 from YYF233333/ps_include
Remove dependency of `variant.h` in `print_string.h`
2025-09-22 08:50:04 -05:00
Thaddeus Crews 94dbc42a56
Merge pull request #62083 from KoBeWi/string_slice'n_dice
Improve usage of `String.split()` vs `get_slice()`
2025-09-22 08:50:01 -05:00
Lukas Tenbrink 96619d46a1 Use `AncestralClass` to speed up Object::cast_to when possible. 2025-09-22 13:21:51 +02:00
Haoyu Qiu 172c80df67 Make text-related nodes translation domain aware
- Makes `is_layout_rtl()` translation domain aware
- Makes various text-drawing controls translation domain aware
- Makes translation preview use the project's fallback locale when disabled
2025-09-22 09:39:14 +08:00
Brogolem35 7685cb6f48 Optimize clear 2025-09-21 10:19:12 +03:00
Thaddeus Crews 149a4b4ca1
Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
Thaddeus Crews 326b22124a
Merge pull request #108794 from bruvzg/macos_actool_export
[macOS] Add support for exporting macOS 26 Liquid Glass icons.
2025-09-20 13:41:38 -05:00
Thaddeus Crews 40bd86819b
Merge pull request #104332 from ColinSORourke/FindSeq
Add 'Find Sequence' to `Span`s, and consolidate negative indexing behavior
2025-09-20 13:41:34 -05:00
Thaddeus Crews ebbd5a7ff5
Merge pull request #110694 from wheatear-dev/bugfix-110693
Add `GDSOFTCLASS` to `NetSocket`
2025-09-20 13:41:33 -05:00
Thaddeus Crews 8eeef165d4
Merge pull request #104781 from Ivorforce/string-encode-complete
Expose missing `String` encoding conversion functions
2025-09-19 20:54:26 -05:00
Thaddeus Crews 075d99fc11
Merge pull request #109897 from WhalesState/geo2d-opt
Geometry2D minor optimization
2025-09-19 20:54:23 -05:00
Rinnegatamante ad09677532 Perform per-line or per-rect blits in blit_rect. 2025-09-19 22:01:43 +02:00
Michael Alexsander aeb3a45c97
Hide `Control` focus when given via mouse input 2025-09-19 13:43:29 -03:00
Edward Moulsdale c652119812 Add GDSOFTCLASS to NetSocket 2025-09-19 16:01:01 +01:00
kobewi d61a337a70 Improve usage of String.split() vs get_slice() 2025-09-19 16:31:55 +02:00
Thaddeus Crews 9b96eaaf80
Merge pull request #107989 from Jojo-1000/docs-add-required-qualifier
Documentation: Add missing required qualifier for various classes
2025-09-19 09:17:06 -05:00
Yufeng Ying 05dae23f18 Remove dependency of variant.h in print_string.h
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-09-19 14:57:36 +08:00
Lukas Tenbrink 406b22d2d5 Delete `VariantGetInternalPtr` and `VariantImplicitConvert`.
Replace uses with `VariantInternalAccessor`.
2025-09-19 00:20:07 +02:00
Lukas Tenbrink f81287d765 Introduce `VariantImplicitConvert<>` template for types that can be implicitly converted to and from `Variant`.
De-duplicate a lot of `VariantGetInternalPtr`, `VariantInternalAccessor`, `VariantInitializer` and `VariantDefaultInitializer`.
2025-09-19 00:20:07 +02:00
Lukas Tenbrink 0be2a77156 Fix `Dictionary::operator[]` from C++ accidentally modifying `const` dictionaries.
Fix `AudioStreamWav` inserting keys into the input dictionary.
2025-09-18 21:17:42 +02:00
Thaddeus Crews 3fa7c65914
Merge pull request #108504 from precup/optimize-duplicate
Avoid unnecessary copy in ClassDB::get_property_list
2025-09-18 12:42:27 -05:00
Thaddeus Crews d90d8afa5a
Merge pull request #108118 from YYF233333/varray_and_vformat
Simplify `varray`
2025-09-18 12:42:25 -05:00
Thaddeus Crews ff111e395d
Merge pull request #103917 from Ivorforce/sprintf-span
Optimize `vformat` by using `Span` in `sprintf`
2025-09-18 12:42:24 -05:00
Thaddeus Crews aad046edba
Merge pull request #107045 from Ivorforce/rename-hashing-variables
Rename internal fields and variables in `AHashMap`, `HashMap` and `HashSet`
2025-09-18 12:42:20 -05:00
Thaddeus Crews 1e84bc4d9c
Merge pull request #108260 from Silver1063/master
Fix modifier order in keycode string generation
2025-09-18 12:42:20 -05:00
Lukas Tenbrink a916325e6a Use `Span` for `String.sprintf`, to accelerate `vformat` not needing to allocate an `Array`. 2025-09-18 19:29:04 +02:00
Lukas Tenbrink d1fd42bf3c Expose `copy_from_unchecked` as `append_utf32_unchecked` and `String::utf32_unchecked` in `String` for high performance string copies. Expose `append_wstring` and `String::wstring` for platform strings. 2025-09-18 19:26:57 +02:00
Haoyu Qiu 3f03260a21 Cleanup editor translation related methods
- Unify logic for loading editor/property/doc/extractable translations.
- Replace legacy `TranslationServer` methods with translation domains for internal translations.
- Only pre-create editor/property/doc translation domains in editor builds.
- Prevent adding `null` translation.
- Fixes potential loading of duplicated editor translations.
- Add internal `has_translation_for_locale()` instead of calling `get_loaded_translations().has()`.
2025-09-18 20:27:09 +08:00
Lukas Tenbrink 46b88dcbda Rename internal fields and variables in `AHashMap`, `HashMap` and `HashSet` for consistency. 2025-09-17 19:10:02 +02:00
Thaddeus Crews cc7397ceb7
Merge pull request #110556 from Ivorforce/safe-nul-parse
Check for `NUL` characters in string parsing functions.
2025-09-17 11:34:18 -05:00
Thaddeus Crews 38d80598f5
Merge pull request #108121 from Repiteo/core/disabled-class-rework
Core: Handle disabled class detection in `ClassDB`
2025-09-17 11:34:16 -05:00
Thaddeus Crews aa294bb3c8
Merge pull request #110360 from zorbathut/pr/memorybarrierrename
Rename RDD::MemoryBarrier to avoid conflicts with the Windows headers.
2025-09-17 11:34:15 -05:00
Aaron Franke 6bc6110a90
Apply rtos_fix hack for handling 32-bit floats on all calls to rtos_fix 2025-09-17 07:05:33 -07:00
Thaddeus Crews 1a89648c61
Merge pull request #110206 from aaronp64/remove_unused_enum_bitfield_param
Remove unused parameter in `__constant_get_enum_name`/`__constant_get_bitfield_name`
2025-09-16 20:29:01 -05:00
Thaddeus Crews 138e21e6ff
Merge pull request #110169 from BlueCube3310/file-access-flush-opti
Optimize data flushing for `FileAccessCompressed` and `FileAccessEncrypted`
2025-09-16 20:28:58 -05:00
Thaddeus Crews f279257883
Merge pull request #110537 from dsnopek/gdextension-do-not-update-gdextension-special-compat-hashes
GDExtension: Update warning about `gdextension_special_compat_hashes.cpp` to prevent confusion
2025-09-16 20:28:55 -05:00
Lukas Tenbrink abe3b481ae Make conversions from `LocalVector` to `Vector` explicit. 2025-09-16 21:41:28 +02:00
Colin O'Rourke 03d32c68a9 Added Find Sequence to Spans
Added FindSequence to Span.h

Refactored String find to use Span::Find_Seq in Ustring.cpp
2025-09-16 12:37:07 -07:00
Mounir Tohami 081cebb2f7 Geometry2D minor optimization 2025-09-16 21:33:53 +03:00
Thaddeus Crews fb23f7d175
Merge pull request #110557 from Splizard/fix-dump-extension-api-with-docs-indentation
Fix `--dump-extension-api-with-docs` indentation
2025-09-16 11:44:54 -05:00
Thaddeus Crews c39edeca6d
Merge pull request #109744 from Repiteo/core/math-constants-semantic
Core: Integrate semantic constants in math structs
2025-09-16 11:44:49 -05:00
Thaddeus Crews 570577a4d6
Merge pull request #109214 from archhabra/godotengine_109204
Correct the order of Diagonal Mode in Add Property
2025-09-16 09:49:02 -05:00
Quentin Quaadgras e9131550b1 add codeblock indentation back to --dump-extension-api-with-docs
xml codeblock indentation was changed from spaces to tabs but the tabs
were being replaced with empty strings when exported with
--dump-extension-api-with-docs, this is small change so that tab
characters are no longer replaced.
2025-09-16 22:04:32 +12:00
Lukas Tenbrink 0d700e53f3 Check for `NUL` characters in string parsing functions. 2025-09-16 10:55:44 +02:00
Yufeng Ying 8f36c97a49 Optimize varray. 2025-09-16 15:01:26 +08:00
Yufeng Ying a50fc5acd8 Change ClassDB::get_class_list and related stuff. 2025-09-16 15:00:33 +08:00
BlueCube3310 ebdf57fbf1 Optimize data flushing for `FileAccessCompressed` and `FileAccessEncrypted` 2025-09-16 00:19:19 +02:00
David Snopek d0a0d8b798 GDExtension: Update warning about `gdextension_special_compat_hashes.cpp` to prevent confusion 2025-09-15 14:02:56 -05:00
aaronp64 4c3f2be16d Avoid repeated _copy_on_write() calls in Array::resize()
Updated Array::resize() to call ptrw() once before looping to initialize typed array elements, instead of accessing each through .write[].
2025-09-15 14:03:21 -04:00
Luo Zhihao d16413a346 Optimize NodePath to String by using cahced path 2025-09-13 17:09:40 +08:00
Ben Rog-Wilhelm e5ab5acd95 Rename RDD::MemoryBarrier to avoid conflicts with the Windows headers. 2025-09-10 05:19:36 -05:00
aaronp64 cfde73ac17 Remove unused parameter in __constant_get_enum_name/__constant_get_bitfield_name
Removed unused String parameter in __constant_get_enum_name() and __constant_get_bitfield_name() to avoid creating/destroying extra Strings.
2025-09-02 13:13:12 -04:00
Clay John 6339f31a02
Merge pull request #109770 from RandomShaper/fix_signal_antifree
Fix regression in mechanism to hold objects while emitting
2025-09-01 19:42:13 -07:00
Thaddeus Crews 52a5644b5f
Merge pull request #108214 from Nintorch/fix-joypad-vendor-product
Fix `Input.get_joy_info()` regression after the SDL input driver PR
2025-09-01 11:14:12 -05:00
Nintorch f28acf97d0 Fix Input.get_joy_info() regression
SDL input driver did not have the "xinput_index", "raw_name", "vendor_id" and "product_id" fields for this method and exposed an additional, essentially useless for the users "mapping_handled" field. This commit fixes these issues.
2025-08-29 22:13:40 +05:00
Emmanuel Leblond a7f224375a
Fix `classdb_register_extension_class*` documentation in `core/extension/gdextension_interface.h` 2025-08-28 22:11:14 +02:00
Pedro J. Estébanez a25846507d Fix regression in mechanism to hold objects while emitting 2025-08-28 18:23:27 +02:00
Thaddeus Crews 221731f30e
Merge pull request #110003 from WinnerWind/fix-zero-threadcount
Revert "Prevent crashing if `max_threads` is zero."
2025-08-27 13:39:44 -05:00
WinnerWind 976016b701 Revert "Prevent crashing if `max_threads` is zero."
This reverts commit a1788e09bf.
2025-08-27 09:02:34 +05:30
Thaddeus Crews 555e7ad073
Core: Handle disabled class detection in ClassDB 2025-08-26 09:31:14 -05:00
Aaron Franke e90cea9250
Handle NaN and Infinity in JSON stringify function 2025-08-24 10:09:43 -07:00
Kaleb Reid a2b9fc08e3 Fix ghost collisions in segment_intersects_convex() 2025-08-22 22:49:56 -07:00
Thaddeus Crews b432e108d5
Merge pull request #109791 from Talkashie/master
Typo cleanup pass
2025-08-21 18:39:37 -05:00
Muller-Castro be68ff8cea Fix FileAccess::create_temp() default args error 2025-08-21 20:00:55 -03:00
Thaddeus Crews 610a5bd65b
Merge pull request #109276 from bruvzg/sym_copy
Fix symlink copy in `DirAccess::copy_dir`.
2025-08-20 13:04:23 -05:00
Talkashie bc7e68dfd1 Typos 2025-08-19 18:32:59 -05:00
David Snopek b9bff1fba5 Expose `Thread::is_main_thread()` 2025-08-19 10:35:45 -05:00
Thaddeus Crews 84c0ec04f3
Core: Integrate semantic constants in math structs
- Excludes self-explanatory constants (ZERO, ONE, etc)
2025-08-19 10:15:08 -05:00
Yarvin b2e4c4f334 Fix typo - is_deprecated was being set twice, skipping is_experimental. 2025-08-19 13:54:41 +02:00
Thaddeus Crews f5152699bc
Merge pull request #108768 from WinnerWind/fix-zero-threadcount
FIX: Prevent crashing if `max_threads` is zero.
2025-08-18 08:29:04 -05:00
WinnerWind a1788e09bf Prevent crashing if `max_threads` is zero.
Adds a note in the docs that a thread count of 0 has the same effect as a thread count of -1.

Change language of WorkerThreadPool in ProjectSettings

Co-Authored-By: Tomasz Chabora <kobewi4e@gmail.com>
2025-08-17 20:12:41 +05:30
Thaddeus Crews 8892a8d362
Merge pull request #109612 from dsnopek/emit-signal-no-alloca
Don't use `alloca()` in `Object::emit_signalp()` to prevent stack overflow
2025-08-15 12:58:46 -05:00
Rudolph Bester 56e04635a7 Minor Optimization to Occlusion Culling 2025-08-14 20:00:58 +02:00
David Snopek 3eed53686b Don't use `alloca()` in `Object::emit_signalp()` to prevent stack overflow 2025-08-14 09:54:59 -05:00
MarianoGnu 5033a6af07 Never duplicate Scripts when duplicating resources recursively
This allows to duplicate PackedScenes safely
Fixes #108220
2025-08-14 10:26:48 -03:00
Pāvels Nadtočajevs 10fd7163d4
Add methods to check which event first triggered "just pressed/released" state. 2025-08-12 16:25:23 +03:00
kobewi a33ae0be0e Add has_extension() method to String 2025-08-12 13:15:16 +02:00
Thaddeus Crews b1792e5fb5
Merge pull request #109309 from dsnopek/gdextension-startup-callback-after-reload
GDExtension: Call startup callback only after reload is fully finished
2025-08-07 10:40:35 -05:00
Dubhghlas McLaughlin 4841add19a
Fixed `local_to_scene` duplication of typed dictionary. 2025-08-06 17:04:35 -05:00
Thaddeus Crews 65eb664352
Merge pull request #109310 from Yarwin/fix-gdextension-add-editor-plugin-during-initialization-level-editor
Postpone adding new extension plugins to the editor
2025-08-06 12:01:21 -05:00
Thaddeus Crews 395b0f0a3d
Merge pull request #103635 from BlueCube3310/rgb565-fix
Fix Image format RGB565 conversion and rendering
2025-08-06 12:01:17 -05:00
Thaddeus Crews 5f402da946
Merge pull request #109240 from bruvzg/scr_log_unreg
Automatically unregister loggers when script language is deinitialized.
2025-08-06 12:01:14 -05:00
David Snopek 92d9227d4a GDExtension: Call startup callback only after reload is fully finished 2025-08-05 08:30:39 -05:00
Yarvin 1aca96d139 Postpone adding new extension plugins to the editor.
----

Extension EditorPlugins added during Hot Reload on Initialization level
Editor were being attached to the scene tree before all the GDExtension
Classes (such as already loaded resources) are re-initialized.
2025-08-04 21:57:22 +02:00
Pāvels Nadtočajevs 19dbfec777
Fix symlink copy in `DirAccess::copy_dir`. 2025-08-03 19:52:48 +03:00
Thaddeus Crews 62dc131d74
Merge pull request #109172 from mihe/printraw-overflow
Fix `printraw` causing infinite recursion in `Logger._log_message`
2025-08-03 10:51:16 -05:00
BlueCube3310 638c6a5659 Fix Image format RGB565 conversion 2025-08-03 16:28:13 +02:00
Pāvels Nadtočajevs 9fd98410df
Automatically unregister loggers when script language is deinitialized. 2025-08-02 18:29:00 +03:00
Arti Chhabra 6a288c9275 Corrected the order of DiagonalMode in Add Property 2025-08-01 14:59:59 -07:00
Thaddeus Crews c2202d36c1
Merge pull request #103838 from ebeem/master
Core: Fix translation remaps incorrectly falling back
2025-08-01 11:45:22 -05:00
Thaddeus Crews 761f8df597
Merge pull request #109016 from Rindbee/use-undo_redo-to-track-property-changes
Use `EditorUndoRedoManager` to track the property changes of the configured `InputEvent` in the plugin
2025-08-01 11:45:20 -05:00
Thaddeus Crews c5d2033e98
Merge pull request #109123 from beicause/fix-img-nearest-cubic-resize-bias
Fix `Image` nearest and cubic resizing bias
2025-08-01 11:45:13 -05:00
Almarhoon Ibraheem 9add19a4ad Core: Fix translation remaps incorrectly falling back 2025-08-01 19:23:06 +03:00
Mikael Hermansson 494471dda2 Fix `printraw` causing infinite recursion in `Logger._log_message` 2025-07-31 20:24:47 +02:00
Thaddeus Crews 00a0512854
Merge pull request #109151 from clayjohn/WTP-low-priority-threads
Allow processing low priority threads on calling thread in the WTP.
2025-07-31 10:39:13 -05:00
Thaddeus Crews 0d10e85b88
Merge pull request #109122 from mihe/ext-resource-id-caching
Fix external resource IDs being lost for default properties
2025-07-31 10:38:45 -05:00
Mikael Hermansson d0826b0bfe Fix external resource IDs being lost for default properties 2025-07-31 16:57:35 +02:00
clayjohn 2a8ac1c05b Allow processing low priority threads on calling thread in the WTP.
This fixes a recent regression. In theory, low priority tasks should always go to the queue and never be executed on the calling thread. However, when using NO_THREADS build, all tasks need to execute on the calling thread.
2025-07-30 23:15:38 -07:00
Jojo-1000 ab178719d9 Mark methods for various classes as required 2025-07-30 19:24:56 +02:00
LuoZhihao a32b59622f Fix `Image` nearest and cubic resizing bias 2025-07-30 23:54:12 +08:00
Thaddeus Crews cfc58710b7
Merge pull request #108697 from clayjohn/pump-task
Ensure that threads only process one pump task
2025-07-30 09:03:42 -05:00
clayjohn 782b9e328c Ensure that threads only process one pump task.
This is necessary because we will always deadlock if a thread takes on multiple pump tasks since pump tasks never return.

This means when using separate threads for certain systems (like physics or rendering), we need to be sure that there are enough threads to have at least one per system (to ensure forward progress).
2025-07-29 07:15:34 -07:00
Pāvels Nadtočajevs 838cb0eefc
[macOS] Add support for exporting macOS 26 Liquid Glass icons. 2025-07-28 14:35:48 +03:00
Chaosus 610712a269 Add a way to filter neighbor points to AStar2D/3D 2025-07-28 13:25:02 +03:00
风青山 95403207e8
Use `EditorUndoRedoManager` to track the property changes of the
configured `InputEvent` in the plugin

This allows undo and redo, and can mark in time whether the handled
`InputEvent` resource is edited.

`command_or_control_autoremap` needs to be handled separately, as
its value will change the usage of other properties.
2025-07-27 13:57:16 +08:00
George Marques 28d3214acd
Expose type validator from Dictionary and allow testing without error
- Now you can get the ContainerTypeValidate from a Dictionary (both for
  keys and for values).
- ContainerTypeValidate exposes a validator function that does not show
  any error in case of failure. This allows testing values before trying
  to use them in Dictionary.
2025-07-24 13:35:48 -03:00
Thaddeus Crews b74c8b4c03
Merge pull request #108614 from dsnopek/gdextension-compat-unexposed-classes
GDExtension: Prevent compatibility breakage from change to `ClassDB::instantiate()` for unexposed classes
2025-07-23 13:27:02 -05:00
Thaddeus Crews 037956dbc9
Merge pull request #108831 from aaronfranke/json-pass-full-precision
Fix internal JSON stringify not preserving p_full_precision
2025-07-22 11:20:15 -05:00
Mikael Hermansson 836a1a0b02 Prevent infinite recursion during printing 2025-07-22 16:13:03 +02:00
Aaron Franke b626695f70
Fix internal JSON stringify not preserving p_full_precision 2025-07-21 08:36:29 -07:00
David Snopek 91a4a28aab GDExtension: Add `mem_alloc2` (and friends) so padding can be requested 2025-07-17 16:16:05 -05:00
David Snopek e325c4bdba GDExtension: Prevent compatibility breakage from change to `ClassDB::instantiate()` for unexposed classes 2025-07-14 14:09:23 -05:00
kobewi 188e313dd8 Fix Variant properties losing value upon script update 2025-07-12 20:29:19 +02:00
Mike Precup 047edb8933 Avoid unnecessary copy in get_property_list 2025-07-10 17:06:13 -07:00
Thaddeus Crews b3416c7390
Merge pull request #108464 from simpkins/include_fix
Remove an unnecessary include of main/ code from core/
2025-07-10 11:39:27 -05:00
Mike Precup 25115609ff Fix issue with array comparison reference 2025-07-09 20:22:09 -07:00
Adam Simpkins 21bc4b509f Remove an unnecessarily include of main/ code from core/
Code in core/ generally should not depend on code from main/

This include was added in #41100 in order to call
`Main::is_project_manager()`.  The `is_project_manager()` check was
later removed in #52742 but this include was never cleaned up.

This clean-up is related to #108429.
2025-07-09 19:09:11 -07:00
Thaddeus Crews e748514112
Merge pull request #105835 from bruvzg/edited_scene_direction
Improve edited scene layout direction detection.
2025-07-09 11:33:11 -05:00
Mikael Hermansson 3528e83ff3 Various fixes and style nitpicks 2025-07-09 14:27:48 +02:00
Aleksander Litynski 78f1543e35 Add an ObjectDB Profiling Tool
A new tab is added to the debugger that can help profile a game's memory usage.

Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
2025-07-08 16:39:24 +02:00
Silver1063 00f5b230be Fix modifier order in keycode string generation
Fix the order in which modifier keys are appended in as_text() and keycode_get_string() to ensure consistent and logical ordering (Ctrl, Alt, Shift, Meta). Refactored keycode_get_string() to use a vector for building the key string, improving readability and maintainability.
2025-07-06 14:23:50 -07:00
Haoyu Qiu a805b0c658 Show description for editor settings overrides
Also marked the "Editor Overrides" section name for translation.
2025-07-05 14:44:17 +08:00
A Thousand Ships f11aff3841
Editor: Restructure editor code
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
Thaddeus Crews 77b680244d
Merge pull request #102186 from HolonProduction/completion-builtin-enum
Improve GDScript editor support for global enums
2025-07-03 12:21:19 -05:00
Rémi Verschelde 1123d7fd9c
Merge pull request #102499 from Jordyfel/resource-docs
Improve documentation of some `Resource` methods
2025-06-28 13:02:54 +02:00
BlueCube3310 16b9ee6f50 Image: Implement 16-bit unorm and uint formats 2025-06-28 00:30:52 +02:00
风青山 efed435fa3
Fix `screen_accum` not being reset when it should be in `Input::VelocityTrack`
Resets `screen_accum` like `accum`.
2025-06-26 20:06:03 +08:00
Pāvels Nadtočajevs 42733a2a5c
Implement sparse bundle PCK support. 2025-06-26 00:47:25 +02:00
Thaddeus Crews bf9346caad
Merge pull request #107898 from BlueCube3310/image-invis-fix
Image: Fix `is_invisible` detection for RGBAH and RGBAF
2025-06-25 15:14:07 -05:00
Geoffroy Warin 88c086d082 Sync controller mappings DB with SDL community repo
Synced with: mdqinc/SDL_GameControllerDB@1849728
2025-06-25 12:42:43 +02:00
Thaddeus Crews ab134b386a
Merge pull request #106218 from Nintorch/master
Add support for SDL3 joystick input driver for Windows, Linux and macOS
2025-06-24 18:34:28 -05:00
Thaddeus Crews db28859774
Merge pull request #107591 from timothyqiu/group-enable-default
Make `PROPERTY_HINT_GROUP_ENABLE` hide properties by default
2025-06-24 18:34:28 -05:00
Nintorch 0b3496fb4f
Add support for SDL3 joystick input driver
Made possible by EIREXE, xsellier and the SDL team.

This commit includes statically linked SDL3 for Windows, Linux and macOS.
The vendored copy of SDL3 was setup to only build the required subsystems
for gamepad/joystick support, with some patches to be able to make it as
minimal as possible and reduce the impact on binary size and code size.

Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
Co-authored-by: Xavier Sellier <xsellier@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-06-25 01:28:50 +02:00
Thaddeus Crews 27414203de
Merge pull request #103219 from kuruk-mm/fix-file-handle-leak
Fix file handle leak in ZipArchive and FileAccessZip
2025-06-24 09:58:43 -05:00
Thaddeus Crews d97d8c16e7
Merge pull request #107663 from mihe/script-break-error
Fix errors not being emitted when debugger breaks on script errors
2025-06-24 09:58:38 -05:00
Mateo "Kuruk" Miccino 38c69f1814
Fix file handle leak in ZipArchive and FileAccessZip 2025-06-24 07:34:22 -03:00
BlueCube3310 e35c80b61c Image: Fix `is_invisible` detection for RGBAH and RGBAF 2025-06-23 18:21:04 +02:00
Thaddeus Crews 97f4b8a260
Merge pull request #107788 from dsnopek/gdextension-interface-minor-adjustments
Fix minor inconsistencies and errors in `gdextension_interface.h`
2025-06-23 09:37:22 -05:00
lawnjelly 14a814586a Provide quick access to `Object` ancestry 2025-06-23 07:11:11 +01:00
David Snopek d5eb66947b Fix minor inconsistencies and errors in `gdextension_interface.h` 2025-06-22 07:56:00 -05:00
Rémi Verschelde 2e60d51499
Merge pull request #107796 from Ivorforce/resize-rereserve
Use `reserve` in `LocalVector::resize`, to restore expected growth behavior
2025-06-22 11:59:15 +02:00
Lukas Tenbrink 697e0bb077 Use `reserve` in `LocalVector::resize`, to restore expected growth behavior. 2025-06-21 11:23:05 +02:00
Rémi Verschelde a0f9f5d90a
Merge pull request #107770 from RandomShaper/fix_res_dupe_bindings
Enhance bindings of deep resource duplication
2025-06-21 11:14:19 +02:00
Pedro J. Estébanez 7dc37bdc9c Enhance bindings of deep resource duplication 2025-06-20 18:40:41 +02:00
Thaddeus Crews 8de08c7c21
Merge pull request #107646 from stuartcarnie/string_append_utf8_bug
Core: Fix invalid resize after appending
2025-06-18 18:14:11 -05:00
Thaddeus Crews 3d94ba0f84
Merge pull request #107643 from stuartcarnie/remote_debug_fix
Core: Fix data race in remote debugger; handle errors
2025-06-18 18:14:10 -05:00
Thaddeus Crews ac6252c9c8
Merge pull request #107486 from Ivorforce/rendering-no-alloc-api
Use raw buffer pointers in `RenderingDevice` allocation APIs to avoid intermediary arrays
2025-06-18 18:14:00 -05:00
Thaddeus Crews 6c9463dbd2
Merge pull request #107594 from dsnopek/gdextension-shutdown-order-fix
GDExtension: Always run shutdown callback before deinitializing any levels
2025-06-18 18:13:52 -05:00
Thaddeus Crews d4fa7e15ed
Merge pull request #106919 from kitbdev/fix-codeedit-hover-word-lookup
Fix CodeEdit hover word lookup
2025-06-18 18:13:43 -05:00
Stuart Carnie 2ebf8369f0 Core: Fix data race in remote debugger; handle errors 2025-06-19 06:25:56 +10:00
David Snopek 3b7e34556c GDExtension: Always run shutdown callback before deinitializing any levels 2025-06-18 07:51:12 -05:00
Lukas Tenbrink 2b36c79f7b Use `Span<uint8_t>` in `RenderingDevice` allocation APIs to avoid intermediary arrays on calls. 2025-06-18 12:31:48 +02:00
Mikael Hermansson 1b7b44390a Fix errors not being emitted when debugger breaks on script errors 2025-06-18 11:52:26 +02:00
Stuart Carnie 4b3800582e Core: Fix invalid resize after appending 2025-06-18 08:57:05 +10:00
Haoyu Qiu 296aba7dc5 Fix CSV translation not updating after reimport 2025-06-17 17:22:49 +08:00
Haoyu Qiu a7ab249a2a Make `PROPERTY_HINT_GROUP_ENABLE` hide properties by default 2025-06-16 20:03:49 +08:00
Rémi Verschelde 9e1e2fdbd5
Merge pull request #107550 from AdrienUfferte/fix-spelling
Fix spelling in comments
2025-06-16 01:52:48 +02:00
jsjtxietian 6f094856e7
Make get_id_path return empty when first point is disabled 2025-06-16 01:42:13 +02:00
HolonProduction af54b13603 Autocompletion: Add support for global enums 2025-06-15 19:41:13 +02:00
Adrien Ufferte a11a64fbf4 Comments spelling fixes 2025-06-15 01:36:10 +02:00
Rémi Verschelde ee84a5a100
Merge pull request #107482 from nikitalita/fix-pck-misalign
PCKPacker: Fix first file being written mis-aligned
2025-06-13 18:37:46 +02:00
Rémi Verschelde 60ba4ba6bf
Merge pull request #107471 from Calinou/input-map-fix-colorpicker-action-name
Fix action name for `ui_colorpicker_delete_preset` in built-in InputMap
2025-06-13 18:37:42 +02:00
Rémi Verschelde d9cda33090
Merge pull request #107415 from adamscott/add-emscripten-version-to-log-header
[Web] Add Web-build specific stdout header
2025-06-13 18:37:37 +02:00
Lukas Tenbrink 175c38d0dc Core: Add `Node::iterate_children` as a fast way to iterate a node's children, without needing allocations or `get_child`.
Adds `Iterable` class to templates.
2025-06-13 17:01:51 +02:00
nikitalita 6e823b4b14 PCKPacker: Fix first file being written mis-aligned 2025-06-13 16:25:38 +02:00
Rémi Verschelde 7f925a104f
Merge pull request #107380 from Ivorforce/no-stringname-search
Core: Remove unused `StringName::search`.
2025-06-13 15:53:55 +02:00
Rémi Verschelde 97cef7dce8
Merge pull request #107349 from beicause/project-settings-fix-enum-hint
ProjectSettings: Fix missing property hint of setting overrides
2025-06-13 15:53:51 +02:00
Rémi Verschelde dbc75f2424
Merge pull request #106720 from Calinou/resourceloader-tweak-error-messages
Improve error messages in ResourceLoader
2025-06-13 15:53:41 +02:00
Hugo Locurcio b4477f3f49
Fix action name for `ui_colorpicker_delete_preset` in built-in InputMap
The old action name is a leftover from a now-reverted PR.
2025-06-13 02:24:34 +02:00
Hugo Locurcio 16d551a8dd
Improve error messages in ResourceLoader
- Remove part of the "Failed loading resource" message about opening
  the project in the editor, as it's sometimes misleading.
- Fix `(expected type: )` appearing at the end of the
  "No loader found for resource:" error message.
2025-06-13 02:00:59 +02:00