1
0
Fork 0
Commit Graph

9126 Commits

Author SHA1 Message Date
Haoyu Qiu 72d437c030 Move localized number formatting methods to TranslationServer
Co-Authored-By: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-11-10 15:01:22 +08:00
Haoyu Qiu b8a8f8b35a Allow localizing the application name with project translations 2025-11-08 13:06:55 +08:00
Lukas Tenbrink c3747884da Add some important profiling hooks. 2025-11-08 00:08:48 +01:00
Lukas Tenbrink e80194e31f Add `profiler` option to `SCons` builds.
Add `tracy` option to `profiler`. If set, a tracy profiling client will be injected into the Godot binary.

# Conflicts:
#	platform/linuxbsd/godot_linuxbsd.cpp
2025-11-08 00:08:45 +01:00
Thaddeus Crews 6fd949a6dc
Merge pull request #110748 from MauriceButler/project-setting-changed-signal
Add ability to get list of Project Settings changed, similar to Editor Settings functionality
2025-11-07 10:32:39 -06:00
Maurice Butler ffa2651fbc Added ability to get a list of project settings changed. 2025-11-06 20:15:07 +10:00
kobewi 89432600ce Misc script editor code cleanup 2025-11-05 18:18:33 +01:00
David Snopek bc9f3c7d92 Make Vector<T>::duplicate() const
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-11-04 17:13:11 -06:00
David Snopek fc58be9bfc GDExtension: Add system for builtin method compatibility 2025-11-04 17:12:31 -06:00
Thaddeus Crews d845f0960d
Merge pull request #112351 from charjr/fix-array-remove-at
GDExtension: Add missing method flag
2025-11-04 16:32:51 -06:00
Thaddeus Crews cef4a7805f
Merge pull request #111772 from nikitalita/fix-fmem-integer-underflow
Fix buffer over-read in `FileAccessMemory::get_buffer`
2025-11-04 16:32:29 -06:00
Thaddeus Crews 0d89d2fb82
Merge pull request #112149 from timothyqiu/csv-template
Add CSV translation template generation
2025-11-04 16:32:26 -06:00
John Charman c342ce423c GDExtension: Add missing method flag
Add GDEXTENSION_METHOD_FLAG_VIRTUAL_REQUIRED
2025-11-04 18:44:11 +00:00
Pāvels Nadtočajevs 29da94290f
Disable some unsafe CLI arguments in template builds by default. 2025-11-03 12:21:42 +02:00
nikitalita 3fa73d4f5f FileAccessMemory: prevent seeking past end of file 2025-11-02 12:40:51 -08:00
kobewi d27fb9b15a Remove default skeleton path in MeshInstance3D 2025-11-01 01:59:58 +01:00
Thaddeus Crews ae9732139a
Merge pull request #109433 from KoBeWi/hastension
Add `has_extension()` method to String
2025-10-31 09:23:30 -05:00
Thaddeus Crews 416ba9a1c6
Merge pull request #109517 from precup/speedy-signal-disconnect
Speed up signal disconnects in the editor
2025-10-30 10:45:56 -05:00
Thaddeus Crews eaa80e62a8
Merge pull request #108076 from timothyqiu/resource-loader-unused
Remove unused methods in `ResourceLoader`
2025-10-30 10:45:55 -05:00
Haoyu Qiu ea9a2c3b2c Add CSV translation template generation 2025-10-30 08:44:41 +08:00
Haoyu Qiu c885098266 Remove unused methods in `ResourceLoader` 2025-10-30 08:13:20 +08:00
Aaron Franke cc13a376c5
Handle NaN and Infinity in JSON stringify function
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-10-29 12:06:40 -07:00
Thaddeus Crews 881058009f
Merge pull request #111522 from Repiteo/core/to-from-native
Core: Support `INF`/`NAN` in JSON from/to native
2025-10-29 13:13:48 -05:00
Thaddeus Crews a0cde1e151
Merge pull request #112129 from DeeJayLSP/asetget
`ClassDB`: Use `AHashMap` for `property_setget` and `constant/signal_map`
2025-10-29 13:13:47 -05:00
DeeJayLSP a149280cea `ClassDB`: Use `AHashMap` for `property_setget` and `constant/signal_map` 2025-10-28 16:24:54 -03:00
Thaddeus Crews ed751529bc
Merge pull request #112094 from mihe/apple-stack-size
Increase stack size for all secondary threads on Apple platforms
2025-10-28 12:19:36 -05:00
Thaddeus Crews 3cd6b3f8c6
Merge pull request #111674 from bruvzg/pck_virt_addr_4
Update embedded PCK virtual address.
2025-10-28 10:15:35 -05:00
Thaddeus Crews 5c9333073a
Merge pull request #111696 from StarryWorm/langtable-include
Fix missing includes in headers
2025-10-27 10:01:51 -05:00
Thaddeus Crews 5a257a904a
Merge pull request #112073 from timothyqiu/make-csv-great-again
Improve CSV translations
2025-10-27 10:01:50 -05:00
Thaddeus Crews 08db7ddf2f
Merge pull request #110245 from Armynator/add-min-gui-drag-distance
Make minimum drag distance configurable for gui elements
2025-10-27 10:01:41 -05:00
Mikael Hermansson b320a6569e Increase stack size for all secondary threads on Apple platforms 2025-10-27 12:49:35 +01:00
Haoyu Qiu c1ee8e52e4 Improve CSV translations
- Adds context and plural support
- Adds unescape import options
- Better document OptimizedTranslation

