Commit Graph

7279 Commits

Author SHA1 Message Date
Pedro J. Estébanez dee65d1435 Redefine GetSimpleTypeT<> in terms of <type_traits> 2024-04-24 11:43:13 +02:00
Hugo Locurcio 459f14c098
Strip ANSI escape codes from file logging
Text editors cannot display ANSI escape codes, so these should be
stripped from log files to ensure readability.

Since this uses a regex, this works both for `print_rich()`
and manually inserted ANSI escape codes.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2024-04-24 01:02:47 +02:00
Pedro J. Estébanez 15de869a9c CommandQueueMT: Optimize & fix handling of sync/ret commands 2024-04-23 19:57:12 +02:00
Rémi Verschelde ff9d78c141
Merge pull request #90889 from timothyqiu/compat
Use compatible text resource format when possible
2024-04-23 19:11:46 +02:00
Rémi Verschelde cb1d6140be
Merge pull request #90866 from Repiteo/core/variant-initalizer-lists
Core: Utilize initalizer lists in Variant constructors
2024-04-23 19:11:29 +02:00
Haoyu Qiu 941e5c4820 Use compatible text resource format when possible 2024-04-23 12:04:44 +08:00
Rémi Verschelde e22743298a
Merge pull request #90961 from Lateasusual/gdextension-hot-reloading-borked
GDExtension: Fix missing library path breaking hot reloading
2024-04-22 22:18:34 +02:00
Rémi Verschelde 2980a6b295
Merge pull request #90916 from Naros/expose-classdb-class-get-property-default-value
Expose `ClassDB::class_get_property_default_value` method
2024-04-22 22:18:26 +02:00
A Thousand Ships ec29c3e784
[Core] Fix property access on read-only `Dictionary` 2024-04-22 13:57:34 +02:00
Rémi Verschelde 659cf339bc
Merge pull request #90931 from aaronfranke/is-ascii-alphabet-char
Rename internal `is_ascii_char` to `is_ascii_alphabet_char`
2024-04-22 12:53:28 +02:00
Rémi Verschelde 61d146c89e
Merge pull request #90748 from aaronfranke/fix-basis-scale-global
Fix incorrect name of internal Basis global scale getter
2024-04-22 12:52:52 +02:00
Rémi Verschelde 4b6629978e
Merge pull request #90701 from permelin/improve-delaunay3d-triangulation
Delaunay3D/LightmapGI: Improve triangulation
2024-04-22 12:52:12 +02:00
Rémi Verschelde 504d01b61e
Merge pull request #90403 from bruvzg/file_resize
[FileAccess] Implement `resize` method.
2024-04-22 12:51:55 +02:00
Rémi Verschelde 0b89b8b64c
Merge pull request #90368 from Naros/expose-classdb-is-enum-bitfield
Expose `ClassDB::is_enum_bitfield` as `ClassDB::is_class_enum_bitfield`
2024-04-22 12:51:51 +02:00
Rémi Verschelde fb3c3ace62
Merge pull request #90153 from rburing/clipper2_electric_boogaloo
Replace Clipper1 library by Clipper2 library
2024-04-22 12:51:46 +02:00
Rémi Verschelde 0cf1557045
Merge pull request #89780 from AThousandShips/import_fix
Fix import and saving related crashes
2024-04-22 12:51:37 +02:00
A Thousand Ships 49ae632b7d
Fix import and saving related crashes
* Don't add empty mesh to result when importing obj files
* Check for null resources in `ResourceSaver`
2024-04-22 12:13:19 +02:00
Chris Clyne 8564e94547 GDExtension: Fix missing library path breaking hot reloading 2024-04-20 21:08:11 +01:00
Ricardo Buring 8a28f816d0 Replace Clipper1 library by Clipper2 library 2024-04-20 13:37:59 +02:00
Aaron Franke b1f5e9fe3a
Rename internal is_ascii_char to is_ascii_alphabet_char 2024-04-20 02:36:41 -07:00
Chris Cranford fdf31011a5 Expose ClassDB::class_get_property_default_value method 2024-04-19 13:51:28 -04:00
Chris Cranford c936ee54ee Expose `ClassDB::is_enum_bitfield` as `ClassDB::is_class_enum_bitfield` 2024-04-19 12:46:36 -04:00
Fredia Huya-Kouadio 764de7fe31 Collapse the gdextension arguments into the `GDExtensionData` struct
This is used to reduce the number of arguments to `OS::open_dynamic_library(...)`.
2024-04-19 07:56:02 -07:00
Fredia Huya-Kouadio ede88cf59d Fix loading GDExtension dependencies on Android 2024-04-19 07:55:08 -07:00
Rémi Verschelde e50867ae34
Merge pull request #90776 from Naros/avoid-script-language-not-overridden
Defer call to `set_break_language`
2024-04-19 16:27:33 +02:00
Rémi Verschelde 0b8042180e
Merge pull request #90447 from dsnopek/gdextension-hot-reload-not-classdb-instantiate
Fix GDExtension hot reload for classes not created via `ClassDB::instantiate()`
2024-04-19 16:27:26 +02:00
Thaddeus Crews b95e7fcecd
Core: Integrate initalizer lists for Variant 2024-04-19 08:52:17 -05:00
Pedro J. Estébanez 8192d1cbc7 WorkerThreadPool: Fix yield-over for not-yet-started tasks 2024-04-18 19:25:19 +02:00
Rémi Verschelde 866f2c56f7
Merge pull request #90674 from RadiantUwU/change_stuff
Implement `Object.remove_user_signal(signal: StringName)`
2024-04-18 12:24:34 +02:00
Radiant e263b11cdd Implement remove_user_signal()
Co-authored-by: Timothe Bonhoure <tbonhoure@ymail.Com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-04-18 11:22:59 +03:00
Pedro J. Estébanez 9653bcaa43 WorkerThreadPool: Polish yielding (fix corner case, remove misleading warning) 2024-04-17 18:32:14 +02:00
Rémi Verschelde 56dfed4efd
Merge pull request #90751 from dalexeev/core-marshalls-fix-objects-as-id-in-typed-arrays
Core: Fix binary serialization of objects in typed arrays
2024-04-17 10:59:01 +02:00
Chris Cranford d0fa2c3cfa Defer call to set_break_language 2024-04-16 20:01:53 -04:00
Danil Alexeev 27b94eb44c
Core: Fix binary serialization of objects in typed arrays
* Allow typed arrays to be encoded even if `p_full_objects` is `false`.
* Use `Array[EncodedObjectAsID]` instead of the encoded element type
  when decoding an array if `p_allow_objects` is `false`.