Co-Authored-By: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
2025-10-27 17:47:45 +08:00
StarryWorm 796281f62f Add missing includes
Add missing <winnt.h> include in windows/lang_table.h
Add missing typedefs.h and rid.h include in godot_constraint_3d.h
Add missing <type_traits> include in iterable.h
Add missing forward declarations in rendering_shader_library.h
2025-10-26 18:25:17 -04:00
Lukas Tenbrink 65bf516006 Fix `memnew_placement` with `char *` arguments. Before, it would call the description version, allocating on the heap instead of ni the given memory. 2025-10-25 18:50:22 +02:00
Haoyu Qiu d180b9af9f Use more practical default plural rules 2025-10-25 15:50:20 +08:00
Aaron Franke 3c5df91a90
Use ProjectSettings functions instead of hard-coded folder name in tests 2025-10-24 20:24:50 -07:00
hannes 89aa5137b8 add gui_drag_threshold for viewports 2025-10-24 19:01:25 +02:00
Fredia Huya-Kouadio 5277c94fe4 Update the source sets configuration for the `app` and `lib` modules to match the default configuration
Both the `app` and `lib` modules had custom source sets configuration originating from the early days of the project. This updates the configuration to match the default Android Studio configuration which will simplify the addition of unit tests and instrumented tests to the project.