2024-04-16 16:19:10 +03:00
Rémi Verschelde 0ae1dcc3d2
Merge pull request #90741 from yorickdewid/patch-1
Fix missing return in `StreamPeerTCP::poll` when connection is `STATUS_CONNECTED`
2024-04-16 13:31:03 +02:00
Rémi Verschelde dc8e82b00a
Merge pull request #90730 from timothyqiu/root-auto-translate
Add project setting for root node auto translate mode
2024-04-16 13:31:00 +02:00
Rémi Verschelde 7210d6cb43
Merge pull request #90358 from KoBeWi/finding_errors_in_other_apps
Add `OS.get_process_exit_code()` method
2024-04-16 13:30:41 +02:00
Aaron Franke e83807ef85
Fix incorrect name of Basis global scale getter 2024-04-16 04:26:52 -07:00
kobewi dce4a3e4c2 Add get_process_exit_code() method 2024-04-16 12:46:15 +02:00
Yorick de Wid 61a2f5c534
FIX: Return if TCP is in STATUS_CONNECTED
If the `StreamPeerTCP` is polled and the TCP connection is `STATUS_CONNECTED` it should return after polling netsocket. Without `return` poll keeps calling `_sock->connect_to_host` and `connect()`.
2024-04-16 10:32:11 +02:00
Haoyu Qiu 8d1cb7e74c Add project setting for root node auto translate mode 2024-04-16 11:02:04 +08:00
Per Melin 89d0934f71 Delaunay3D: Improve triangulation 2024-04-15 18:48:21 +02:00
Danil Alexeev 3c62f5fe5c
Core: Fix `RefCounted` handling in `marshalls.cpp` 2024-04-15 13:53:40 +03:00
Rémi Verschelde c951421c99
Merge pull request #90268 from RandomShaper/wtp_servers
Use WorkerThreadPool for Server threads (enhanced)
2024-04-15 10:12:00 +02:00
Rémi Verschelde 50fd380359
Merge pull request #90562 from bruvzg/fix_links
[Unix / DirAccess] Fix removing directory symlinks with `remove`, ensure `erase_contents_recursive` is not following directory symlinks.
2024-04-15 10:00:22 +02:00
A Thousand Ships 80cb914e06
[Core] Fix incorrect comparison for `Array` const iterator 2024-04-13 17:32:33 +02:00
ajreckof ca020ad8cd Fix load subtask not being registered leading to false progress values. 2024-04-13 01:42:29 +02:00
Thaddeus Crews 55a4836e5b
Core: Replace `_NO_DISCARD_` macro with attribute 2024-04-12 16:40:01 -05:00
bruvzg 88b3e68f93
[FileAccess] Implement `resize` method. 2024-04-12 19:20:49 +03:00
bruvzg 57fde36f31
[Unix / DirAccess] Fix removing directory symlinks with `remove`, ensure `erase_contents_recursive` is not following directory symlinks. 2024-04-12 10:06:49 +03:00
Thaddeus Crews 127025679b
Core: Use `<type_traits>` where applicable 2024-04-11 13:13:59 -05:00
Rémi Verschelde 58f8a227b9
Merge pull request #90482 from Faless/mbedtls/3.6.0-tls
mbedTLS: Update to new LTS v3.6.0
2024-04-11 11:02:46 +02:00
Rémi Verschelde 8ec0372f01
Merge pull request #90470 from RandomShaper/fix_cmd_queue_mt_reentrancy
CommandQueueMT: Fix flush re-entrancy
2024-04-11 11:02:42 +02:00
Rémi Verschelde e73f40e260
Merge pull request #87117 from DmitriySalnikov/rename_pdb
Add renaming of PDB files to avoid blocking them
2024-04-11 11:02:31 +02:00
Lyuma 40fa684c18 mbedTLS: Update to new LTS v3.6.0
Keep module compatibility with mbedtls 2.x (old LTS branch).

A patch has been added to allow compiling after removing all the `psa_*`
files from the library folder (will look into upstreaming it).

Note: mbedTLS 3.6 finally enabled TLSv1.3 by default, but it requires
some module changes, and to enable PSA crypto (new "standard" API
specification), so it might be best done in a separate commit/PR.
2024-04-10 21:19:22 +02:00
Juan Linietsky 65686dedf9 Use WorkerThreadPool for Server threads
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.

CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.

Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
Pedro J. Estébanez 1b104ffcd8 WorkerThreadPool: Support daemon-like tasks (via yield semantics) 2024-04-10 18:47:42 +02:00
Pedro J. Estébanez 71facbaa88 WorkerThreadPool: Fix data race 2024-04-10 18:47:41 +02:00
Rémi Verschelde 8764769ee8
Merge pull request #89186 from groud/save_byte_arrays_as_base64_encoded
Save PackedByteArrays as base64 encoded
2024-04-10 17:49:24 +02:00
A Thousand Ships 64146cb7f3
[Core] Add iteration support to `Array` 2024-04-10 14:49:34 +02:00
clayjohn c0d0bdc160
Clarify bounce and reflect docs and update param names 2024-04-10 14:07:08 +02:00
Pedro J. Estébanez 114b14b0fa CommandQueueMT: Fix flush re-entrancy 2024-04-10 10:02:30 +02:00
Rémi Verschelde bff6955459
Merge pull request #85024 from Jordyfel/moving-scripts-of-types-of-exported-typed-arrays
When saving a resource with an exported typed array, check whether the type is an external resource
2024-04-09 22:25:00 +02:00
David Snopek 87aec2745d Fix GDExtension hot reload for classes not created via `ClassDB::instantiate()` 2024-04-09 13:40:33 -05:00
Jordyfel 82de00a174 Type of exported typed array can be external resource 2024-04-09 15:28:42 +03:00
Rémi Verschelde 6772047e50
Sync controller mappings DB with SDL 2 community repo
Synced with mdqinc/SDL_GameControllerDB@4c9b8dace8
2024-04-08 22:22:30 +02:00
David Snopek 927f2e1e53 Use `likely()` in `PtrToArg<T *>` when checking for null `Object *`s 2024-04-08 11:06:56 -05:00
Rémi Verschelde 97b5c142f8
Merge pull request #90269 from KoBeWi/sir,_your_file_cannot_be_opened
Ignore `ERR_FILE_CANT_OPEN` error when loading
2024-04-08 11:38:15 +02:00
Rémi Verschelde 9738cc7ef2
Merge pull request #90335 from Faless/io/marshall_nil_script
[IO] Fix marshall decoding when script is NIL
2024-04-08 11:21:50 +02:00
Rémi Verschelde 7d96ec4f9d
Merge pull request #88329 from ManpreetXSingh/key-window-menu
Windows: Add support for enabling Alt+Space menu and fix borderless maximize
2024-04-08 11:20:05 +02:00
Fabio Alessandrelli 8addab785d [IO] Fix marshall decoding when script is NIL
We changed how scripts are binary serialized, and added a check to
ensure the new format is enforced, but there is still a case where the
old format (plain "prop"-"value" combo) is used, and that is when the
script is NIL.
2024-04-07 09:55:15 +02:00
Rémi Verschelde dd9aacd59f
Merge pull request #90273 from Pylgos/fix-gdextension-get-rid
Fix `Resource::get_rid override` not working in GDExtension
2024-04-06 13:06:50 +02:00
Rémi Verschelde c1b2cfdced
Merge pull request #90271 from DarioSamo/pipeline_cache_setting
Add toggle for enabling or disabling RenderingDevice's pipeline cache.
2024-04-06 13:06:47 +02:00
Manpreet Singh 329d04d331 Windows: Add alt+space menu and fix window modes 2024-04-06 16:26:19 +05:30
Haoyu Qiu 9bcda8f94c Prefer family name in fonts' names table 2024-04-06 16:08:59 +08:00
Pylgos c2be2dfbde Fix Resource::get_rid override not working in GDExtension 2024-04-06 01:27:16 +09:00
Dario ecaafa6001 Add toggle for enabling or disabling RenderingDevice's pipeline cache. 2024-04-05 13:14:07 -03:00
kobewi f0cbd388dc Ignore ERR_FILE_CANT_OPEN error when loading scene 2024-04-05 17:51:27 +02:00
Rémi Verschelde 0ff056ea2e
Merge pull request #90218 from Repiteo/do-while-false-cleanup
Update lingering `do/while(0)` defines
2024-04-05 12:16:34 +02:00
Rémi Verschelde d100888f0d
Merge pull request #90208 from Repiteo/scons/ninja-msvc
SCons: Fix Ninja compilation with MSVC
2024-04-05 12:16:22 +02:00
DmitriySalnikov b73e740786 Add renaming of PDB files to avoid blocking them 2024-04-05 00:14:23 +03:00
Thaddeus Crews bbb3eb3a1a
Update lingering `do/while(0)` defines 2024-04-04 14:17:22 -05:00
Thaddeus Crews 7918d50297
SCons: Fix Ninja compilation with MSVC 2024-04-04 10:16:33 -05:00
Thaddeus Crews b0cda1f85f
Core: Use fixed-width integer types in Variant 2024-04-04 08:54:11 -05:00
Rémi Verschelde c5ac5d2308
Merge pull request #90063 from aaronfranke/really-floaty
Fix some uses of `float` and `real_t` in `core/math`
2024-04-04 14:36:57 +02:00
Rémi Verschelde c8088c100f
Merge pull request #90038 from AThousandShips/load_path
[Core] Fix `ResourceLoader.load` cache with relative paths
2024-04-04 14:36:51 +02:00
Rémi Verschelde 3fdc169751
Merge pull request #89889 from BoThompson/compute_image_metrics-fix
Remove a redundant `MAX` comparison within a loop in `compute_image_metrics`.
2024-04-04 14:35:17 +02:00
Rémi Verschelde 7fa97f37fb
Merge pull request #89452 from Riteo/name-a-better-duo
SCons: Enable the experimental Ninja backend and minimize timestamp changes to generated code
2024-04-04 14:31:24 +02:00
Rémi Verschelde 69a4ff8996
Merge pull request #88328 from Khasehemwy/reversed-z
Use Reverse Z for the depth buffer
2024-04-04 14:30:53 +02:00
Rémi Verschelde a1ab287010
Merge pull request #88047 from theashtronaut/add_partial_return_astar
Add a partial path return option for astar
2024-04-04 14:30:49 +02:00
Rémi Verschelde 406d9426cb
Merge pull request #86121 from lawnjelly/occlusion_cull_jitter
Jitter raster occlusion camera to reduce false positives.
2024-04-04 14:30:42 +02:00
Rémi Verschelde 84b3d14c9a
Merge pull request #82852 from timothyqiu/property-context
Add context support for editor property name i18n
2024-04-04 14:30:29 +02:00
Rémi Verschelde ec5cae37d6
Merge pull request #78219 from dalexeev/core-typed-arrays-bin-serialization
Core: Add typed array support for binary serialization
2024-04-04 14:30:22 +02:00
Khasehemwy d950f5f838
Use Reverse Z for the depth buffer 2024-04-04 13:54:15 +02:00
ashley aa1bbe1542 add partial path return option for astar
* AStar2D, AStar3D and AStarGrid2D now can return a partial path if the destination point isn't reachable but still in the map. This option is available for both get_point_path and get_id_path
2024-04-03 22:27:33 -07:00
lawnjelly 691854d589 Jitter raster occlusion camera to reduce false positives.
Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
2024-04-03 12:18:45 +01:00
kobewi 7b1b9b86ed Don't allow copying file into its own path 2024-03-31 13:53:36 +02:00
Haoyu Qiu 479b7afa8e Add context support for editor property name i18n 2024-03-31 18:40:14 +08:00
A Thousand Ships 0274877def
[Core] Fix `ResourceLoader.load` cache with relative paths
Paths were not simplified meaning that `res://foo.bar` was treated
differently from `./foo.bar` and similar
2024-03-30 12:50:08 +01:00
Aaron Franke 158fcf107c
Fix some uses of float and real_t in core/math 2024-03-29 16:44:12 -07:00
Bo Thompson 75d65195ae
Remove a redundant `MAX` comparison within a loop in `compute_image_metrics` 2024-03-28 22:23:15 +01:00
Rémi Verschelde 237479ffe8
Merge pull request #89946 from wlsnmrk/action-press-strength-clamp
Fix `Input.action_press()` accepting out-of-bounds strength values
2024-03-28 10:47:31 +01:00
Mark Wilson 41e70db8b1 Fix action_press() by clamping strength to 0, 1
Changed Input.action_press() treatment of strength parameter to match
behavior of InputEventAction and documentation, by clamping between 0
and 1. Fixes Input.get_action_strength() returning values over 1 when
large values are passed to Input.action_press().
2024-03-27 11:17:40 -04:00
bruvzg 082b420c0a
Implement `OS.execute_with_pipe` method to run process with redirected stdio.
Implement `pipe://*` path handling for creation of named pipes.
2024-03-27 11:41:16 +02:00
Rémi Verschelde f371913a32
Merge pull request #89679 from enetheru/patch-3
Properly skip printing version header with `--no-header`
2024-03-26 13:45:28 +01:00
Rémi Verschelde 23f55c06fb
Merge pull request #89677 from enetheru/patch-2
Print correct path when unable to find GDExtension library
2024-03-26 13:45:25 +01:00
Rémi Verschelde 9335b83a32
Merge pull request #87831 from Riteo/bitfield-xor
Core: Implement a XOR operator for BitField
2024-03-26 13:45:02 +01:00
Samuel Nicholas 93559db3a2
Properly skip printing version header with `--no-header`
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-03-26 11:41:13 +01:00
Samuel Nicholas 5f89b15098
Print correct path when unable to find GDExtension library 2024-03-26 00:13:56 +01:00
Rémi Verschelde f371b7fb70 Merge pull request #87883 from TontonSancho/text-skip-occurence
Add 'Skip to next (text) occurrence' feature to text editor
2024-03-25 13:15:56 +01:00
Rémi Verschelde c41da69ed7
Merge pull request #89863 from ppphp/resource_format_override
Add `override` mark to ResourceFormat class
2024-03-25 11:18:57 +01:00
Rémi Verschelde 89c70da7bd
Merge pull request #89858 from AThousandShips/utf_fix
[Buildsystem] Fix encoding when reading files
2024-03-25 11:18:54 +01:00
Christophe Andral c988bec4b3 Add 'Skip to next (text) occurrence' feature to text editor
Adds `ui_text_skip_selection_for_next_occurrence` action and related implementation to text editor.
This action is bound `Ctrl+Alt+D` shorcut.