Note that for backcompat reasons, some folders (such as the `res` folder in the `app` module) are left as is.
2025-10-24 07:44:19 -07:00
Thaddeus Crews 06bdfa5a16
Merge pull request #110478 from beicause/opt-node-path-to-string
Optimize NodePath to String by using cached path
2025-10-23 11:03:53 -05:00
Mike Precup abfc63b483 Speed up signal disconnects in the editor 2025-10-22 22:27:25 -07:00
Thaddeus Crews 37764110f6
Merge pull request #110271 from BlueCube3310/image-conv-opti-incompatible
Image: Optimize manual format conversion
2025-10-22 13:48:46 -05:00
Thaddeus Crews 38e20331c8
Merge pull request #107303 from passivestar/close-dialog-action
Add support for closing dialog windows with Cmd+W on macOS
2025-10-22 13:48:36 -05:00
Thaddeus Crews 1b84fe745b
Merge pull request #110308 from BlueCube3310/image-mip-renorm-fix
Image: Fix normalization of mipmaps for half and float formats
2025-10-22 13:48:35 -05:00
BlueCube3310 4266a4e4eb Image: Fix normalization of mipmaps for half and float formats 2025-10-22 15:03:57 +02:00
devloglogan 1a8306bbc1 Allow custom monitors to select desired type 2025-10-22 07:31:44 -05:00
BlueCube3310 b63ec3d0f0 Image: Optimize format conversion 2025-10-22 14:30:18 +02:00
passivestar 979f8fa342 Add support for closing dialog windows with Cmd+W on macOS 2025-10-22 09:51:14 +04:00
Thaddeus Crews 9cd297b6f2
Merge pull request #107487 from roughbits01/fix-shortcut-names
Remove the need to have a display name for built-in action overrides
2025-10-21 19:09:34 -05:00
Thaddeus Crews 3f34e38703
Merge pull request #109596 from atlasapplications/splash-screen-stretch-mode
Add Stretch Modes for Splash Screen
2025-10-21 19:09:33 -05:00
Thaddeus Crews e870cd911b
Merge pull request #110895 from Giganzo/input-focus
Add setting for when to show the focus state for mouse input
2025-10-21 19:09:25 -05:00
Justin Sasso b6b3e1ef9e Add Stretch Modes for Splash Screen
Co-authored-by: Samuel Pedrajas <samuelpedrajaspz@gmail.com>
2025-10-21 18:20:44 -04:00
marwen.azouzi 6dd5266a0e
Removes the need to have a display name for built-in action overrides 2025-10-21 16:45:18 +02:00
Thaddeus Crews f50d7fa1e8
Merge pull request #110709 from DeeJayLSP/dict-reserve
Add `reserve()` to `Dictionary`, apply to constructors on GDScript VM
2025-10-20 18:09:58 -05:00
Thaddeus Crews 06c0985fee
Merge pull request #105450 from raulsntos/MissingNode/default_properties
Make `MissingNode`/`MissingResource` non-virtual and hide from dialogs
2025-10-20 18:09:55 -05:00
Thaddeus Crews 9cefa0d283
Merge pull request #111841 from blueskythlikesclouds/mipmap-normalize-fix
Round values after renormalization when generating mipmaps.
2025-10-20 18:09:51 -05:00
Thaddeus Crews d64a86a35f
Merge pull request #111661 from Repiteo/core/typed-container-migration-v2
Core: Consolidate typed container logic with `type_info.h`
2025-10-20 18:09:36 -05:00
Nintorch 7ae67813a1 Support adding advanced joypad features 2025-10-20 19:28:06 +05:00
Skyth 3d4f248fda Round values after renormalization when generating mipmaps. 2025-10-20 13:36:41 +03:00
Thaddeus Crews acdb8667b5
Core: Sidestep GCC false-positive 2025-10-17 18:57:34 -05:00
Thaddeus Crews 540ea0b96c
Merge pull request #111761 from Ivorforce/fixed-array-warn
Fix false positive warning with `FixedVector` array bounds in gcc.
2025-10-17 11:26:49 -05:00
Lukas Tenbrink 6733345f73 Fix false positive warning with `FixedVector` array bounds in gcc. 2025-10-17 13:11:33 +02:00
Thaddeus Crews 60710df3b6
Merge pull request #94047 from KoBeWi/resource_printer
Improve `to_string()` and add it to Resource
2025-10-16 12:48:11 -05:00
Thaddeus Crews 9e96c7d9b8
Merge pull request #110378 from timothyqiu/rtl-preview
Make text-related nodes translation domain aware
2025-10-16 12:48:05 -05:00
Pāvels Nadtočajevs 21aa53f718
Update embedded PCK virtual address. 2025-10-16 11:35:20 +03:00
Thaddeus Crews 20430236e7
Merge pull request #107999 from timothyqiu/translation-cleanup
Clean up editor translation related methods
2025-10-15 16:31:09 -05:00
Thaddeus Crews 49219de402
Merge pull request #108862 from timothyqiu/plural-rules
Move context and plural support to `Translation`
2025-10-15 16:31:07 -05:00
Thaddeus Crews 7390c358f5
Core: Consolidate typed container logic 2025-10-15 08:04:51 -05:00
Thaddeus Crews a364d6ad75
Merge pull request #111561 from StarryWorm/core/variant-includes-rework
Core: Fix missing includes in `type_info.h`
2025-10-14 17:13:40 -05:00
Thaddeus Crews 4d3a899c64
Merge pull request #111633 from YYF233333/ccb-include
Remove `callable_bind.h` from `object.h`
2025-10-14 10:31:29 -05:00
Thaddeus Crews 879d4439e7
Merge pull request #111617 from HolonProduction/hotfix
Add missing initialization for bitpacked object members
2025-10-14 10:31:22 -05:00
StarryWorm c17e76572d Fix `type_info.h` includes 2025-10-14 11:12:41 -04:00
Yufeng Ying 7d3c25d083 Remove callable_bind.h from object.h 2025-10-14 16:24:05 +08:00
HolonProduction bad44931a8 Add missing initialization for bitpacked object members 2025-10-13 21:55:44 +02:00
Thaddeus Crews b802229423
Core: Support `INF`/`NAN` in JSON from/to native 2025-10-13 13:57:55 -05:00
Thaddeus Crews 0450686035
Merge pull request #111460 from KoBeWi/dialoging_shortcut_files
Rework FileDialog shortcuts
2025-10-13 12:29:57 -05:00
HolonProduction f6ff2216ee CodeEdit: Use flag to recalculate characteristics 2025-10-13 16:17:19 +02:00
Raul Santos 6faa4e369a
Make `MissingNode`/`MissingResource` non-virtual and hide from dialogs
This allows ClassDB to get the default values for inherited properties.
The `MissingNode` and `MissingResource` types are excluded from the create
dialog and the inspector's Resource selector.
2025-10-12 09:58:50 +02:00
kobewi 263a2bdec6 Rework FileDialog shortcuts 2025-10-11 14:37:40 +02:00
Clay John 8b06cdf277
Revert "Handle NaN and Infinity in JSON stringify function" 2025-10-10 18:22:24 -07:00
Thaddeus Crews 16a11ac88b
Merge pull request #111358 from Ivorforce/no-variant-hasher
Remove `VariantHasher` and `VariantComparator` in favour of specialising `HashMapHasherDefault` and `HashMapComparatorDefault`.
2025-10-10 10:26:12 -05:00
Thaddeus Crews e33f89fe27
Merge pull request #111323 from HolonProduction/rm-script
Remove `Object::script`
2025-10-10 10:26:09 -05:00
Thaddeus Crews 89ce203427
Merge pull request #106997 from Ivorforce/fixed-move-semantics
Fix `FixedVector` move and copy semantics.
2025-10-10 10:26:06 -05:00
Thaddeus Crews d4a87d9bb3
Merge pull request #106636 from Ivorforce/dictionary-mutating-fix
Fix `Dictionary::operator[]` from C++ accidentally modifying `const` dictionaries.
2025-10-10 10:26:01 -05:00
Thaddeus Crews dd3b17de88
Merge pull request #105449 from raulsntos/MissingNode/recording_signals
Add `recording_signals` to MissingNode, and rename `MTVIRTUAL` to `DEBUG_VIRTUAL`
2025-10-10 10:25:57 -05:00
Thaddeus Crews 21e5b41642
Merge pull request #108837 from aaronfranke/json-handle-nan-inf
Handle NaN and Infinity in JSON stringify function
2025-10-10 10:25:55 -05:00
Raul Santos 09ad9e535b
Rename `MTVIRTUAL` to `DEBUG_VIRTUAL` 2025-10-09 22:11:18 +02:00
Thaddeus Crews c41e47034e
Merge pull request #111342 from Ivorforce/dict-assert-no-string
Assert that `dictionary.h` does not include `String`, and that neither of the fundamental containers include `Object`
2025-10-09 11:46:50 -05:00
Thaddeus Crews 5913469309
Merge pull request #111431 from Ivorforce/registration-order-3
Reorder registration of types, to register supertypes before subtypes.
2025-10-09 11:46:47 -05:00
Thaddeus Crews 7efb51c9d3
Merge pull request #111361 from Ivorforce/cleanup-hashfuncs
Clean up `hashfuncs.h`
2025-10-09 11:46:43 -05:00
Lukas Tenbrink 9843a016f5 Reorder registration of types, to register supertypes before subtypes. 2025-10-09 11:50:32 +02:00
kobewi e6783dbdd1 Improve to_string() and add it to Resource 2025-10-09 00:54:38 +02:00
Thaddeus Crews 52d32cee8d
Merge pull request #111383 from Ivorforce/core-types-update-2
Register core singleton types before instantiating them.
2025-10-08 13:56:39 -05:00
Thaddeus Crews e20acd3fe3
Merge pull request #111289 from HolonProduction/rm-has-named-classes
Move deprecated `has_named_classes` from `ScriptLanguage` to `ScriptLanguageExtension`
2025-10-08 13:56:37 -05:00
Thaddeus Crews 0091d30e3e
Merge pull request #108818 from bruvzg/no_cli_over
Add project setting and build option to disable `override.cfg` and related CLI arguments.
2025-10-08 13:56:35 -05:00
Thaddeus Crews 7c033002b0
Merge pull request #110863 from kisg/libgodot_migeran_core
LibGodot: Core - Build Godot Engine as a Library
2025-10-08 13:56:34 -05:00
Ed Lu 49efe2b3b8 load_threaded_get doesn't return null resources when used with CACHE_MODE_IGNORE 2025-10-07 16:31:27 -07:00
Thaddeus Crews d61cd9149a
Merge pull request #111327 from Ivorforce/gdvirtual-shorten-get-method-info
Simplify `gdvirtual.gen.inc` `_get_method_info` arguments with a helper function.
2025-10-07 17:15:12 -05:00
Thaddeus Crews ef853bbc06
Merge pull request #111347 from Ivorforce/no-algorithm
Add `max()` to `Span`, replacing `<algorithm>` include from `rendering_device_commons.h`
2025-10-07 17:15:09 -05:00
Thaddeus Crews 6ef2c7b34b
Merge pull request #110823 from Calinou/ui-builtin-actions-all-devices
Allow all gamepad devices for built-in `ui_*` input actions
2025-10-07 17:15:00 -05:00
Lukas Tenbrink b3ec2edc04 Register core singleton types before instantiating them. 2025-10-07 23:10:00 +02:00
Lukas Tenbrink 1fa332cad4 Add `max()` to `Span`.
Remove `<algorithm>` include from `rendering_device_commons.h`, using `Span` instead.
2025-10-07 22:26:32 +02:00
Lukas Tenbrink 5df5c2212a Simplify `gdvirtual.gen.inc` `_get_method_info` arguments with a helper function.
# Conflicts:
#	core/object/make_virtuals.py
2025-10-07 22:23:43 +02:00
Thaddeus Crews 9c63619f20
Merge pull request #111318 from Ivorforce/registration-order-1
Improve type registration order in `register_core_types.cpp`.
2025-10-07 11:54:41 -05:00
Thaddeus Crews 89e3587cd8
Merge pull request #111339 from HolonProduction/obj-pack
Bitpack more `Object` booleans
2025-10-07 11:54:34 -05:00
Thaddeus Crews 1c643549f3
Merge pull request #111337 from Ivorforce/gdvirtual-init-virtual-ptr
Abstract `Object` virtual pointer init into a method instead of duplicating it across `gdvirtual.gen.inc`
2025-10-07 11:54:31 -05:00
Giganzo e384085ca1 Add setting for when to show the focus state for mouse input 2025-10-07 14:26:14 +02:00
Lukas Tenbrink f678729f89 Clean up `hashfuncs.h`: Move long functions to `hashfuncs.cpp` and replace `static` with `inline`. Remove `hash_make_uint64_t` and `hash_make_uint32_t`. 2025-10-07 13:50:18 +02:00
Lukas Tenbrink d2ee378d1c Remove `VariantHasher` and `VariantComparator` in favour of specializing `HashMapHasherDefault` and `HashMapComparatorDefault`. 2025-10-07 13:47:39 +02:00
Rémi Verschelde 9052d31c68
Merge pull request #111331 from Repiteo/scons/revert-cppextpath
Revert "SCons: Add `CPPEXTPATH` for external includes"
2025-10-07 13:07:19 +02:00
Gergely Kis 6c44c80c62 LibGodot: Core - Build Godot Engine as a Library
* Add a new GodotInstance GDCLASS that provides startup and iteration commands to control a Godot instance.
* Adds a libgodot_create_godot_instance entry point that creates a new Godot instance and returns a GodotInstance object.
* Adds a libgodot_destroy_godot_instance entry point that destroys the Godot instance.