Used in conjonction with `ui_add_skip_selection_for_next_occurrence`, it gives the user the ability to select many occurrences of a selection
and avoid some of them.
Used without a previous selection, the action jumps to the next occurrence of the current word under the caret.
2024-03-25 11:12:28 +01:00
ppphp d4e1a74efb Add 'override' mark to ResourceFormat class 2024-03-25 04:06:34 +08:00
A Thousand Ships 4933fa8bf5
[Buildsystem] Fix encoding when reading files 2024-03-24 18:02:56 +01:00
A Thousand Ships bb6305d1c4
[Core] Fix incorrect file sort method 2024-03-24 17:54:57 +01:00
Rémi Verschelde 8f9136963d
Merge pull request #89671 from alesliehughes/string_underrun
Stop possible underrun when processing a string
2024-03-24 01:21:12 +01:00
Rémi Verschelde c258da378b
Merge pull request #89619 from AThousandShips/rand_fix
[Core] Fix `rand_weighted` not using the current state
2024-03-24 01:19:20 +01:00
Rémi Verschelde 5940fd5d07
Merge pull request #89526 from Calinou/inputevent-add-emulation-internal-constants
Expose `DEVICE_ID_EMULATION` constant in InputEvent
2024-03-24 01:16:34 +01:00
Rémi Verschelde 48cf825839
Merge pull request #89451 from AThousandShips/emit_fix
[Core] Disconnect one-shot signals before calling callbacks
2024-03-24 01:15:52 +01:00
Rémi Verschelde d5f944ff10
Merge pull request #89261 from paulloz/core/fix-script-reloading-outside-script-editor
Fix how scripts reload outside of ScriptEditor
2024-03-24 01:15:23 +01:00
Rémi Verschelde f49efbe0e5
Merge pull request #89229 from akien-mga/main-refactor-os-exit-code
Refactor OS exit code to be `EXIT_SUCCESS` by default
2024-03-24 01:15:06 +01:00
Rémi Verschelde cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Rémi Verschelde e92806c7e7
Merge pull request #88424 from rburing/fti_2d
Physics interpolation (2D)
2024-03-24 01:13:53 +01:00
Ricardo Buring 2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
A Thousand Ships db455e5bee
[Core] Disconnect one-shot signals before calling callbacks
This prevents infinite recursion with one-shot connections emitting
themselves
2024-03-20 20:24:44 +01:00
A Thousand Ships 79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable 2024-03-20 13:47:42 +01:00
A Thousand Ships 2cbf469912
Fix sorting of files/dirs in dialogs
Sorts leading `_` before other characters except `.`.
2024-03-20 13:45:47 +01:00
Danil Alexeev c30bec7fca
Core: Add typed array support for binary serialization 2024-03-20 11:37:41 +03:00
Alistair Leslie-Hughes 87fe71f52f Stop possible underrun when processing a string
Calling String::utf8("Unicode String", -1) assumes that the string will be NULL terminated.
However, the length parameter is always used to find the end of the string.  So there is the
chance the character before th start of the string is read.

Making the pointer NULL in the case where it's out of range, still allows the following
to work as expected
while (ptrtmp != ptrtmp_limit && *ptrtmp)
....
2024-03-19 20:17:11 +11:00
Paul Joannon 63674648fb
Fix how scripts reload outside of ScriptEditor 2024-03-18 10:29:06 +01:00
A Thousand Ships 9c518d5f42
[Core] Fix `rand_weighted` not using the current state
The method incorrectly used `Math::randf` instead of `randf`
2024-03-17 19:21:16 +01:00
Hugo Locurcio 6818e50adc Expose `DEVICE_ID_EMULATION` constant in InputEvent
This also improves the documentation related to emulated InputEvents.
2024-03-16 19:16:40 +01:00
Rémi Verschelde 68ad520da4
Merge pull request #89519 from YeldhamDev/are_you_kidding_me_right_now
Fix translation fallback not working in the Project Manager
2024-03-15 17:01:34 +01:00
Michael Alexsander 11937d3a79
Fix translation fallback not working in the Project Manager 2024-03-15 12:00:20 -03:00
Riteo a5cf92664d SCons: unify code generations routine and minimize timestamp changes
Previously, all of the code generation routines would just needlessly
write the same files over and over, even when not needed.

This became a problem with the advent of the experimental ninja backend
for SCons, which can be trivially enabled with a few lines of code and
relies on timestamp changes, making it thus impractical.
2024-03-15 15:43:53 +01:00
Rémi Verschelde 7d4804e945
Merge pull request #89490 from AThousandShips/queue_print_fix
[Core] Prevent further infinite recursion when printing errors
2024-03-15 10:40:08 +01:00
A Thousand Ships 14897f6dd7
[Core] Prevent further infinite recursion when printing errors 2024-03-14 22:44:22 +01:00
Rémi Verschelde 4163fb9c26
Merge pull request #89489 from YeldhamDev/yet_another_etr_fix
Fix some translations not properly falling back
2024-03-14 22:35:41 +01:00
Rémi Verschelde 453485aede
Merge pull request #89270 from Repiteo/enforce-typename-in-templates
Enforce template syntax `typename` over `class`
2024-03-14 22:34:37 +01:00
Michael Alexsander 05f6c56a48
Fix some translations not properly falling back 2024-03-14 16:38:12 -03:00
A Thousand Ships 0c19d0f5a0
Add extension support for argument count to `ScriptInstance` 2024-03-13 22:40:09 +01:00
Rémi Verschelde a1c476f9d7
Merge pull request #87680 from AThousandShips/the_angry_count
Add methods to get argument count of methods
2024-03-13 22:16:43 +01:00
Thaddeus Crews 5a6e3cbcb0
SCons: Remove `run_in_subprocess` dependency 2024-03-11 13:20:09 -05:00
Rémi Verschelde 22dcfa14e3
Merge pull request #87858 from AThousandShips/callable_rpc
Fix `rpc` call from name based `Callable`s
2024-03-11 14:02:26 +01:00
Rémi Verschelde 0475011c66
Merge pull request #82084 from ogapo/pr/pck-cache-merge
Merge `uid_cache.bin` and `global_script_class_cache.cfg` after mounting PCKs
2024-03-11 14:01:16 +01:00
Rémi Verschelde 810f127022
Merge pull request #89365 from Repiteo/scons/run_in_subprocess-to-env.Run
SCons: Convert remaining `run_in_subprocess` to `env.Run`
2024-03-10 21:13:22 +01:00
A Thousand Ships 400f438e72
Fix `rpc` call from name based `Callable`s 2024-03-10 20:20:08 +01:00
Thaddeus Crews 8116d70d4b
SCons: Convert remaining `run_in_subprocess` to `env.Run` 2024-03-10 14:01:23 -05:00
Thaddeus Crews fb299d0fb1
SCons: Ensure `with` statement where applicable 2024-03-10 12:57:57 -05:00
A Thousand Ships 59bcc2888c
Add methods to get argument count of methods
Added to:
* `Callable`s
* `Object`s
* `ClassDB`
* `Script(Instance)`s
2024-03-10 11:02:43 +01:00
Thaddeus Crews d9fa40f2df
Enforce `\n` eol for Python writes
• Ensure utf-8 encoding if previously unspecified
2024-03-09 14:29:24 -06:00
Rémi Verschelde 1c8ef9e252
Merge pull request #89251 from KoBeWi/fastpector
Speed up inspector updates for TileMap
2024-03-09 00:52:09 +01:00
Rémi Verschelde baf75d048c
Merge pull request #87448 from nfrmtk/check-buffer-size
Add check for negative `buffer_size` inside `StreamPeerGZIP::start_(de)compression`
2024-03-09 00:52:01 +01:00
Rémi Verschelde 023dcd44c1
Refactor OS exit code to be `EXIT_SUCCESS` by default
- `Main::setup` early exits (failure or `--help`/`--version`) now
  consistently return `EXIT_FAILURE` or `EXIT_SUCCESS` on all platforms,
  instead of 255 on some and a Godot Error code on others.
- `Main::start` now returns the exit code, simplifying the handling of early
  failures.
- `Main::iteration` needs to explicit set the exit code in OS if it errors
  out.