Sample Apps: https://github.com/migeran/libgodot_project

Developed by [Migeran](https://migeran.com)

Sponsors & Acknowledgements:

* Initial development sponsored by [Smirk Software](https://www.smirk.gg/)
* Rebasing to Godot 4.3 and further development sponsored by [Xibbon Inc.](https://xibbon.com)
* The GDExtension registration of the host process & build system changes were based
  on @Faolan-Rad's LibGodot PR: https://github.com/godotengine/godot/pull/72883
* Thanks to Ben Rog-Wilhelm (Zorbathut) for creating a smaller, minimal version for easier review.
* Thanks to Ernest Lee (iFire) for his support

Co-Authored-By: Gabor Koncz <gabor.koncz@migeran.com>
Co-Authored-By: Ben Rog-Wilhelm <zorba-github@pavlovian.net>
2025-10-07 02:15:41 +02:00
Lukas Tenbrink 91c48b3151 Abstract `Object` virtual pointer init into a method instead of duplicating it across `gdvirtual.gen.inc`. 2025-10-07 00:12:40 +02:00
Lukas Tenbrink 839e0358b3 Assert that `dictionary.h` does not include `String`, and that neither of the fundamental containers include `Object`. 2025-10-06 23:03:27 +02:00
HolonProduction 7b2e148687 Bitpack more `Object` booleans 2025-10-06 22:01:22 +02:00
Thaddeus Crews c01c7b800d
Merge pull request #111221 from Ivorforce/ahashmap-no-hashmap-include
Remove `hash_map.h` include from `a_hash_map.h`, and remove cross conversion operators
2025-10-06 14:34:15 -05:00
Thaddeus Crews f1f9f54ac3
Merge pull request #111244 from Ivorforce/dont-include-array
Remove `Array` include from `dictionary.h` and `ustring.h`.
2025-10-06 14:34:10 -05:00
Thaddeus Crews aae2def236
Merge pull request #111266 from HolonProduction/completion-filter-internal
Autocompletion: Filter ClassDB argument options
2025-10-06 14:34:02 -05:00
Thaddeus Crews b17aa3343a
Revert "SCons: Add `CPPEXTPATH` for external includes" 2025-10-06 13:09:22 -05:00
Lukas Tenbrink d6036462b1 Remove `hash_map.h` include from `a_hash_map.h`, and remove cross conversion operators. 2025-10-06 17:20:31 +02:00
HolonProduction 2adecffbc3 Remove `Object::script` 2025-10-06 16:27:53 +02:00
Lukas Tenbrink dc5e615a1d Remove `Array` include from `dictionary.h` and `ustring.h`. 2025-10-06 16:21:36 +02:00
Thaddeus Crews 5935a32e32
Core: Cleanup headers in `core/config`
- `MainLoop` now forward-declared in `OS`
2025-10-06 09:20:56 -05:00
Thaddeus Crews d1d28c0bcf
Merge pull request #111223 from Ivorforce/remove-iterator-include
Replace `std::size` usage with `std_size` to avoid `<iterator>` include.
2025-10-06 09:06:49 -05:00
Thaddeus Crews 6febc2bf96
Merge pull request #111066 from Ivorforce/memory-namespace
Change `Memory` from a class into a namespace.
2025-10-06 09:06:42 -05:00
Thaddeus Crews d8df20a2e6
Merge pull request #110932 from Ivorforce/string-buffer-size-comment
Add comments to `String::size` to lead people to `length()` and explain the difference.
2025-10-06 09:06:40 -05:00
Thaddeus Crews 686b56fae9
Merge pull request #106434 from Ivorforce/invert-hashfuncs
Reduce cross project includes by rewriting `HashMapHasherDefault`.
2025-10-06 09:06:37 -05:00
Thaddeus Crews dd6ffaabdc
Merge pull request #105793 from Ivorforce/gdtype-the-first
Core: Add initial architecture for first-class `Object` types. Optimize `is_class`
2025-10-06 09:06:36 -05:00
Thaddeus Crews 30a0a41982
Merge pull request #111274 from chocola-mint/include-optimization-logger
Remove `file_access.h` and `script_backtrace.h` includes from `logger.h`.
2025-10-06 09:06:32 -05:00
Thaddeus Crews ef5ecd95d7
Merge pull request #111254 from Ivorforce/object-no-rb-rw
Remove `rw_lock.h` and `rb_map.h` includes from `object.h`.
2025-10-06 09:06:29 -05:00
Thaddeus Crews 3b04c8464c
Merge pull request #107273 from DexterFstone/add-game-speed-controls
Add game speed controls to the embedded game window
2025-10-06 09:06:24 -05:00
Juan faddd60c40
Add unique Node IDs to support base and instantiated scene refactorings
The main goal of this PR is to safeguard when a base or instantiated scene changes (nodes renamed, moved or readded),
that the hierarchy is still maintained and the node and its overridden properties can be preserved.

What it does:
* Implements unique node IDs.
* These IDs act as a fallback to names when saving.
* The IDs are **USED AS A FALLBACK**, so they are just an addition. It should not break any current existing scene.
* If a scene renames or moves a node, inherited or instantiated scenes will no longer lose reference to it.

Unlike the previous approach, this one is intended to be a fallback, only used if the node is not found.
This makes it safer to implement and ensure that, at worst case, we fail to find the node, but nothing breaks.
2025-10-06 12:55:38 +02:00
Lukas Tenbrink 40b9d003af Improve type registration order in register_core_types.cpp. 2025-10-06 10:53:31 +02:00
Lukas Tenbrink 9d44b68867 Remove `rw_lock.h` and `rb_map.h` includes from `object.h`. 2025-10-05 23:29:04 +02:00
Pāvels Nadtočajevs 1211cd827e
Add project setting and build option to disable `override.cfg` and related CLI arguments. 2025-10-05 21:47:57 +03:00
HolonProduction abeb9c654e Move deprecated `has_named_classes` from `ScriptLanguage` to `ScriptLanguageExtension` 2025-10-05 16:55:06 +02:00
chocola-mint ead282ff13 Remove `file_access.h` and `script_backtrace.h` includes from `logger.h`. 2025-10-05 17:49:23 +09:00
DexterFstone 7ddce8ab26 Add game speed controls to the embedded game window 2025-10-05 11:13:15 +05:30
Lukas Tenbrink ad600125df Rewrite `HashMapHasherDefault` based on type traits - it is now possible to declare a default hashing function for any type.
Remove cross-project includes from `hashfuncs.h`.
Improve hashing function for `Color` (based on values instead of `String`).
Move `Variant` comparison from `hash_map.h` to `dictionary.cpp` (`VariantComparatorDictionary`), where it's used.
Remove now unnecessary `HashableHasher`.
2025-10-05 01:49:11 +02:00
Lukas Tenbrink 1db0a60dc0 Replace `std::size` usage with `std_size` to avoid `<iterator>` include. 2025-10-05 00:26:11 +02:00
HolonProduction 5c3eb8b227 Autocompletion: Filter ClassDB argument options 2025-10-04 23:44:07 +02:00
Lukas Tenbrink 4211499248 Change `Memory` from a class into a namespace. 2025-10-04 17:22:07 +02:00
Thaddeus Crews 06827c91c6
Merge pull request #107839 from Rudolph-B/Occlusion-Culling-Optimization
Minor Optimization to Occlusion Culling
2025-10-03 12:01:13 -05:00
Thaddeus Crews f6aa5ba23c
Merge pull request #97210 from AleksLitynski/object-snapshot-debugger
Add an ObjectDB Profiling Tool
2025-10-03 12:01:11 -05:00
Thaddeus Crews 6dfe5de9a8
Merge pull request #111158 from WhalesState/trivial-itr
Refactor `Array` iterators to be trivially copyable.
2025-10-03 12:01:10 -05:00
Thaddeus Crews 00f8f62be7
Merge pull request #106084 from Kaleb-Reid/fix-geometry-3d
Fix ghost collisions in segment_intersects_convex()
2025-10-03 12:01:02 -05:00
Thaddeus Crews 38af23a654
Merge pull request #89409 from aaronfranke/server-folders
Move server files into their subfolders
2025-10-03 12:01:00 -05:00
Thaddeus Crews f44aa13a9f
Merge pull request #111090 from dsnopek/gdextension-compat-unexposed-classes-redo
GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once
2025-10-02 15:12:00 -05:00
Mounir Tohami 9ff5325642 Refactor `Array` iterators to be trivially copyable. 2025-10-02 14:30:55 +03:00
Lukas Tenbrink 712bc99668 Add `STATIC_ASSERT_INCOMPLETE_TYPE` to enforce include minimality.
Add enforcements against `Dictionary` for `ustring.h` and two for `Dictionary` and `String` from `array.h`.
2025-10-01 23:46:35 +02:00
Thaddeus Crews 6bfcfd1d33
Merge pull request #106039 from Ivorforce/cowdata-reserve-exact
Add `reserve_exact` to `CowData`, and change growth factor to 1.5x
2025-10-01 13:12:43 -05:00
Thaddeus Crews f9be832eca
Merge pull request #110257 from BlueCube3310/mip-gen-all-formats
Image: Support generating mipmaps for all uncompressed formats
2025-10-01 13:12:40 -05:00
Lukas Tenbrink ac85d24e64 Add `GDType` and `Object::_gdtype_ptr` for first-class `Object` typing.
The type is currently bare-bones, but will be expanded in future PRs.
2025-10-01 18:49:48 +02:00
Lukas Tenbrink bac9a9be85 Add comments to `String::size` to lead people to `length()` and explain the difference.
# Conflicts:
#	core/string/ustring.h
2025-10-01 12:08:37 +02:00
Lukas Tenbrink c993db9688 Add `reserve_exact` to `CowData` and `Vector`.
Change growth factor to be an indeterministic 1.5x.
Use `reserve_exact` in `FileAccess` to reduce on binary file loading RAM usage.

# Conflicts:
#	core/templates/cowdata.h
2025-10-01 11:57:40 +02:00
Aaron Franke 3d1c9fd5de
Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Thaddeus Crews 55ac91b887
Merge pull request #111084 from Ivorforce/cowdata-reserve-verbose
Make `CowData::reserve` warn message when new capacity < size verbose, like other `reserve` methods
2025-09-30 18:35:23 -05:00
Thaddeus Crews 5a1bc65e06
Merge pull request #110058 from Rinnegatamante/pc_upstream
Perform per-line or per-rect blits in blit_rect.
2025-09-30 18:35:22 -05:00
Thaddeus Crews e5bf31b170
Merge pull request #107369 from Ivorforce/node-iter-children
Core: Add `Node::iterate_children` as a fast way to iterate a node's children
2025-09-30 18:35:21 -05:00
Thaddeus Crews a9d4900284
Merge pull request #109779 from dsnopek/thread-is-main-thread
Expose `Thread::is_main_thread()`
2025-09-30 18:35:16 -05:00
Thaddeus Crews 93fd5c7ad0
Merge pull request #110907 from beicause/extension-deconstruct-before-object
Free script and extension instance before object deconstructing
2025-09-30 18:35:10 -05:00
Thaddeus Crews 76c039fb09
Merge pull request #108725 from dsnopek/gdextension-mem-alloc-pad-align
GDExtension: Add `mem_alloc2` (and friends) so padding can be requested
2025-09-30 18:35:09 -05:00
Thaddeus Crews 6b22951162
Merge pull request #107954 from stuartcarnie/unix_domain_socket_support
Add Core UNIX domain socket support
2025-09-30 18:35:08 -05:00
Thaddeus Crews 4d13966c08
Merge pull request #108698 from Brogolem35/hashset_clear_optimize
Optimize and clean up HashSet::clear
2025-09-30 18:35:01 -05:00
David Snopek 2c707a911f GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once 2025-09-30 14:48:06 -05:00
Lukas Tenbrink 8f533897d8 Make `CowData::reserve` warn message when new capacity < size verbose, like other `reserve` methods. 2025-09-30 20:21:02 +02:00
Thaddeus Crews 726c4e9fba
Merge pull request #84658 from detomon/initialize-quaternion-variant-with-identity
Initialize `Quaternion` variant with identity
2025-09-30 11:19:19 -05:00
Thaddeus Crews 21fd4faf1b
Merge pull request #107469 from Ivorforce/vector-localvector-explicit-span-conversions
Remove implicit conversions between `LocalVector` and `Vector`
2025-09-30 11:19:17 -05:00
Thaddeus Crews 79d0eea742
Merge pull request #110616 from aaronfranke/fix-rtos-fix-32bit
Apply rtos_fix hack for handling 32-bit floats on all calls to rtos_fix
2025-09-30 11:19:16 -05:00
Thaddeus Crews 62933b683e
Merge pull request #105928 from Ivorforce/cowdata-reserve-capacity
Core: Add `reserve` function to `Array`, `Vector`, and `String`
2025-09-30 11:19:13 -05:00
Thaddeus Crews e256771e86
Merge pull request #108836 from aaronfranke/json-grisu
Use num_scientific (Grisu2) when stringifying JSON with full precision
2025-09-30 11:19:12 -05:00
Thaddeus Crews fdf32d1b2a
Merge pull request #108577 from YYF233333/global_class_list
Simplify `ScriptServer::get_global_class_list`
2025-09-30 11:19:10 -05:00
Thaddeus Crews f6fc2f4a08
Core: Remove `skip_cr` argument from `String` 2025-09-28 10:07:24 -05:00
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