- Web and iOS now properly return `OS::get_exit_code()` instead of 0.
2024-03-08 23:31:24 +01:00
nfrmtk da886006a0 add check for negative buffer_size inside start_(de)compression method. 2024-03-08 17:49:48 +03:00
Thaddeus Crews 9903e6779b
Enforce template syntax `typename` over `class` 2024-03-07 22:39:09 -06:00
kobewi 7319b612f3 Speed up inspector updates for TileMap 2024-03-07 18:01:30 +01:00
Ryan 42ce14043e
Expose scene unique id functionality in Resource 2024-03-07 14:53:58 +01:00
Rémi Verschelde 7e65fd8725
Merge pull request #89214 from bruvzg/pack_rel_off
[Export] Use relative file base offset for embedded PCK.
2024-03-07 00:24:00 +01:00
David Nikdel 5e6adb4a2d Merge uid_cache.bin and global_script_class_cache.cfg after mounting PCKs
fixes godotengine#82061
fixes godotengine#61556

Also, distinguish between main pack and DLC packs.
It's desirable to downloaded content to be as small as possible. This change avoids bloating non-main pack files with new versions of resources that are all read on startup and never used again. They have no effect if loaded after startup.
- project.godot/project.binary file
- extension_list.cfg
- app icon and boot_splash
- .ico and .icns files (these can still be opted in for DLC by listing them explicitly in the include filter)
2024-03-06 12:14:21 -05:00
kobewi eb0a624902 Allow returning Dictionary after merging 2024-03-06 14:49:35 +01:00
Rémi Verschelde 9b94c80e9a
Merge pull request #89175 from paulloz/dotnet/fix-exported-nodes-reset-without-build-artifacts
Hint fallback property as node when it is a node
2024-03-06 13:32:00 +01:00
Rémi Verschelde b85337b7ea
Merge pull request #87222 from RandomShaper/fix_obj_leaks_report
Fix inaccuracies in the report of leaked objects
2024-03-06 13:16:48 +01:00
bruvzg bf8ec7b81b
[Export] Use relative file base offset for embedded PCK. 2024-03-06 14:02:01 +02:00
Pedro J. Estébanez fdc47adf1e Help compilers optimize Object::cast_to() 2024-03-06 12:45:26 +01:00
Gilles Roudière de5073519e Save PackedByteArrays as base64 encoded 2024-03-06 10:17:31 +01:00
Rémi Verschelde d082ce908f
Merge pull request #85390 from TheSofox/merge-all-commit-fix
UndoRedo: Fix `MERGE_ALL` commit from repeating actions
2024-03-06 09:50:13 +01:00
Sofox f249667dc8 Fixed MERGE_ALL commit from repeating actions 2024-03-05 23:40:26 +00:00
Mika Viskari 3026b566b0 Fix String::begins_with when both strings are empty 2024-03-05 20:46:10 +02:00
Paul Joannon e7c90e0884
Hint fallback property as node when it is a node 2024-03-05 12:47:11 +01:00
RedMser 2bd714e34e
Allow configuring the script filename casing rule
Defaults to "Auto", which detects the casing based on the
preference of the currently selected language (C# for example
prefers PascalCase whereas GDScript prefers snake_case).
2024-03-05 09:43:29 +01:00
Rémi Verschelde 49dc67b48c
Merge pull request #89113 from Nazarwadim/move_includes_from_h_to_cpp_project_settings
[Core] Move `#includes` from `project_settings.h` into `project_settings.cpp`
2024-03-04 20:43:46 +01:00
A Thousand Ships a497a5cb3e
[Core] Codestyle improvements to math types 2024-03-04 18:17:10 +01:00
nazarii ea8c261cc6 [Core] Move includes from project_settings.h into project_settings.cpp 2024-03-04 15:37:30 +02:00
Rémi Verschelde 48aa12011b
Merge pull request #89104 from luevano/fix-rand-weighted
Fix `RandomNumberGenerator::rand_weighted` return type
2024-03-04 13:34:18 +01:00
Rémi Verschelde 50ca190286
Merge pull request #89055 from dsnopek/gdextension-script-free-lists
GDExtension: Pass count when freeing method and property lists for script instances
2024-03-04 13:33:45 +01:00
David Luevano Alvarado 981883d041 Fix `RandomNumberGenerator::rand_weighted` return type 2024-03-02 20:56:01 -06:00
David Snopek 0badf07657 GDExtension: Pass count when freeing method and property lists for script instances 2024-03-02 10:13:37 -06:00
Thaddeus Crews 0ce9b6fd1d
Add two new COMSTR environment variables 2024-03-01 12:44:03 -06:00
Rémi Verschelde 072da09fea
Merge pull request #86764 from Mickeon/autocompletion-inputmap
Add autocompletion for InputMap's methods
2024-03-01 17:22:06 +01:00
Rémi Verschelde 0394328a71
Merge pull request #86758 from Mickeon/autocompletion-project-settings
Add autocompletion for ProjectSettings' methods
2024-03-01 17:21:59 +01:00
Micky 70b428041b Add autocompletion for InputMap's methods 2024-03-01 16:44:26 +01:00
Rémi Verschelde bd7637248c
Merge pull request #88883 from joaoh82/add-weighted-random-method
Add `RandomNumberGenerator::rand_weighted` method
2024-03-01 15:00:32 +01:00
Rémi Verschelde 0a089e284b
Merge pull request #87191 from Mickeon/autocompletion-TranslationServer
Add autocompletion for TranslationServer
2024-03-01 14:56:18 +01:00
Rémi Verschelde 0618bff394
Merge pull request #86777 from Mickeon/autocomplete-classdb
Add autocompletion for ClassDB & AudioServer
2024-03-01 14:56:12 +01:00
Rémi Verschelde c1377920cd
Merge pull request #86743 from Mickeon/autocompletion-optimise-object
Optimise comparisons for Object's `get_argument_options`
2024-03-01 14:56:06 +01:00
Micky 404b2bf9c2 Add autocompletion for ProjectSettings' methods 2024-02-29 20:50:22 +01:00
Micky 920dff3445 Add autocompletion for ClassDB & AudioServer 2024-02-29 20:48:06 +01:00
Micky ffd498c57d Add autocompletion for TranslationServer 2024-02-29 20:43:19 +01:00
Micky cd2032a90b Optimise Object's `get_argument_options` 2024-02-29 18:00:54 +01:00
Rémi Verschelde 7434f8b4e3
Merge pull request #88959 from akien-mga/pre-commit-clang-17.0.6-black-24.2.0
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0
2024-02-29 13:54:38 +01:00
Rémi Verschelde 9101067666
Merge pull request #88958 from 398utubzyt/gltf/use-correct-name
Fix compilation errors when `DISABLE_DEPRECATED` is defined
2024-02-29 13:54:35 +01:00
Rémi Verschelde 9278856ff7
Merge pull request #88948 from dalexeev/core-add-callable-create
Core: Add `Callable.create` static method for `Variant` callables
2024-02-29 13:54:22 +01:00
Rémi Verschelde 172b254687
Merge pull request #88664 from RandomShaper/res_load_modes
Enhance cache modes in resource loading
2024-02-29 13:54:07 +01:00
Rémi Verschelde 7462b1a0b2
Merge pull request #88561 from RandomShaper/res_load_safer
Improve thread safety of resource loading
2024-02-29 13:53:58 +01:00
Rémi Verschelde 846428e0c6
Merge pull request #86222 from YeldhamDev/give_me_those_strings_baby
Add option to add built-in strings in the POT generation
2024-02-29 13:53:38 +01:00
Rémi Verschelde 1cc9190c70
Merge pull request #81822 from nlupugla/nodepath-slice
Add `NodePath::slice` method
2024-02-29 13:53:34 +01:00
João Henrique Machado Silva 88df5ea8ac Add RandomNumberGenerator::rand_weighted method 2024-02-29 13:29:53 +01:00
Danil Alexeev d90c9db27f
Core: Add `Callable.create` static method for `Variant` callables 2024-02-29 10:45:00 +03:00
BlueCube3310 8239aeec8e Image: Add static `is_format_compressed` function. 2024-02-28 19:42:06 +01:00
Michael Alexsander d70c45b5c8
Add option to add built-in strings in the POT generation 2024-02-28 11:34:26 -03:00
Pedro J. Estébanez 84b85d894c Improve thread safety of resource loading 2024-02-28 15:19:22 +01:00
Rémi Verschelde 3a08c646ee
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0 2024-02-28 14:25:35 +01:00
398utubzyt 4c69e8c026 Fix compilation errors when `DISABLE_DEPRECATED` is defined 2024-02-28 05:09:29 -08:00
Hugo Locurcio 67e9ccdbc4
Display the build date in the editor and when starting the engine
This can be used to quickly see how recent a development build is,
without having to look up the commit date manually.
When juggling around with various builds (e.g. for benchmarking),
this can also be used to ensure that you're actually running the
binary you intended to run.

The date stored is the date of the Git commit that is built, not
the current date at the time of building the binary. This ensures
binaries can remain reproducible.

The version timestamp can be accessed using the `timestamp` key
of the `Engine.get_version_info()` return value.
2024-02-27 20:39:17 +01:00
Rémi Verschelde 8b9a6cfa9f
Merge pull request #88870 from dsnopek/gdextension-fix-runtime-class-ancestor-methods
GDExtension: Fix calling ancestor methods on runtime classes
2024-02-27 10:18:31 +01:00
David Snopek 3335528954 GDExtension: Fix calling ancestor methods on runtime classes 2024-02-26 10:23:23 -06:00
Pedro J. Estébanez 5e144022e7 Enhance cache modes in resource loading
- Unify documentation, hoping to clear misconcepctions about about propagation of the cache mode across dependant loads.
- Clarify in docs that `CACHE_MODE_REPLACE` now also works on the main resource (from #87008).
- Add two recursive modes, counterparts of `CACHE_MODE_REPLACE` and `CACHE_MODE_IGNORE`, since it seems some need them (see #59669, #82830).
- Let resources, even loaded with one of the ignore-cache modes, get a path, which is useful for tools.
2024-02-26 14:59:04 +01:00
Robert Yevdokimov 13e82094ee Remove word duplicates in comments and strings, and fix casing and punctuation 2024-02-23 17:28:28 -05:00
Rémi Verschelde 491cd402cc
Merge pull request #88706 from RandomShaper/no_spammy_wtp
Remove spammy dev-mode message about load deadlock prevention
2024-02-23 22:19:19 +01:00
Pedro J. Estébanez 851f1d49d7 Remove spammy dev-mode message about load deadlock prevention 2024-02-23 14:54:03 +01:00
Rémi Verschelde 45dd2bd31e
Merge pull request #88683 from dsnopek/runtime-classes-in-modules
Allow registering "runtime classes" in modules (not just GDExtension)
2024-02-23 11:29:46 +01:00
Rémi Verschelde 3ce9ae71fc
Merge pull request #84906 from /fix-some-defvals 2024-02-23 11:29:22 +01:00
Raul Santos 5ba92e5a57
Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
David Snopek 4d0b989bb8 Allow registering "runtime classes" in modules (not just GDExtension) 2024-02-22 14:50:41 -06:00
Rémi Verschelde 49d7ad9f5d
Merge pull request #75846 from dalexeev/string-cases-unicode
Add Unicode support to `String.to_*_case()` methods
2024-02-22 14:38:52 +01:00
Danil Alexeev c0aa88ae4f
Add Unicode support to `String.to_*_case()` methods 2024-02-22 13:58:46 +03:00
Aaron Franke 1a6cabc0bf
Make Callable bind method const 2024-02-22 00:14:02 -06:00
Rémi Verschelde b652a81da7
Merge pull request #82554 from dsnopek/gdextension-placeholders
Allow registering "runtime classes" from GDExtension
2024-02-20 17:13:24 +01:00
David Snopek ea75307a11 Allow registering "runtime classes" 2024-02-20 09:20:58 -06:00
Rémi Verschelde 371597a805
Merge pull request #88551 from AThousandShips/helpers_fix
[Core] Upgrade some array helper classes to 64 bits
2024-02-19 17:06:53 +01:00
Rémi Verschelde 8a3a559023
Merge pull request #86620 from fbcosentino/midi_device_id
Add MIDI controller device index to `InputEventMIDI.device` property.
2024-02-19 17:06:22 +01:00
A Thousand Ships 06f1b114cd
[Core] Upgrade some array helper classes to 64 bits
Following upgrades to `CowData` to 64 bit indices these helpers are no
longer able to handle the index ranges, possibly causing bugs on sort
and search.
2024-02-19 13:17:13 +01:00
Fernando Cosentino b9fd25ea18 Add MIDI controller device index to InputEventMIDI.device property.
It is possible to query the OS for the connected MIDI controllers,
but the event messages' device field was not being used. This implements
controller index being sent in InputEventMIDI messages in the device
property, matching the index from OS.get_connected_midi_inputs().

Based on the work done by @ramdor.

Closes godotengine/godot-proposals#7733

Co-authored-by: Richie <richie_github@grange-lane.co.uk>
2024-02-19 10:23:19 +00:00
Rémi Verschelde 0246230e2b
Partial revert of `core/version.h` changes in #88527
I misunderstood what this does, we still use this code.
2024-02-19 10:56:05 +01:00
Rémi Verschelde e076405f30
GDExtension: Fix `-Wtype-limits` warning in `compatibility_maximum` patch check
And cleanup some dead code in `version.h`, we now always define `VERSION_PATCH`.
2024-02-19 01:19:30 +01:00
Rémi Verschelde dc41f2504b
Merge pull request #88417 from dsnopek/gdextension-compatibility-maximum
Allow GDExtensions to set a `compatibility_maximum`
2024-02-19 00:08:14 +01:00
Rémi Verschelde 8ff8216705
Merge pull request #88418 from dsnopek/gdextension-unbind-methods
Unbind GDExtension methods that can't reasonably be used
2024-02-17 00:27:37 +01:00
Rémi Verschelde b6ef996eb7
Merge pull request #86608 from TokageItLab/add-warn-setting-anim
Add some options to Project Settings to silence warnings in AnimationMixer caching
2024-02-17 00:22:52 +01:00
David Snopek 99fd6ca98c Unbind GDExtension methods that can't reasonably be used 2024-02-16 16:31:09 -06:00
David Snopek 2afa3557b4 Allow GDExtensions to set a compatibility_maximum 2024-02-16 16:02:55 -06:00
Rémi Verschelde eac054f1cc
Merge pull request #87971 from bruvzg/font_no_image_dup
[TextServer / Font] Do not duplicate images to prevent unnecessary embedding.
2024-02-15 17:35:36 +01:00
Rémi Verschelde 0fb7e3fc57
Merge pull request #88339 from Rubonnek/remove-hashunion
Remove `_HashUnion` from `StringName`
2024-02-15 15:45:19 +01:00
Rémi Verschelde 09df8f4a56
Merge pull request #87952 from paulloz/dotnet/byebye-signal-callback-generation
Disable signal callback generation in C#
2024-02-15 15:44:55 +01:00
Rémi Verschelde ef5d6ccfb7
Merge pull request #86966 from Muller-Castro/value2ref-core
Add const lvalue ref to `core/*` container parameters
2024-02-15 15:44:43 +01:00
Rémi Verschelde be7229f8d8
Merge pull request #81458 from dalexeev/doc-add-deprected-experimental-message
Documentation: Add support for deprecated/experimental messages
2024-02-15 15:44:21 +01:00
Danil Alexeev af28f87791
Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
Anatoli Babenia e25cfffc7f Add `--no-header` option to clean output
* Do not print empty line when header is disabled
* Do not print Vulcan header
* Also add "Print header" project setting (default On)
  (suggested by @kaissouDev)
* Add docs for the project setting
  (with suggestions by @Mickeon and @akien-mga)

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-15 14:10:11 +03:00
Riteo 759a32eb0c Handle warped mouse motion as floating point
Fixes certain issues where sub-pixel motions would get discarded while
the mouse is captured, such as when free look is enabled in the editor
(at least when turned on while holding right click).

Very slightly compat breaking, as actual public APIs are changed,
although with "compatible" types (Point2i->Point2).
2024-02-14 22:37:51 +01:00
Wilson E. Alvarez d2003d2025
Remove _HashUnion from StringName 2024-02-14 15:38:57 -05:00
Muller-Castro a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Paul Joannon 9fa2355cef
Disable signal callback generation in C# 2024-02-14 13:26:45 +01:00
Silc Lizard (Tokage) Renew dc4b7bc364 Add option to silence some warnings in AnimationMixer caching 2024-02-14 14:48:02 +09:00
Rémi Verschelde dc99c8d4a4
Merge pull request #87008 from KoBeWi/cache_mode_replace_fixes²
Fix² behavior of ResourceFormatLoader `CACHE_MODE_REPLACE`
2024-02-13 23:43:18 +01:00
Rémi Verschelde ab54569912
Merge pull request #63529 from KoBeWi/fake_features_v2
Allow to set custom feature tags for testing
2024-02-13 23:43:03 +01:00
kobewi 1b2c7bfe77 Allow to set custom feature tags for testing 2024-02-13 17:38:45 +01:00
A Thousand Ships d8b29efe66
Fix member names of `AudioFrame` to match extension 2024-02-13 15:37:09 +01:00
Silc Lizard (Tokage) Renew 67e38709fd Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport 2024-02-13 18:53:21 +09:00
Rémi Verschelde fd43a7f3be
Merge pull request #88188 from dsnopek/gdextension-api-double-compatibility-hashes
Fix `gdextension_compat_hashes.cpp` for double precision builds
2024-02-12 23:29:41 +01:00