Commit Graph

7554 Commits

Author SHA1 Message Date
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
Rémi Verschelde 306dd5be3f
Merge pull request #87758 from dsnopek/gdextension-register-virtual-method
Allow GDExtensions to register virtual methods and call them on scripts
2024-02-12 23:29:37 +01:00
David Snopek be11002e41 Allow GDExtensions to register virtual methods and call them on scripts 2024-02-12 13:29:18 -06:00
Dario 73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
Rémi Verschelde 106efa44d4
Merge pull request #88203 from Listwon/char-range-build-size
Link `xid_start` and `xid_continue` externally to prevent data duplication in binary
2024-02-12 13:35:05 +01:00
Rémi Verschelde 75a8c8a708
Merge pull request #88183 from Repiteo/ref-instantiate-params
Allow Ref `instantiate` to accept constructor args
2024-02-12 13:34:59 +01:00
Rémi Verschelde b30373e32b
Merge pull request #88178 from Listwon/hash-table-build-size
Link hash table primes externally to prevent data duplication in binary
2024-02-12 13:34:55 +01:00
Rémi Verschelde 62143552f3
Merge pull request #87635 from rune-scape/manage-time-singleton
Manage time singleton in `register_core_types`
2024-02-12 13:34:13 +01:00
Rémi Verschelde 62fcc7e5d3
Merge pull request #78990 from RedMser/class-reference-keywords
Add search keywords to the class reference
2024-02-12 13:33:12 +01:00
rune-scape c5bcc3ae86 Manage time singleton 2024-02-11 14:39:20 -08:00
Bartłomiej T. Listwon 5ee4b49e42 Link xid_start and xid_continue externally to prevent data duplication in binary 2024-02-11 12:54:53 +01:00
David Snopek 445e3018f5 Fix `gdextension_compat_hashes.cpp` for double precision builds 2024-02-10 19:05:33 -06:00
Bartłomiej T. Listwon 3fca4d0cb5 Link hash table primes externally to prevent data duplication in binary 2024-02-10 21:42:48 +01:00
Thaddeus Crews b3cac9c092
Allow Ref `instantiate` to accept constructor args 2024-02-10 13:19:14 -06:00
RedMser db798b29b2 Add keywords to the class reference
Allows for finding methods, properties, signals, constants,
theme items and annotations more easily.

- Allow "keywords" attribute in aforementioned locations
  in the class reference XMLs
- Extends doctool, to preserve these attributes
- Update the XSD schema for the class reference
- Update the RST generator to include a meta tag for class keywords
- Update the editor help to support filtering by keywords
2024-02-09 18:13:23 +01:00
Rémi Verschelde b457a30311
Merge pull request #87628 from YuriSizov/assets-bigger-better-errors
Improve error reporting in the asset library and in related types
2024-02-09 18:09:16 +01:00
Rémi Verschelde d00dc8facf
Merge pull request #87371 from AThousandShips/size_err_check
Replace error checks against `size` with `is_empty`
2024-02-09 18:09:11 +01:00
Rémi Verschelde 74b03edf1e
Merge pull request #82800 from Sauermann/fix-screen-mousemotion
Add screen-related attributes to mouse input events
2024-02-09 18:08:58 +01:00
A Thousand Ships 684752e75b
Replace error checks against `size` with `is_empty` 2024-02-09 12:50:15 +01:00
Rémi Verschelde 1774c17b64
Merge pull request #87625 from YuriSizov/editor-lightweight-script-previews
Generate script resource preview without parsing
2024-02-09 12:34:36 +01:00
Rémi Verschelde 763d5cb7a4
Merge pull request #87934 from aaronfranke/fix-gltf-bad-mesh-export
Fix GLTF exporting invalid meshes and attempting to export gizmo meshes
2024-02-08 10:53:48 +01:00
Rémi Verschelde deda5f799b
Merge pull request #87992 from allenwp/87991-typed-array-additions
Added newer Variant types to `typed_array.h`
2024-02-07 11:04:01 +01:00
Rémi Verschelde dd2699be19
Merge pull request #67226 from Mickeon/typed-packing
Use `Packed*Array` over `Vector<T>` in TypedArray
2024-02-07 10:56:45 +01:00
Rémi Verschelde b41403db71
Merge pull request #67220 from Mickeon/variant-packing
Use `Packed*Array` over `Vector<T>` in Variant
2024-02-07 10:56:21 +01:00
Micky 2c98783359 Use `Packed*Array` over `Vector<T>` in TypedArray
Same as #67220 but for `typed_array.h`
2024-02-06 20:50:02 +01:00
Micky 3edb671b8a Use Packed*Array over Vector<T> in Variant
Also shuffles some method definitions and declarations to be more consistent with the way the Variant types are ordered across the codebase.

And removes an unnecessary JSON assign (`JSON::stringify` can now be accessed statically)
2024-02-06 12:53:19 +01:00
Markus Sauermann 2235a1cbd0 Add screen-related attributes to mouse input events 2024-02-05 23:30:15 +01:00
Allen Pestaluky f4134fd9b0 Added newer Variant types to typed_array.h
Fixes #87991
2024-02-05 16:37:11 -05:00
bruvzg 7bcb419149
[Core] Improve `CowData` and `Memory` metadata alignment. 2024-02-05 17:30:02 +02:00
Rémi Verschelde 63d6bda8e9
Merge pull request #87871 from vittorioromeo/use_v_shorthand
Use `_v` shorthand for type traits and `if constexpr` where appropriate
2024-02-05 15:00:23 +01:00
Rémi Verschelde f4f1398503
Merge pull request #87938 from tishin/fix-gdextension-deinit
Add null check for GDExtension deinitialization
2024-02-05 14:53:00 +01:00
bruvzg 19f1d5afa9
[TextServer / Font] Do not duplicate images to prevent unnecessary embedding. 2024-02-05 10:38:32 +02:00
vittorioromeo 71e0082ab0 Extract 'SafeBinaryMutex' to separate header
This change simply extracts 'SafeBinaryMutex' from 'mutex.h' to
    'safe_binary_mutex.h', in an effort to reduce the compilation
    speed impact of including `mutex.h`.
2024-02-04 16:59:54 +01:00
Mikhail Tishin dc4c6cfb9b Add null check for gdextension deinitialization 2024-02-04 18:38:59 +03:00
Aaron Franke 2d38c980ee
Fix GLTF exporting invalid meshes and attempting to export gizmo meshes 2024-02-04 02:58:29 -06:00
Rémi Verschelde a72789c9d6
Merge pull request #87907 from adamscott/fix-window-override-settings
Fix `display/window/size/window_{width,height}_override` to permit `0`
2024-02-03 23:22:11 +01:00
Adam Scott 344ee36bfe
Fix `display/window/size/window_{width,height}_override` set `0` 2024-02-03 12:31:50 -05:00
EterDelta fee70558f8 Expose NOTIFICATION_EXTENSION_RELOADED to ClassDB 2024-02-02 14:57:00 -05:00
vittorioromeo 55ed34e37c Use '_v' shorthand for type traits and 'if constexpr' where appropriate 2024-02-02 15:43:21 +01:00
Riteo 7739940202 Core: Implement a XOR operator for BitField 2024-02-01 20:44:40 +01:00
Rémi Verschelde f8a039e9b5
Merge pull request #84745 from lawnjelly/lightcull
Shadow volume culling and tighter shadow caster culling
2024-01-31 11:13:19 +01:00
scgm0 2dae53c316
Explicitly initialize all of `FileAccess::create_func[ACCESS_MAX]` 2024-01-31 10:46:14 +01:00
Rémi Verschelde cae7599498
Merge pull request #87741 from akien-mga/sync-gamecontrollerdb
Sync controller mappings DB with SDL2 community repo
2024-01-30 17:48:22 +01:00
Rémi Verschelde 3dfedd69ea
Merge pull request #87711 from matthew1006/threaded-loading-progress-fix
Fix `ResourceLoader.load_threaded_get_status` returning `[0]` constantly in exported projects.
2024-01-30 17:48:11 +01:00
Rémi Verschelde 10445d80d8
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@232c738ce0
2024-01-30 15:14:27 +01:00
lawnjelly 4577dfdb67 Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling takes no account of the camera.
This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
2024-01-30 08:38:31 +00:00
Rémi Verschelde b65c495d6e
Merge pull request #86845 from RandomShaper/no_load_regress
Avoid regressing in progress reporting in resource load
2024-01-29 21:33:00 +01:00
Matthew Edwards 7565d1f3ab Push p_original_path into load_paths_stack and sub_tasks instead of p_path. 2024-01-29 17:27:57 +00:00
Rémi Verschelde fa48a51183
Merge pull request #87688 from AThousandShips/what_is_this
Remove unnecessary `this->` expressions
2024-01-29 13:18:09 +01:00
Rémi Verschelde 074b4eb770
Merge pull request #87627 from RandomShaper/one_more_undef
Undefine yet another macro from Windows headers
2024-01-29 13:17:45 +01:00
Rémi Verschelde c1dbaa73a6
Merge pull request #87393 from stuartcarnie/bugfix
Use `os_unfair_lock` on Apple platforms
2024-01-29 13:17:00 +01:00
Rémi Verschelde 269145f48a
Merge pull request #87300 from Calinou/math-normalize-error-show-value
Display values in vector/quaternion math function errors
2024-01-29 13:16:51 +01:00
Rémi Verschelde 07d290e67e
Merge pull request #83747 from Riteo/gdext-doc
GDExtension: Add an interface for loading extra documentation
2024-01-29 13:15:57 +01:00
Rémi Verschelde f220d46cdc
Merge pull request #80231 from romlok/input-key-location
Support detecting and mapping ctrl/alt/shift/meta by their left/right physical location
2024-01-29 13:15:42 +01:00
A Thousand Ships 15369fdb1d
Remove unnecessary `this->` expressions 2024-01-29 09:59:18 +01:00
Hugo Locurcio 0437db0106
Display values in vector/quaternion math function errors
This can help track down the source of the error more easily.
2024-01-28 18:45:46 +01:00
Yuri Sizov 815038962f Improve error reporting in the asset library and in related types
This also makes errors related to asset image loading
verbose-only, because, frankly, users can't do much about
those errors. Spamming them with error messages
about some assets on the frontend being broken
is pointless.
2024-01-26 20:33:22 +01:00
Pedro J. Estébanez bcc96441d6 Undefine yet another macro from Windows headers 2024-01-26 19:43:43 +01:00
Yuri Sizov 9c919ea285 Generate script resource preview without parsing 2024-01-26 19:04:10 +01:00
Mel Collins 8406e60522 Add InputEventKey.location to tell left from right
This adds a new enum `KeyLocation` and associated property
`InputEventKey.location`, which indicates the left/right location of key
events which may come from one of two physical keys, eg. Shift, Ctrl.

It also adds simulation of missing Shift KEYUP events for Windows.
When multiple Shifts are held down at the same time, Windows natively
only sends a KEYUP for the last one to be released.
2024-01-26 14:42:28 +01:00
Riteo f468e59efd GDExtension: add an interface for loading extra documentation
Adds two new GDExtension interface methods:
 - `editor_help_load_xml_from_utf8_chars`
 - `editor_help_load_xml_from_utf8_chars_and_len`

Both of these methods parse the XML passed into an extra documentation
container which, when needed, is merged into the main doc container.

Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com>
2024-01-26 13:53:33 +01:00
Rémi Verschelde e5ecf95c1a
Merge pull request #87571 from 0x0ACB/fam_offby1
Fix `FileAccessMemory` off by one error in `eof_reached`
2024-01-26 11:49:06 +01:00
Rémi Verschelde e0dc23367c
Remove now unused `year` member from `version.py`
We changed copyright to use "present" for the current year, so we no
longer need to hardcode this and (like now) forget to bump it yearly.
2024-01-25 15:08:34 +01:00
ACB 2561f6fc52 Fix FileAccessMemory off by one error in eof_reached 2024-01-25 10:35:51 +01:00
Yuri Sizov 412f5b3422 Merge pull request #87353 from OverloadedOrama/max-undo-steps
Implement maximum undo steps in UndoRedo
2024-01-24 14:08:25 +01:00
Emmanouil Papadeas c73bfd5d81 Implement maximum undo steps in UndoRedo 2024-01-22 21:38:10 +02:00
Stuart Carnie e28b31ec96
Use `os_unfair_lock` on Apple platforms 2024-01-21 06:23:09 +11:00
Rémi Verschelde 0bcc0e92b3
Merge pull request #86730 from reduz/64-bit-cowdata
Promote CowData to 64 bits
2024-01-19 18:46:11 +01:00
Juan Linietsky 24fe0715b5 Promote CowData to 64 bits
Fixes a lot of bugs, please help me fill the list.
2024-01-19 17:41:10 +01:00
Yuri Sizov 2ababdcc06 Merge pull request #87324 from jsjtxietian/action-exist
Check action exists in `Input.action_press` and `action_release`
2024-01-18 19:27:06 +01:00
Yuri Sizov 66b0bd9203 Merge pull request #86158 from Geometror/ge-connection-rework
Rework `GraphEdit` connections (drawing, API, optimizations)
2024-01-18 19:26:56 +01:00
Hendrik Brucker 9d7c2978f4 Rework GraphEdit connections (drawing, API, optimizations)
- GraphEdit now uses Line2D nodes to draw connection lines and uses a dedicated canvas item shader for them
2024-01-18 16:53:15 +01:00
Rémi Verschelde 266ae93291
Merge pull request #87331 from KoBeWi/you_can_ref_count_on_that
Simplify RefCounted check in `free()`
2024-01-18 16:35:38 +01:00
Rémi Verschelde baf87e2717
Merge pull request #87294 from vnen/allow-free-callable
Allow `free()` to be used as Callable
2024-01-18 16:35:14 +01:00
George Marques b4e08eb752
Allow `free()` to be used as Callable
This method is registered in a special way so ClassDB doesn't naturally
know about its existence. Here it is hardcoded if any other option fail
to check if it is about the `free()` method and, if so, say it exists
and return a Callable.
2024-01-18 09:33:44 -03:00
kobewi 2de8bc00a1 Simplify RefCounted check in free() 2024-01-18 12:29:58 +01:00
Rémi Verschelde fa81059b9d
Merge pull request #85939 from adamscott/single-threaded-godot-4
Add `THREADS_ENABLED` macro in order to compile Godot to run on the main thread
2024-01-18 09:33:52 +01:00
jsjtxietian 4b3a12f4ee Check action exists in `Input.action_press` and `action_release` 2024-01-18 16:18:16 +08:00
Adam Scott bd70b8e1f6
Add THREADS_ENABLED macro in order to compile Godot to run on the main thread 2024-01-17 13:58:29 -05:00
Yuri Sizov b6a2c78033 Merge pull request #87286 from akien-mga/fix-preprocessor-if-ENABLED-checks
Fix `#if *_ENABLED` inconsistencies, should check if defined
2024-01-17 18:53:33 +01:00
Yuri Sizov c027aecc2e Merge pull request #86676 from rune-scape/sparse-script-reload
GDScript: Hot-reload changed scripts only
2024-01-17 18:52:54 +01:00
Rémi Verschelde 0a7579b161
Fix `#if *_ENABLED` inconsistencies, should check if defined
Co-authored-by: Caroline Joy Bell <halotroop2288@proton.me>
2024-01-17 10:30:15 +01:00
Rémi Verschelde 1debbaa468
Merge pull request #87169 from 0x0ACB/debugger_deadlock
Fix deadlock in `RemoteDebugger::debug`
2024-01-16 10:36:25 +01:00
Pedro J. Estébanez a04a67ead6 Fix inaccuracies in the report of leaked objects 2024-01-15 19:35:14 +01:00
ACB c976306628 fix deadlock in RemoteDebugger::debug 2024-01-14 11:07:14 +01:00
A Thousand Ships b4191bf8f6
[Core] Fix `AABB.encloses` failing on shared upper bound
This differs from `Rect2(i)` and was fixed for those classes in the past
2024-01-12 17:58:42 +01:00
Rémi Verschelde 26b1fd0d84
Merge pull request #87029 from bruvzg/info_plist_keys
[macOS/iOS export] Add option to set custom Info.plist data.
2024-01-11 20:46:02 +01:00
bruvzg 491077239c
[macOS/iOS export] Add option to set custom Info.plist data. 2024-01-11 21:05:35 +02:00
RedMser 608b5d2e07 Fix recursive resource local to scene
Any resource that contains other local to scene resources inside of
arrays or dictionaries will now be duplicated and configured.

The case where a scene's node has an exported array/dictionary
property containing local to scene resources is NOT handled here.
2024-01-11 20:02:14 +01:00
Rémi Verschelde ed0be57bff
Merge pull request #87062 from aaronfranke/exr-grayscale-false
Give EXR saving methods a default value of false like the bindings
2024-01-11 17:43:02 +01:00
Rémi Verschelde dc79e956b6
Merge pull request #86587 from RandomShaper/wtp_enhance
Enhance & fix `WorkerThreadPool`
2024-01-11 17:38:09 +01:00
Aaron Franke a120f11c1e
Give EXR saving methods a default value of false like the bindings 2024-01-10 15:53:40 -06:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
kobewi 2e09985c0d Fix² behavior of ResourceFormatLoader CACHE_MODE_REPLACE 2024-01-09 16:01:37 +01:00
Rémi Verschelde 9ca3d3ec83
Revert "Fix behavior of ResourceFormatLoader `CACHE_MODE_REPLACE`" 2024-01-09 10:49:14 +01:00
Pedro J. Estébanez a731774813 WorkerThreadPool: Avoid most runtime allocations
Just a little optimization.

**NOTE:**
With `RID_Owner` we could replace each pair of `PagedAllocator` and
`HashMap`-of-ids-to-pointers. However, that would force us to expose
`RID` as the task/group id, instead of `int`, which would break the
API. Too bad. Let's wait until Godot 5.0.
2024-01-08 12:46:31 +01:00
Pedro J. Estébanez ae418f9469 WorkerThreadPool: Avoid deadlocks when CommandQueueMT is involved
This commit lets CommandQueueMT play nicely with the WorkerThreadPool to avoid
non-progressable situations caused by an interdependence between both. While a
command queue is being flushed, it allows the WTP to release its lock while tasks
are being awaited so they can make progress in case they need in turn to post
to the command queue.
2024-01-08 12:45:43 +01:00
Pedro J. Estébanez 9444d297ed WorkerThreadPool: Overhaul scheduling and synchronization
This commits rewrites the sync logic in a way that the
`use_system_threads_for_low_priority_tasks` setting, which was added due to
the lack of a cross-platform wait-for-multiple-objects functionality, can be
removed (it's as if it was effectively hardcoded to `false`).

With the new implementation, we have the best of both worlds: threads don't
have to poll, plus no bespoke threads are used.

In addition, regarding deadlock prevention, since not every possible case of
wait-deadlock could be avoided, this commits removes the current best-effort
avoidance mechanisms and keeps only a simple, pessimistic way of detection.

It turns out that the only current user of deadlock prevention, ResourceLoader,
works fine with it and so every possible situation in resource loading is now
properly handled, with no possibilities of deadlocking. There's a comment in
the code with further details.

Lastly, a potential for load tasks never being awaited/disposed is cleared.
2024-01-08 12:45:42 +01:00
Rémi Verschelde 9bacd02297
Merge pull request #86827 from bruvzg/ploc_out_of_bounds
[Pseudolocalization] Prevent out of bounds reads.
2024-01-08 11:57:55 +01:00
Rémi Verschelde 81f618d63a
Merge pull request #85180 from AThousandShips/self_list_fix
[Core] Prevent copying of `SelfList` and `SelfList::List`
2024-01-08 11:51:27 +01:00
A Thousand Ships 904ecb1d36
[Core] Prevent copying of `SelfList` and `SelfList::List`
Copying of these types is unsafe and should be detected

Also removed unnecessary constructors for `TileMap` `DebugQuadrant` and
`RenderingQuadrant` which used copying of `SelfList::List`
2024-01-07 00:48:23 +01:00
Pedro J. Estébanez f5ca58d32f Avoid regressing in progress reporting in resource load 2024-01-05 19:33:58 +01:00
Muller-Castro 96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
bruvzg e7bdb60e56
[Pseudolocalization] Prevent out of bounds reads. 2024-01-05 14:10:26 +02:00
Rémi Verschelde d1b7c60afc
Merge pull request #77712 from nklbdev/Fix_lossless_formats_in_PortableCompressedTexture2D
Fix lossless formats in PortableCompressedTexture2D
2024-01-05 12:02:14 +01:00
nklbdev 47d991678d Fix lossless formats in PortableCompressedTexture2D
Update scene/resources/portable_compressed_texture.cpp

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-05 00:11:01 +05:00
Rémi Verschelde 5d44c85d4c
Merge pull request #84107 from BlueCube3310/file-access-optimization
Use platform-specific methods for FileAccess reading and writing
2024-01-04 16:39:47 +01:00
Rémi Verschelde acd37f98c0
Merge pull request #83353 from Chubercik/expose_delaunay_3d
Expose 3D Delaunay tetrahedralization in `Geometry3D`
2024-01-04 16:39:23 +01:00
Rémi Verschelde 2bffa3cbc5
Merge pull request #82639 from golfinq/gdscript-improve-indexing-error
GDScript: Improve error messages for invalid indexing
2024-01-04 16:38:58 +01:00
Rémi Verschelde 01e7c26e39
Merge pull request #86753 from Mickeon/autocompletion-engine-singletons
Add autocompletion for `Engine.get_singleton` & similar
2024-01-04 14:26:33 +01:00
Rémi Verschelde 18e9133d5a
Merge pull request #86364 from aaronfranke/basis-divide
Add and expose Basis/Transform2D/3D division by float operator
2024-01-04 14:26:16 +01:00
Rémi Verschelde 0fa767beff
Merge pull request #84508 from jsjtxietian/clean-copy
Clean unnecessary copy detected by clang-tidy
2024-01-04 14:25:58 +01:00
Rémi Verschelde 5fd5176a79
Merge pull request #84462 from MewPurPur/optimize-humanizesize
Optimize `String.humanize_size()`
2024-01-04 14:25:40 +01:00
Rémi Verschelde 6c390b620d
Merge pull request #84445 from Rubonnek/add-const-references-clang-tidy
Add const references detected by clang-tidy
2024-01-04 14:25:33 +01:00
Rémi Verschelde b66d16fcc9
Merge pull request #84375 from Rubonnek/use-const-reference
Add const references in `String` class
2024-01-04 14:25:27 +01:00
Rémi Verschelde bbfcfe50da
Merge pull request #81267 from Chaosus/astargrid_isometric_mode
Add isometric cell shape mode to `AStarGrid2D`.
2024-01-04 14:25:00 +01:00
Micky 5c87b6eae8 Add autocompletion for `Engine.get_singleton` & similar 2024-01-03 18:43:46 +01:00
Rémi Verschelde 4acfe4aa3c
Merge pull request #86729 from Mickeon/autocompletion-for-all
Fix missing autocompletion for inheriting classes
2024-01-03 10:14:37 +01:00
Rémi Verschelde a97b01c2ac
Merge pull request #86412 from stuartcarnie/sgc/data_race
Fix data race in PagedArray
2024-01-03 10:01:06 +01:00
Rémi Verschelde ca7fb29203
Merge pull request #84800 from gshadows/fix_options_range
Fix unlimited project option ranges that could cause crashes.
2024-01-03 09:59:31 +01:00
Rémi Verschelde 22e880ad20
Merge pull request #83163 from Chubercik/vectorXi_dist_methods
Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-03 09:58:36 +01:00
Stuart Carnie 70bfd5d065
fix: data race in PagedArray 2024-01-03 13:17:01 +11:00
rune-scape cde478bda6 Hot-reload only changed scripts 2024-01-02 17:56:52 -08:00
Micky ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
Rémi Verschelde 37df2ff387
Merge pull request #86682 from Daylily-Zeleen/daylily-zeleen/distinguish_between_dynamic_libaray_not_found_and_can't_open
Distinguish between dynamic library not found and can't be opened.
2024-01-02 18:06:17 +01:00
Rémi Verschelde 8317b459df
Merge pull request #86590 from rune-scape/rune-uninitialized-astar
Initialize pointers in a_star.cpp
2024-01-02 18:05:48 +01:00
Rémi Verschelde 14b1bb47a7
Merge pull request #86570 from RandomShaper/remove_traces_of_rid_prealloc
Remove traces of the extinct RID preallocate feature
2024-01-02 18:05:41 +01:00
Rémi Verschelde cf519ab898
Merge pull request #86551 from bruvzg/agility_dynamic_load
[D3D12] Dynamically load Agility SDK.
2024-01-02 18:05:33 +01:00
Rémi Verschelde 3dae50aa4f
Merge pull request #86520 from touilleMan/fix-ScriptLanguageExtension-_find_function-documentation
Fix `ScriptLanguageExtension::_find_function` documentation
2024-01-02 18:05:26 +01:00
Rémi Verschelde b5c6e870e8
Merge pull request #82264 from dalexeev/core-builtin-methods-as-callables
Core: Allow methods of built-in `Variant` types to be used as Callables
2024-01-02 18:05:05 +01:00
bruvzg 126a763f7a
[D3D12] Dynamically load Agility SDK. 2024-01-02 17:15:59 +02:00
Rémi Verschelde 35d1ffb8de
Merge pull request #86259 from TitanNano/jovan/fix_MethodInfo_eq
Include `name` field in MethodInfo operator ==
2024-01-02 15:09:02 +01:00
EddieBreeg 8747c67d9e
Fix potential integer underflow in rounded up divisions
A new `Math::division_round_up()` function was added, allowing for easy
and correct computation of integer divisions when the result needs to
be rounded up.

Fixes #80358.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-02 14:14:47 +01:00
Daylily-Zeleen fe6b073811 Distinguishs between dynamic library not found and can't be opened. 2024-01-01 20:01:57 +08:00
rune-scape b6a53e62bc Initialize pointers in a_star.cpp 2023-12-28 13:58:11 -08:00
Pedro J. Estébanez c217041afd Remove traces of the extinct RID preallocate feature 2023-12-28 10:18:05 +01:00
Emmanuel Leblond 0124b513cd
Fix `ScriptLanguageExtension::_find_function` documentation 2023-12-26 14:05:53 +01:00
G-Shadow cbc8ae660c Fix unlimited project option ranges that could cause crashes. 2023-12-22 09:14:45 +03:00
Aaron Franke c77ae051d5
Add and expose Basis/Transform2D/3D division by float operator 2023-12-20 18:24:03 -06:00
Yuri Sizov 3a8524dd92
Merge pull request #83452 from RandomShaper/rd_common
Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts
2023-12-20 20:09:18 +01:00
Pedro J. Estébanez 12a519bae2 Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
Yuri Sizov d2da961f33 Merge pull request #86324 from aaronfranke/really-packed
Add PackedRealArray as an alias for Vector<real_t>
2023-12-20 15:08:10 +01:00
Yuri Sizov 6296333bad Merge pull request #60965 from DarkMessiah/global-groups-implementation
Implement project-wide node groups
2023-12-20 15:07:20 +01:00
Pedro J. Estébanez 0567c5df9f Make PagedAllocator more compatible (esp., with HashMap) 2023-12-20 12:05:27 +01:00
Yuri Sizov 6fc92e1d05 Merge pull request #84611 from AThousandShips/encode_invalid
Prevent encoding/decoding objects that cannot be instantiated
2023-12-19 20:32:42 +01:00
msreis f1cc14d525 Fix missing time for some script functions in profiler
Fixes the issue by adding a mechanism by which the functions that were
previously disappearing can be profiled too. This is optional with
an editor setting, since collecting more information naturally slows the engine
further while profiling.

Fixes #23715, #40251, #29049
2023-12-19 19:42:21 +01:00
Stanislav Labzyuk 958699a0c4 Implement project-wide node groups 2023-12-19 18:07:19 +01:00
Yuri Sizov d8a65b3f46 Merge pull request #85464 from KoBeWi/only_say_verbose_when_not_verbose
Improve message about resources in use at exit
2023-12-19 13:01:59 +01:00
Yuri Sizov 02d4579fa2 Merge pull request #85000 from bruvzg/ed_ui_direction
[Editor] Add option to override editor UI layout direction.
2023-12-19 13:01:35 +01:00
A Thousand Ships c1b8b87736 Prevent encoding/decoding objects that cannot be instantiated 2023-12-18 22:06:08 +01:00
Aaron Franke 3f469ee485
Add PackedRealArray as an alias for Vector<real_t> 2023-12-18 11:37:43 -06:00
Yuri Sizov 639f452098 Merge pull request #86059 from alesliehughes/dynamic_bvh_memmove
Improve DynamicBVH code to make it clearer how the stack/heap works
2023-12-18 18:18:13 +01:00
Yuri Sizov a9a50938c0 Merge pull request #85991 from jsjtxietian/fix-bad-pos-state
Fix `FileAccessPack::get_buffer` updating position past the length of file
2023-12-18 18:18:01 +01:00
Yuri Sizov 80c3ed6845 Merge pull request #80487 from theraot/expose_set_global_name
Expose `Script.get_global_name()`
2023-12-18 18:17:30 +01:00
Alfonso J. Ramos e7e35e8366 Expose `Script.get_global_name()` 2023-12-18 15:13:09 +01:00
Aaron Franke d48d3ea4eb
Rename VariantZeroAssigner to VariantDefaultInitializer
And the method zero() is now init()
2023-12-17 14:00:30 -06:00
Jovan Gerodetti 179c92eb0b Include name field in MethodInfo operator == 2023-12-17 12:42:14 +01:00
Wilson E. Alvarez a3cb1b096f
Add const references detected by clang-tidy 2023-12-16 13:36:44 -05:00
Yuri Sizov df9be54b2f Merge pull request #86177 from KoBeWi/depren_never_forgets
Fix file disappearing when renaming dependencies
2023-12-16 17:50:05 +01:00
Yuri Sizov d02b368fd6 Merge pull request #78095 from aaronfranke/dict-get-or-set-default
Add a `get_or_add` method to Dictionary
2023-12-16 17:49:10 +01:00
Yuri Sizov ca19d34bde Merge pull request #73896 from vnen/object-null-boolean-consistency
Make freed object different than null in comparison operators
2023-12-16 17:49:05 +01:00
Pedro J. Estébanez 1a1c06dfeb RBMap: Add explicit copy operators to iterators
Absence thereof is deprecated and breaks builds on most compilers.

Bonus: Fix parameter naming style throughout.
2023-12-15 13:14:59 +01:00
Pedro J. Estébanez fec76d0c22 BitField: allow chained set_flag(), make constructors constexpr 2023-12-15 13:14:59 +01:00
kobewi 397f0b31e4 Fix file disappearing when renaming dependencies 2023-12-14 22:28:48 +01:00
nlupugla cd221c1816 Added NodePath::slice method. 2023-12-13 13:30:28 -05:00
Wilson E. Alvarez 80fb8db31f
Remove unnecessary assignments
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-12-13 11:06:26 -05:00
Rémi Verschelde 45b97ca4e1
Merge pull request #86087 from rburing/fix_gdextension_operator_doc_dump
Fix operator documentation in GDExtension API dump with docs
2023-12-13 10:34:00 +01:00
Rémi Verschelde d3414d80bf
Merge pull request #86081 from KoTeYkA23/bindings-for-emulated-input-events
Add bindings for setting and getting emulation mouse from touch and touch from mouse in input
2023-12-13 10:33:36 +01:00
CaTaTo 075a54bbcf Add bindings for setting and getting emulation mouse from touch and touch from mouse in input 2023-12-13 08:07:36 +03:00
Alistair Leslie-Hughes 46531964d0 Improve DynamicBVH code to make it clearer how the stack/heap works.
Inspired by a Coverity issue about possible memcpy usage and overlapping memory.
2023-12-13 09:03:19 +11:00
Rémi Verschelde 41365c6c8b
Merge pull request #70315 from RandomShaper/d3d12_mesa
Direct3D 12 Rendering Driver (Mesa NIR approach)
2023-12-12 21:58:57 +01:00
Pedro J. Estébanez 2f47c57385 Add Direct3D 12 RenderingDevice implementation 2023-12-12 19:10:04 +01:00
Ricardo Buring 82afe58aca Fix operator documentation in GDExtension API dump with docs
The type of the right operand is now taken into account.
2023-12-12 18:55:31 +01:00
Rémi Verschelde ea15b4ad44
Merge pull request #85159 from KoBeWi/404_strikes_back
Don't abort loading when `ext_resource` is missing
2023-12-12 00:18:58 +01:00
Rémi Verschelde b952b007b1
Merge pull request #84782 from rsburke4/image-fix
Prevent crash on conversion of invalid data in `Image`
2023-12-12 00:17:42 +01:00
rsburke4 dec2269bca Added error to catch conversion on invalid image 2023-12-10 15:06:22 -05:00
jsjtxietian 68a6fe81ab Fix FileAccessPack::get_buffer will update pos past the length of file 2023-12-10 16:21:16 +08:00
Yuri Sizov 07677f0f51 Merge pull request #85885 from YuriSizov/bench-pressing
Improve engine startup/shutdown benchmarks
2023-12-08 17:12:26 +01:00
Yuri Sizov f16057522e Merge pull request #85770 from Repiteo/make-virtuals-refactor-and-fix
Refactor and fix `make_virtuals.py`
2023-12-08 16:58:44 +01:00
Yuri Sizov f56765ea47 Merge pull request #84943 from groud/rework_input
Rework Input action pressed state to support multiple controllers
2023-12-08 16:58:14 +01:00
Yuri Sizov b3c20bcf1e Merge pull request #83229 from aaronfranke/basis-is-ortho
Fix Basis `is_orthogonal` and `is_rotation` methods, add `is_orthonormal`
2023-12-08 16:58:03 +01:00
Yuri Sizov 2e94be2ea4 Merge pull request #84167 from SaracenOne/cache_mode_replace_fixes
Fix behavior of ResourceFormatLoader `CACHE_MODE_REPLACE`
2023-12-08 15:23:13 +01:00
Yuri Sizov fc3f40f37d Improve engine startup/shutdown benchmarks
- Add contexts to give a better sense of benchmarked areas.
- Add missing benchmarks and adjust some begin/end points.
- Clean up names.
- Improve Android's internal benchmarks in a similar manner.

Co-authored-by: Fredia Huya-Kouadio <fhuya@meta.com>
2023-12-08 12:53:04 +01:00
Aaron Franke 7ee273723d
Fix Basis is_orthogonal and is_rotation methods, add is_orthonormal 2023-12-06 13:12:05 -06:00
Aaron Franke 437586bf31
Add a `get_or_add` method to Dictionary 2023-12-06 11:43:58 -06:00
Rémi Verschelde d847b6c3b7
Merge pull request #85787 from bruvzg/locale_upd
Do not reload resources and send notification if locale is not changed.
2023-12-06 12:36:27 +01:00
Thaddeus Crews c9a4086da6
Fix EncodeT assignment in make_virtuals.py
• Adding EncodeT type casting allows generated code to support enum classes.
2023-12-05 10:37:04 -06:00
Thaddeus Crews ceb6dadf4e
Refactor make_virtuals.py
Output reformatted to be comparable to clang-formatted code, without compromising readability
2023-12-05 10:37:03 -06:00
bruvzg 829349d2ca
Do not reload resources and send notification if locale is not changed. 2023-12-05 16:17:22 +02:00
Rémi Verschelde 75d7aab015
Merge pull request #85486 from paulloz/fix/property-groups-shadowing
Fix property groups overriding real properties
2023-12-05 13:05:28 +01:00
Rémi Verschelde 22f2a6b8ad
Merge pull request #85397 from AThousandShips/fix_recurse
[Core] Prevent infinite recursion when printing errors
2023-12-04 23:14:04 +01:00
Rémi Verschelde 8174bce1be
Merge pull request #85389 from AThousandShips/hash_fix
[Core] Fix crash when hashing empty `CharString`
2023-12-04 23:13:38 +01:00
Rémi Verschelde 3e7cc5ec32
Merge pull request #85271 from YuriSizov/core-check-please!
Correctly check scripts that must inherit `EditorPlugin`
2023-12-04 23:12:24 +01:00
Gilles Roudière 8cfcd36253 Rework action pressed state to support multiple controllers 2023-12-04 18:02:51 +01:00
Pedro J. Estébanez 208c1020f5 Add 'u' format modifier for unsigned int/hex 2023-12-01 16:42:26 +01:00
Pedro J. Estébanez cba15cd625 Add WorkerThreadPool::get_thread_index() 2023-12-01 16:42:26 +01:00
bruvzg ec052cd38a
Add unsigned char cast ifdef. 2023-11-29 11:59:18 +02:00
Paul Joannon decf3b21ae
Fix property groups overriding real properties 2023-11-28 21:34:18 +01:00
kobewi f8f8fe0615 Improve message about resources in use at exit 2023-11-28 14:01:08 +01:00
A Thousand Ships d10617bb3b [Core] Prevent infinite recursion when printing errors 2023-11-26 18:53:28 +01:00
A Thousand Ships ca5ec6aec1 [Core] Fix crash when hashing empty `CharString` 2023-11-26 17:35:27 +01:00
Rémi Verschelde 4247244071
Merge pull request #85280 from bruvzg/custom_call_read_after_free
Prevent read-after-free in the queued CallableCustomStaticMethodPointer.
2023-11-24 00:00:52 +01:00
bruvzg eb81e8b2dc
Prevent read-after-free in the queued CallableCustomStaticMethodPointer. 2023-11-23 23:22:08 +02:00
Pedro J. Estébanez bfe66ab7cd Fixup thread-owned lambda bookkeeping on thread exit (take 2) 2023-11-23 18:50:20 +01:00
Yuri Sizov bc1949d797 Correctly check scripts that must inherit `EditorPlugin`
Also updates some error messages related to this kind of check
across the codebase.
2023-11-23 16:24:43 +01:00
kobewi 1de0415118 Don't abort loading when ext_resource is missing 2023-11-22 12:13:32 +01:00
Pedro J. Estébanez fe4850c0d0 Use mingw-std-threads in MinGW builds 2023-11-18 11:56:05 +01:00
bruvzg 932174fedf
[Editor] Add option to override editor UI layout direction. 2023-11-17 14:56:45 +02:00
Rémi Verschelde 47c7abc212
Merge pull request #84973 from dsnopek/gdextension-fix-compat-hashes
Check that `GDExtensionCompatHashes` are valid when generating `extension_api.json`
2023-11-16 14:53:39 +01:00
Rémi Verschelde 6ae6cc0bf5
Merge pull request #84815 from TokageItLab/array-animation
Rework blending method in `Variant` animation for `Int`/`Array`/`String`
2023-11-16 14:52:00 +01:00
David Snopek 5cf6d08dda Check that GDExtensionCompatHashes are valid when generating extension_api.json 2023-11-16 06:40:06 -06:00
Silc Lizard (Tokage) Renew 80c9533810 Rework blending method in Variant animation for Int/Array/String 2023-11-16 21:37:18 +09:00
Alistair Leslie-Hughes 5b6f641e99 Fix sizeof usage for Variant pointers in alloca
Coverity report this as a non portable usage of sizeof
2023-11-16 07:13:14 +11:00
Saracen f392a9c4f8 Fix CACHE_MODE_REPLACE 2023-11-15 18:55:20 +00:00
Rémi Verschelde dcee5cf9fa
Merge pull request #84884 from akien-mga/donors-sync-new-tiers
Donors: Change tiers to match Dev Fund, sync latest data
2023-11-14 19:31:50 +01:00
Rémi Verschelde a28476d1cd
Merge pull request #84847 from RandomShaper/lang_init_term
Let languages init & finish run without locks held
2023-11-14 19:31:37 +01:00
Rémi Verschelde ff5ac866e8
Donors: Change tiers to match Dev Fund, sync latest data
The new list includes all donors listed on fund.godotengine.org,
together with the ones still on Patreon on matching tiers.

We haven't yet updated Patreon tiers to match the Dev Fund, so donors
who used to be listed under "Silver donors" are now grandfathered under
the "Gold members" category from the Dev Fund.
2023-11-14 15:40:44 +01:00
Rémi Verschelde 40cdd22d57
Merge pull request #84873 from bruvzg/locale_rempas
Fix remapped font reloading on locale change.
2023-11-14 12:17:39 +01:00
bruvzg 8b2260544a
Fix remapped font reloading on locale change. 2023-11-13 21:25:41 +02:00
Pedro J. Estébanez f05f8c399e Let languages init & finish run without locks held 2023-11-13 16:06:48 +01:00
kobewi 4296f0a771 Fill remaining global scope constant descriptions 2023-11-13 15:17:10 +01:00
Rémi Verschelde 404c995ab3
Merge pull request #84795 from TheSofox/prevent-property-change-output-spam
Reduced output spam from rapid property changes
2023-11-12 23:00:31 +01:00
Rémi Verschelde 2bcc2a3cd0
Merge pull request #84791 from akien-mga/fix-translation-remapping-check
Fix translation remapping check for imported resources
2023-11-12 23:00:08 +01:00
Sofox 4006397339 Reduced output spam from rapid property changes 2023-11-12 14:49:51 +00:00
Rémi Verschelde 2729a78fd7
Fix translation remapping check for imported resources
Fixes #81660.
2023-11-12 13:17:12 +01:00
Rémi Verschelde 747bff0bff
Merge pull request #84685 from KoBeWi/TIWAGOS
Rework input actions to be reliable
2023-11-12 12:15:07 +01:00
Rémi Verschelde 8928b2044b
Merge pull request #80281 from KoBeWi/unacceptable
Assign temporary path to preloaded resources
2023-11-12 12:13:55 +01:00
Rémi Verschelde ba713c80df
Fix various typos with codespell
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01:00
Rémi Verschelde 96fa86f9a0
Merge pull request #84557 from TheSofox/undo-history-sync-fix
Fix for stopping the Undo History being desynchronised from actual Undo queue
2023-11-10 21:55:46 +01:00
kobewi d9d0cfaf38 Rework input actions to be reliable 2023-11-10 15:24:04 +01:00
Sofox 662522ae5a Fix for stopping the Undo History being desynchronised from actual Undo queue. 2023-11-10 13:04:12 +00:00
Rémi Verschelde dfe2df989d
Merge pull request #84493 from bruvzg/gde_ios_static_fix
[iOS, GDExtension] Fix loading and exporting static libraries and xcframeworks.
2023-11-10 10:44:56 +01:00
kobewi a3627b6e37 Assign temporary path to preloaded resources 2023-11-10 00:43:30 +01:00
Rémi Verschelde b06fe0d574
Merge pull request #84620 from dsnopek/gdextension-library-path-absolute
Change `GDExtension`'s `library_path` back to an absolute path
2023-11-09 20:04:45 +01:00
bruvzg d4d5d68eda
[iOS, GDExtension] Fix loading and exporting static libraries and xcframeworks. 2023-11-09 20:04:40 +02:00
David Snopek 09fcc3a1ad Change `GDExtension`'s `library_path` back to an absolute path 2023-11-09 11:24:57 -06:00
Rémi Verschelde c2246a5a6f
Merge pull request #84668 from YuriSizov/gui-dont-warn-when-popup-subs-are-nameless
Allow auto-generated node names in `PopupMenu::add_submenu_item`
2023-11-09 18:10:35 +01:00
Rémi Verschelde 19db9308ff
Merge pull request #84657 from RandomShaper/lang_srv_threading
Make languages bookkeeping thread-safe
2023-11-09 18:09:01 +01:00
Pedro J. Estébanez f3e96a8548 Make languages bookkeeping thread-safe 2023-11-09 18:03:43 +01:00
Yuri Sizov edcad2ea88 Allow auto-generated node names in `PopupMenu::add_submenu_item` 2023-11-09 17:12:41 +01:00
Rémi Verschelde aaafc69132
Merge pull request #84513 from bruvzg/x11_fallback_and_spam
[X11] Add fallback from desktop GL to GLES, suppress PRIME detector error spam.
2023-11-09 11:46:36 +01:00
Rémi Verschelde ce53362f98
Merge pull request #83670 from raulsntos/notification-predelete-cleanup
Add `NOTIFICATION_PREDELETE_CLEANUP` notification to fix C# `Dispose()`
2023-11-09 11:45:49 +01:00
kobewi 275e9d7028 Keep Variant type after zero() 2023-11-08 12:13:36 +01:00
bruvzg f3d4f5a77e
[X11] Add fallback from desktop GL to GLES, suppress PRIME detector error spam. 2023-11-06 12:40:44 +02:00
jsjtxietian 8f6e8ef0d7 clean unnecessay copy detected by clang-tidy 2023-11-06 16:22:32 +08:00
MewPurPur 931928feb9 Optimize String.humanize_size() 2023-11-05 02:42:54 +02:00
Aaron Franke 58076b9ccb
Implement glTF compat version system for files from older Godot versions 2023-11-03 12:07:25 -05:00
Yuri Sizov b733901e9e Merge pull request #84354 from RandomShaper/gdext_no_cache_doc
Polish & fix editor help cache generation
2023-11-02 20:34:22 +01:00
Yuri Sizov 1b42673b42 Merge pull request #84315 from dsnopek/gdextension-windows-modification-time
GDExtension: Save and compare modification times separately for reload
2023-11-02 20:34:15 +01:00
Wilson E. Alvarez dbc49d2a68
Add const references in String class 2023-11-02 13:49:39 -04:00
David Snopek f86054e3a0 GDExtension: Save and compare modification times separately for reload 2023-11-02 08:29:22 -05:00
Pedro J. Estébanez a1d8fc1af9 Polish & fix editor help cache generation
- Isolated the generation of extensions's docs. They're now not cached and refreshed as needed.
- Removed superfluous sorting of the class list.
- Removed some superfluous/unused elements.
- Renamed some items for clarity.
2023-11-02 13:46:37 +01:00
Thomas ten Cate 2263d94cc3 Add comment why off-by-one error is hard to fix
See #83843

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-11-01 11:14:13 +01:00
Rémi Verschelde a3e4c4f41c
Merge pull request #84155 from AThousandShips/encode_fix
Prevent `encode_variant` doing `memcpy` from `nullptr`
2023-10-30 23:19:22 +01:00
K. S. Ernest (iFire) Lee 9877fa5058 Fix uninitialized variable in Image::fix_alpha_edges()
`core\io\image.cpp:3776:33: error: 'closest_color[0]' may be used uninitialized [-Werror=maybe-uninitialized]`
2023-10-29 22:59:03 -07:00
A Thousand Ships 210461f2ed Prevent `encode_variant` doing `memcpy` from `nullptr` 2023-10-29 18:06:21 +01:00
BlueCube3310 6ed1731746 Use platform-specific methods for FileAccess reading and writing 2023-10-29 17:34:18 +01:00
Danil Alexeev b04263644c
Core: Allow methods of built-in `Variant` types to be used as Callables 2023-10-25 15:53:52 +03:00
Rémi Verschelde f7c43a8a19
Merge pull request #83800 from dsnopek/gdextension-callable-custom-object-id
GDExtension: Use `ObjectID` when creating custom callable
2023-10-25 10:29:58 +02:00
Rémi Verschelde e0b23ac420
Merge pull request #83845 from akien-mga/sync-gamecontrollerdb
Sync controller mappings DB with SDL2 community repo
2023-10-24 10:54:48 +02:00
Rémi Verschelde a1fd0b9d8a
Merge pull request #83782 from timothyqiu/self-awareness
Fix heap-use-after-free when resource loaded with `load_threaded_request` is never fetched
2023-10-24 10:54:31 +02:00
Rémi Verschelde bc5d5978ea
Merge pull request #83695 from YuriSizov/core-lock-and-key
Improve threading in ClassDB and EditorHelp
2023-10-24 10:54:19 +02:00
Rémi Verschelde 792afd2cad
Merge pull request #83588 from voidedWarranties/fix_sle_validate
Add `path` option to `ScriptLanguageExtension::_validate`
2023-10-24 10:54:11 +02:00
Rémi Verschelde d3c0a7d598
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@eb831f75ab

Fixes #83552.
2023-10-23 16:11:38 +02:00
David Snopek b0a33cac7c GDExtension: Use ObjectID when creating custom callable 2023-10-23 09:05:17 -05:00
Haoyu Qiu dc7e309f48 Fix heap-use-after-free when resource loaded with load_threaded_request is never fetched
Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2023-10-23 16:21:17 +08:00
voidedWarranties e8309dd192 Add `path` option to `ScriptLanguageExtension::_validate` 2023-10-22 21:49:34 -07:00
Rémi Verschelde 542f6e10eb
Merge pull request #83734 from MarioLiebisch/fix-extension-load-error
GDExtension: Fixed error on loading extensions
2023-10-22 12:12:17 +02:00
Rémi Verschelde 14913f178b
Merge pull request #83434 from Chubercik/optimize_triangulate_delaunay
Update `triangulate_delaunay()` to avoid needless reallocations
2023-10-22 12:11:53 +02:00
Mario Liebisch f2bcd7d61f
GDExtension: Fixed error on loading extensions
Previously, before loading an extension, the editor just tried to
retrieve the extension by path to test if it's been loaded already.

While this is handled gracefully, it ignored an error thrown inside
`GDExtensionManager::get_extension()`, that would essentially still
report a not yet loaded extension to the engine's log:

```
ERROR: Condition "!E" is true. Returning: Ref<GDExtension>()
   at: GDExtensionManager::get_extension (core\extension\gdextension_manager.cpp:165)
```

This change actively checks whether the extension path is known and only
then proceeds to actually return the already loaded extension or loads
and returns the new one otherwise.
2023-10-21 17:00:18 +02:00
Yuri Sizov 9b03fb36f9 Improve threading in ClassDB and EditorHelp 2023-10-20 22:14:04 +02:00
Rémi Verschelde f68fa0fedf
Merge pull request #83681 from dsnopek/gdextension-iter-get
GDExtension: Fix `variant_iter_get()` actually calling `iter_next()`
2023-10-20 22:02:51 +02:00
Rémi Verschelde e6e9b04aab
Merge pull request #81322 from johnnyw/android_fix_joypad_trigger_range
Android: Fix joypad trigger value range
2023-10-20 22:02:00 +02:00
John Watson d413a02079 Android: Fix joypad trigger value range
`Input::joy_axis` converts trigger values to be between 0.0f to 1.0f by default. This is not needed for Android, as values are already within that range, as per Android documentation: https://developer.android.com/reference/android/view/MotionEvent#AXIS_RTRIGGER

This patch prevents this conversion on Android, which caused L2 and R2 triggers to get stuck pressed. https://github.com/godotengine/godot/issues/79263
2023-10-20 11:30:20 -07:00
David Snopek b14f359c94 GDExtension: Fix `variant_iter_get()` actually calling `iter_next()` 2023-10-20 10:07:46 -05:00
Rémi Verschelde a63bff4ce4
Merge pull request #83619 from YuriSizov/core-our-vessel-only-has-one-node-left
Fix StringName leaks in VariantParser
2023-10-20 15:11:24 +02:00
Rémi Verschelde 01a8064760
Merge pull request #83583 from anrp/anrp/gdvirtboth
Allow coexistence of GDScript and GDExtension virtual methods in the same object
2023-10-20 15:09:27 +02:00
Raul Santos 9750e49c57
Add `NOTIFICATION_PREDELETE_CLEANUP` notification
New notification sent after `NOTIFICATION_PREDELETE` to let Objects cleanup at the very end, it should be the last notification sent.
2023-10-20 13:43:42 +02:00
Yuri Sizov 4952d37f4b Fix StringName leaks in VariantParser 2023-10-19 17:13:15 +02:00
anrp 4c33c60500 Allow coexistance of GDScript and GDExtension virtual methods in the same object
Resolves https://github.com/godotengine/godot-cpp/issues/1224
2023-10-19 10:21:26 -04:00
Yuri Sizov 582ed157b5 Fix StringName leaks in GDExtension, core, and editor themes 2023-10-18 17:36:20 +02:00
Rémi Verschelde e6d488f233
Merge pull request #81196 from georgwacker/add-audiosession-options
Add project settings for AVAudioSessionCategory on iOS
2023-10-17 16:12:49 +02:00
Georg Wacker fcc500ea41 Add project settings for AVAudioSessionCategory on iOS 2023-10-17 12:35:49 +02:00
Emmanuel Leblond fd33c7b32f
Merge pull request #83415 from touilleMan/fix-comment-gdextension_interface
Fix comment in `gdextension_interface.h`
2023-10-16 21:42:01 +02:00
Emmanuel Leblond 5aa9f1ce64
Fix comment in gdextension_interface.h 2023-10-16 21:40:45 +02:00
Rémi Verschelde 3bc1c9b5e0
Merge pull request #82797 from RandomShaper/fix_rbmap
Fix `RBMap`'s, iterator-based, `remove()`
2023-10-16 20:16:16 +02:00
Rémi Verschelde eb9903b4ce
Merge pull request #83285 from dsnopek/gdextension-double-reload
GDExtension: Prevent issues with the editor trying to reload GDExtensions through its usual mechanism
2023-10-16 18:44:51 +02:00
Rémi Verschelde 50212ecfdb
Merge pull request #78882 from dalexeev/gds-fix-utility-func-err-msg
GDScript: Fix incorrect error message for utility functions
2023-10-16 18:43:11 +02:00
Danil Alexeev 0c2202c56e
GDScript: Fix incorrect error message for utility functions 2023-10-16 14:09:57 +03:00
Jakub Marcowski c33e291474 Update `triangulate_delaunay()` to avoid needless reallocations 2023-10-16 12:37:57 +02:00
Jakub Marcowski bc78c832e9 Expose 3D Delaunay tetrahedralization in `Geometry3D` 2023-10-16 11:48:49 +02:00
ErezShahaf ccb8ea613a
Fix `Input.is_action_just_pressed` flicker on joypad axes
Pressed tick assignments were in the wrong scope, resulting in updating
`pressed_frame` even when it shouldn't and therefore the `just_pressed`
would return true every time that the strength changes and not only when
there's a new valid press.

Fixes #81975.
2023-10-16 11:41:56 +02:00
Rémi Verschelde c7b75c0226
Merge pull request #83318 from rburing/gdextension_dump_brief_description
Add brief description in GDExtension API dump with docs
2023-10-16 10:41:23 +02:00
Rémi Verschelde 4a6e8dc57b
Merge pull request #83146 from pancelor/fix-tilemap-liveupdate
Fix tilemap live editing while game is running
2023-10-16 10:39:48 +02:00
pancelor d66b1752b8 Fix tilemap live editing while game is running 2023-10-14 18:54:03 -07:00
Ricardo Buring c87b2a606e Add brief description in GDExtension API dump with docs
Also rename the "documentation" key to "description" for internal
consistency.
2023-10-14 12:06:37 +02:00
David Snopek 16a86b9604 GDExtension: Prevent issues with the editor trying to reload GDExtensions through its usual mechanism 2023-10-13 13:24:29 -05:00
Rémi Verschelde 51f81e1c88
Merge pull request #82957 from bruvzg/fs_case_check
Add method to check if filesystem is case sensitive.
2023-10-13 12:55:35 +02:00
Thaddeus Crews d8fdd419fa
Apply missing flag to vector4/projection 2023-10-12 11:18:45 -05:00
Jakub Marcowski cb954c6bab Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to` 2023-10-12 13:46:49 +02:00
Paul Joannon bf3f6e3b55
Error handling for `FileAccess.get_file_as_*`
- Assign last error in said `FileAccess.get_file_as_bytes` and `FileAccess.get_file_as_string`
- Document error handling for said methods
2023-10-11 18:52:16 +02:00
Rémi Verschelde b40d90d333
Merge pull request #83107 from dsnopek/validated-method-vararg-message
GDExtension: Fix incorrect error message about vararg methods
2023-10-10 22:51:41 +02:00
Rémi Verschelde feb6ea21dd
Merge pull request #83054 from dsnopek/gdextension-validated-call-always-ret-pointer
GDExtension: Use correct return pointer for validated calls that return `Variant`
2023-10-10 22:49:41 +02:00
David Snopek 87cb0bfa50 GDExtension: Fix incorrect error message about vararg methods 2023-10-10 08:46:25 -05:00
David Snopek 88b6fee547 GDExtension: Use correct return pointer for validated calls that return `Variant` 2023-10-10 08:31:08 -05:00
Rémi Verschelde 71a8ac41fb
Merge pull request #72751 from dalexeev/doc-comment-color
Highlight doc comments in a different color
2023-10-09 23:21:54 +02:00
Rémi Verschelde a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
Rémi Verschelde 336260b7b3
Merge pull request #83002 from AThousandShips/safety_check
Replace `sanity` with `safety` for checks
2023-10-09 15:36:49 +02:00
Rémi Verschelde 35ede42d1d
Merge pull request #82695 from maiself/object-less-callables-fixes
Fixes to allow object-less callables throughout Godot
2023-10-09 15:32:38 +02:00
bruvzg 97bcd8a631 Add method to check if filesystem is case sensitive. 2023-10-09 11:00:15 +03:00
Danil Alexeev de7cbe8789
Highlight doc comments in a different color 2023-10-08 19:26:10 +03:00
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
A Thousand Ships 034c0f1624 Replace `sanity` with `safety` for checks 2023-10-08 16:22:24 +02:00
Mai Lavelle 5e15586ec2 Fixes to allow object-less callables throughout Godot
This fixes #81887
2023-10-06 16:31:35 -04:00
Rémi Verschelde a6a2d0d159
Merge pull request #82794 from dsnopek/gdextension-validated-call
GDExtension: Convert `validated_call()` to `ptrcall()` (rather than `call()`)
2023-10-06 16:50:57 +02:00
Rémi Verschelde 7c56631419
Merge pull request #82861 from mihe/gdext-entry-false
Fix extensions loading/initializing even when entry point fails
2023-10-05 22:50:35 +02:00
Mikael Hermansson 5c6353ae17 Fix extensions loading/initializing even when entry point fails 2023-10-05 18:24:58 +02:00
Rémi Verschelde af232e63de
Merge pull request #82842 from YuriSizov/gdext-icons-are-relative-maaaan
Resolve relative icon paths for GDExtensions
2023-10-05 16:32:40 +02:00
Yuri Sizov d427851013 Resolve relative icon paths for GDExtensions 2023-10-05 12:49:31 +02:00
Rémi Verschelde c2b916751d
Merge pull request #82786 from theraot/donotreplacestartingdigitwithunderscore
Do not replace starting digit with underscore when making identifier
2023-10-05 12:29:42 +02:00
kobewi 09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
Rémi Verschelde c7ed5d795e
Merge pull request #82799 from CedNaru/feature/expose_free_instance_binding
Expose `Object::free_instance_binding()` to GDExtension
2023-10-05 10:10:58 +02:00
Ced Naru 0a246e9b54 expose Object::free_instance_binding to GDExtension 2023-10-04 19:24:37 +02:00
Pedro J. Estébanez 5c81236047 Fix RBMap's, iterator-based, remove() 2023-10-04 18:58:28 +02:00
Danil Alexeev ed0b3c08e1
Core: Fix `Object::has_method()` for script static methods 2023-10-04 19:44:32 +03:00
David Snopek 55596eaac6 GDExtension: Convert `validated_call()` to `ptrcall()` (rather than `call()`) 2023-10-04 10:53:17 -05:00
Alfonso J. Ramos 5cd7ca0ccc Do not replace starting digit with underscore when making identifier 2023-10-04 08:05:04 -05:00
Yuri Roubinski 04bb89c0bd Add isometric cell shape mode to `AStarGrid2D`. 2023-10-03 21:04:03 +03:00
Rémi Verschelde dbd4c79c38
Merge pull request #82682 from dsnopek/gdextension-dont-deprecate-script-category
GDExtension: Don't deprecate old method of getting script category
2023-10-03 17:26:41 +02:00
Rémi Verschelde 5efbed51cc GDScript: Improve error messages for invalid indexing
These errors are very common when using an invalid property name
or calling on an object of the wrong type, and the previous message
was a bit cryptic for users.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Co-authored-by: golfinq <golfinqz@gmail.com>
2023-10-02 14:23:11 -04:00
Jakub Janšta 74c937079c Add type_string() utility 2023-10-02 17:41:20 +02:00
David Snopek cbf939e121 GDExtension: Don't deprecate old method of getting script category 2023-10-02 09:23:27 -05:00
Rémi Verschelde 98d9119cee
Merge pull request #82603 from kkolyan/82601_fix_reload_loop
Fix inconsistent `last_modified_time` handling in GDExtension
2023-10-02 13:16:47 +02:00
Rémi Verschelde 5fe97c5844
Merge pull request #82441 from akien-mga/web-clarify-get_unique_id
Web: Clarify that `OS.get_unique_id` is not supported
2023-10-02 13:16:31 +02:00
Rémi Verschelde e95b7e84a4
Merge pull request #80844 from dalexeev/fix-callable-expected-argc
Fix expected argument count for `Callable` call errors
2023-10-02 13:15:53 +02:00
etti 3a39de4e2f Add rotate_toward and angle_difference to GDScript and C# 2023-10-01 22:19:42 +02:00
kkolyan 43f92e4752 Fix inconsistent last_modified_time handling (prevent GDExtension reload spam on Windows 10) 2023-10-01 22:05:57 +04:00
Danil Alexeev aff767ef07
Fix expected argument count for `Callable` call errors 2023-09-29 20:00:10 +03:00
风青山 e705aa4550 Fix not refitting upward from leaf nodes.
Previously, the wrong node id (root node id) was used. Dirty leaf nodes
do not actually recalculate aabb.

Additionally, when requesting a new leaf, mark `dirty` as `false` in `clear()`.

Make sure to only mark the leaf as **dirty** when shrinking the border of
the leaf when removing items.

In other cases, the leaf node's aabb will get the correct result immediately.
1. When adding an item, the leaf nodes will be calculated immediately.
2. Removing the item within the border of the leaf node has no effect on the
original aabb.
2023-09-28 20:27:51 +08:00
Yuri Sizov 5f53ec9129 Merge pull request #78995 from Gallilus/master
Allow implementing `get_class_category` in GDExtension
2023-09-27 19:07:50 +02:00
David Cambré 531f56e830 add GDExtensionScriptInstanceGetClassCategory
Change GetClassCategory so it is handled in native directly
2023-09-27 17:45:48 +02:00
Rémi Verschelde 0a10f09ce4
Web: Clarify that `OS.get_unique_id` is not supported
Remove the base error message in `OS`, we no longer really error out this
way for not implemented methods. Instead, each platform should override them
to provide the context they want.

Fixes #82439.
2023-09-27 15:17:45 +02:00
Rémi Verschelde ec62b8a3ee
Merge pull request #82436 from Rindbee/fix-axis-being-mixed-up
Fix axis getting mixed up when split leaf
2023-09-27 14:03:51 +02:00
Rémi Verschelde d616c3ecd0
Merge pull request #82408 from hpvb/fix-import-crash
Fix Image import crash
2023-09-27 14:03:47 +02:00
Rémi Verschelde 737c308dcc
Merge pull request #74588 from puchik/float-variant-nan-inequality
Support numeric/binary hash comparison for floats derived from Variants (as well as existing semantic comparison)
2023-09-27 14:03:34 +02:00
Rémi Verschelde 19057c07bc
Merge pull request #67080 from Mickeon/resource-virtual-local-to-scene-setup
Reimplement Resource.`_setup_local_to_scene` & deprecate signal
2023-09-27 14:03:28 +02:00
风青山 0156860ad5 Fix axis getting mixed up when split leaf 2023-09-27 17:56:12 +08:00
Hein-Pieter van Braam b5705958e6 Fix import crash
I was trying to import a solid colored metal/roughness texture that
worked in Godot 4.1.1 but failed to load on master. I eventually tracked
it down to this: to_x and to_y can be 0, which then leads them to be -1
later, which then causes ofs to overflow.

Some of these cases were hidden because of the use of Vector so we were
just happily scribbling in ram elsewhere.

Switched to LocalVector as it made debugging a bit easier.
2023-09-26 23:50:50 +02:00
Rémi Verschelde 251fb83d53
Merge pull request #82331 from rburing/gdextension_dump_docs
Optionally include documentation in GDExtension API dump
2023-09-26 22:46:34 +02:00
Ricardo Buring 8ee04c5f87 Optionally include documentation in GDExtension API dump 2023-09-26 21:39:24 +02:00
Rémi Verschelde da91cf9367
Merge pull request #82347 from SaracenOne/dir_access_checks
Add error checks for DirAccess creation
2023-09-26 16:36:47 +02:00
Rémi Verschelde 666a92c7c2
Merge pull request #82244 from SaracenOne/fix_dependency_error_popup
Fix missing dependency warning popup
2023-09-26 13:45:23 +02:00
Rémi Verschelde 017541bcec
Merge pull request #80527 from raulsntos/dotnet/generate-compat-methods-from-classdb
C#: Generate and use compat methods
2023-09-26 13:44:52 +02:00
Rémi Verschelde 3ec673085b
Merge pull request #79523 from aaronfranke/is-conformal
Add `is_conformal` method to Basis and Transform2D
2023-09-26 13:44:41 +02:00
Rémi Verschelde 7e67b496ff
Merge pull request #82332 from Sauermann/fix-struct-type
Fix type of `notification_func`
2023-09-26 08:32:15 +02:00
Rémi Verschelde 7dccb9e039
Merge pull request #80796 from smix8/navgenerator_2d_4.x
Add 2D navigation mesh baking
2023-09-26 08:17:58 +02:00
Rémi Verschelde 55dfbd7761
Merge pull request #80284 from dsnopek/gdextension-hot-reload
Implement reloading of GDExtensions
2023-09-26 08:17:28 +02:00
David Snopek 2733a6f762 Implement reloading of GDExtensions 2023-09-25 22:10:17 -05:00
Saracen 0b0a6109b6 Make notify_dependency_error only defer calls if called from secondary threads. 2023-09-26 03:36:11 +01:00
Saracen 3f4513d4de Add error checks for DirAccess creation. 2023-09-26 03:07:43 +01:00
Markus Sauermann d2bcde0407 Fix type of notification_func 2023-09-25 23:37:13 +02:00
Rémi Verschelde 023b6b30c1
Merge pull request #73813 from groud/improve_y_sort_performances
Greatly improve Y-sort performance on TileMaps
2023-09-25 22:47:22 +02:00
smix8 0ee7e3102b Add 2D navigation mesh baking
Adds 2D navigation mesh baking.
2023-09-25 19:48:14 +02:00
Gilles Roudière 30b94bb8ab Improve TileMap Y-sorting performance 2023-09-25 18:49:04 +02:00
Rémi Verschelde 9750876d7a
Merge pull request #80962 from YuriSizov/godot-the-editor-engine
Differentiate between core and editor-only singletons
2023-09-25 18:38:17 +02:00
Rémi Verschelde 82f6e9be5e
Merge pull request #82297 from sadikkuzu/master
Fix typo in `heuristic_euclidian` helper in AStarGrid2D
2023-09-25 17:18:55 +02:00
Rémi Verschelde e4cfd4e26a
Merge pull request #82195 from AThousandShips/radian_fix
Replace `radians` range hint with `radians_as_degrees`
2023-09-25 17:18:38 +02:00
Rémi Verschelde d759f91f8d
Merge pull request #81101 from 398utubzyt/dotnet/abstract-class-support
C#: Add abstract class support
2023-09-25 17:18:05 +02:00
Rémi Verschelde 1a0e653d7f
Merge pull request #78573 from dalexeev/editor-create-script-class-name
Editor: Remove unused Class Name field from Create Script dialog
2023-09-25 17:17:46 +02:00
SADIK KUZU a8ff5f086d Fix typo in `heuristic_euclidian` helper in AStarGrid2D 2023-09-25 14:33:22 +03:00
A Thousand Ships e45927b2f2 Replace `radians` range hint with `radians_as_degrees` 2023-09-25 08:50:19 +02:00
Rémi Verschelde 0b4959bdf0
Merge pull request #82203 from KoBeWi/shortcuts_under_pressure
Make InputEventShortcut always pressed
2023-09-24 23:36:09 +02:00
Rémi Verschelde d8c31155a8
Merge pull request #82191 from dsnopek/gdextension-redundant-hash-check
GDExtension: Remove redundant method bind hash check
2023-09-24 23:35:45 +02:00
Rémi Verschelde 40b48b13ee
Merge pull request #78580 from Bromeon/feature/gdextension-stringname-ctor
Add GDExtension function to construct StringName directly from char*
2023-09-24 23:30:04 +02:00
Jan Haller c770937db5 More precise documentation for GDExtension String constructors (bytes vs. character count) 2023-09-24 20:57:58 +02:00
Jan Haller 43be9fa0c8 Fix platform-dependent hashing for char* and wchar_t*
Since char/wchar_t can be either signed or unsigned, its conversion to uint32_t leads to different values depending on platform.
In particular, the same string represented as char* (Latin-1; StringName direct construction) or uint32_t (UTF-8; constructed
via String) previously resulted in different hashes.
2023-09-24 20:57:57 +02:00
Jan Haller ed3015e979 GDExtension: construct StringName directly from char*
So far, an indirection via String was necessary, causing at least 2 allocations and copies (String; String inside StringName).
Since StringNames often refer to string literals, this allows them to be directly constructed from C strings.

There are two formats: Latin-1 and UTF-8.

The Latin-1 constructor also provides the `p_is_static` flag: when the source has static storage duration, no copy/allocation will be needed.
However, the extension developer needs to uphold this lifetime guarantee.
2023-09-24 18:18:05 +02:00
Rémi Verschelde e40b0b3ed8
Sync controller mappings DB with SDL2 community repo
Synced with gabomdq/SDL_GameControllerDB@fc4b33c872
2023-09-24 15:51:12 +02:00
kobewi 90a0b19301 Make InputEventShortcut always pressed 2023-09-23 19:43:07 +02:00
David Snopek 0967fe6217 GDExtension: Remove redundant method bind hash check 2023-09-23 08:48:33 -05:00
Rémi Verschelde 6fc1d50db3
Merge pull request #81521 from dsnopek/method-bind-default-argument-hash-fix
Fix method hashes with default arguments
2023-09-22 22:03:30 +02:00
David Snopek 0d13727c97 Fix method hashes with default arguments 2023-09-21 12:39:04 -05:00
Rémi Verschelde 59139df16e
Merge pull request #81986 from spazzylemons/master
Remove unnecessary line from Projection::get_z_far
2023-09-20 18:55:32 +02:00
Rémi Verschelde 6df12fe187
Merge pull request #80671 from fuzzybinary/gdextension-virtuals
Add functions for non-ptr style virtual calls in GDExtension
2023-09-20 18:55:05 +02:00
Matthew 9f21dfbafd
Remove unnecessary line from Projection::get_z_far
Removes a line from Projection::get_z_far that flips the normal of a plane.
While this may be required for similar code elsewhere in the file, this is
unnecessary here, as only the length of the normal is used and not the
direction. Flipping the normal does not change its magnitude and therefore is
unnecessary in this case.
2023-09-20 10:48:37 -04:00
Rémi Verschelde 54748f23dd
Merge pull request #74142 from bitsawer/mipmap_api
Expose and document `Image.get_mipmap_count()`
2023-09-20 15:18:15 +02:00
Rémi Verschelde c36f6f87e6
Merge pull request #81917 from AThousandShips/alloc_fix
Fix allocation size overflow check in `CowData`
2023-09-20 13:09:55 +02:00
Jeff Ward 60851af4da Add functions for non-ptr style virtual calls in GDExtension
This adds two functions to `GDExtensionClassCreationInfo` that allow for developers to supply a generic virtual call function along with user data to be sent to that call.

If `get_virutal_call_data_func` is not null, extensions call this function to get user data to pass to a supplied `call_virtual_with_data_func`. Both must be provided is one is provided.

If `get_virtual_call_data_func` is null, Godot falls back to the old `get_virtual_func` logic.

Fixes #63275

Co-authored-by: David Snopek <dsnopek@gmail.com>
2023-09-19 22:33:32 -04:00
Raul Santos 5f6082a96b
C#: Generate and use compat methods
- Implements `ClassDB::get_method_list_with_compatibility` to retrieve all methods from a class including compat methods.
- C# bindings generator now also generates compat methods.
- All generated C# methods now use `ClassDB::get_method_with_compatibility`.
2023-09-19 20:35:11 +02:00
Danil Alexeev 1621110e2d
Core: Some code style improvements to `AStarGrid2D` 2023-09-19 17:20:38 +03:00
A Thousand Ships c48b189e14 Fix allocation size overflow check in `CowData` 2023-09-19 16:12:02 +02:00
bitsawer 16c3a19d91 Expose and document Image.get_mipmap_count() 2023-09-19 14:34:59 +03:00
Rémi Verschelde 8dfc3f1864
Merge pull request #79005 from maiself/gde-custom-callable
Allow CallableCustom objects to be created from GDExtensions (extended)
2023-09-19 09:02:49 +02:00
Rémi Verschelde 7bb80b1525
Merge pull request #81741 from KoBeWi/vectoring_to_the_MAXXX
Add `Vector2/3/4i.MAX` and `MIN`
2023-09-17 14:47:52 +02:00
Rémi Verschelde 61df1deb61
Merge pull request #80075 from Bromeon/gdextension/optimize-ptrcalls
GDExtension: `PtrToArg::convert()` uses const-reference where possible
2023-09-17 14:46:13 +02:00
kobewi adc930baee Add Vector2/3/4i.MAX and MIN 2023-09-16 21:52:13 +02:00
398utubzyt 2df37a237a C#: Abstract script class support 2023-09-15 20:35:25 -07:00
kobewi cd0aaab48c Cleanup some GLOBAL_DEFs 2023-09-15 21:32:23 +02:00
Aaron Franke 56806ffeed
Add `is_conformal` method to Basis and Transform2D 2023-09-13 17:20:30 -05:00
David Snopek 6554ccf86d GDExtension: Delete left-over DLL copy before making a new copy 2023-09-12 09:57:40 -05:00
Rémi Verschelde cc61c9d63d
Merge pull request #81487 from AThousandShips/null_check_core
[Core] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-12 12:02:02 +02:00
Rémi Verschelde 38ca83e16f
Merge pull request #81464 from AcatXIo/fix-sign-nan
Fix `SIGN(NAN)` returning 1
2023-09-12 12:01:39 +02:00
Danil Alexeev 26ce861910
Editor: Remove unused Class Name field from Create Script dialog 2023-09-12 12:49:56 +03:00
A Thousand Ships 893f889d74 [Core] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-11 19:45:49 +02:00
Rémi Verschelde 43c7e8d3b5
Merge pull request #81515 from dsnopek/gdextension-validate-property-object
Allow implementing `Object::_validate_property()` from GDExtension
2023-09-11 15:40:05 +02:00
Rémi Verschelde 5f5ca23586
Merge pull request #81170 from KoBeWi/step_input
Prevent axis-based actions from getting stuck
2023-09-11 15:37:42 +02:00
Rémi Verschelde 786dab42fd
Merge pull request #70329 from Daylily-Zeleen/daylily-zeleen/register_internal_class
Allow GDExtension to register unexposed classes.
2023-09-11 15:35:31 +02:00
David Snopek abef8e3874 Allow implementing `Object::_validate_property()` from GDExtension 2023-09-10 11:17:59 -05:00
Micky 79ce0c6e80 Reimplement Resource.`_local_to_scene_setup` & remove workaround
Reimplements the virtual method _setup_local_to_scene, lost in #51970

Also deprecates the redundant `setup_local_to_scene_requested` signal.
2023-09-09 13:51:12 +02:00
AcatXIo 7d69a5ba50 Fix sign(NAN) returning 1.
Fixes #79036. sign(NAN) now returns 0.
This should not impact performance much in any way.
Adds a test for the NAN case. Updates the documentation to clarify the new behavior.
2023-09-09 11:30:11 +02:00
Aaron Franke 6f7eccc758
Add a type conversion method to Variant Utility and expose to scripting 2023-09-08 10:12:48 -05:00
Rémi Verschelde 8de6405288
UWP: Remove platform port, needs to be redone from scratch for 4.x
The UWP platform port was never ported to the Godot 4.0+ API,
and it's now accumulating bitrot as it doesn't compile, and thus
we no longer propagate platform changes in it.

So we finally remove to acknowledge this state. There's still some
interest in reviving the UWP port eventually, especially as support
for Direct3D 12 will soon be merged, but when that happens it will
be easiest to redo it from scratch.
2023-09-07 15:01:59 +02:00
Rémi Verschelde 7663c69922
Merge pull request #81388 from YuriSizov/core-gdvirtual-but-less-confused-about-itself
Extract `ScriptInstance` into its own file to simplify includes
2023-09-07 13:53:45 +02:00
Rémi Verschelde d013fc3f03
Merge pull request #81304 from ajreckof/Change-precedence-in-rules-to-make-location-after-proper-casing-
Change precedence in rules to make location after proper casing.
2023-09-07 13:52:08 +02:00
Rémi Verschelde d1c94eef06
Merge pull request #81261 from dsnopek/gdextension-validate-property
Allow implementing `ScriptInstance::validate_property()` from GDExtension
2023-09-07 13:51:44 +02:00
Yuri Sizov d8ff69d53c Extract ScriptInstance to simplify includes
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.

This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Rémi Verschelde 0a7f75ec7b
Merge pull request #80740 from m4gr3d/godot_android_plugin_refactor_main
Godot Android plugin re-architecture
2023-09-06 00:09:07 +02:00
ajreckof 19632eaf50 Change precedence in rules to make location after proper casing. 2023-09-05 16:16:21 +02:00
bruvzg 2b3bbde6da
[String] Fix string conversion for -0.0 float values. 2023-09-05 11:32:55 +03:00
David Snopek 3e7a6e058a Allow implementing `ScriptInstance::validate_property()` from GDExtension 2023-09-04 13:55:48 -05:00
kobewi a490fad82d Prevent axis-based actions from getting stuck 2023-09-04 15:47:26 +02:00
Rémi Verschelde 75de1ca768
Merge pull request #81280 from ogapo/deterministic_pcks
Fix for non-deterministic behavior in PCKPacker
2023-09-04 09:09:23 +02:00
Rémi Verschelde dd4fae6162
Merge pull request #74809 from Chaosus/completion_color_xyzw
Add coloring for completion of vector components
2023-09-04 09:06:57 +02:00
Daylily-Zeleen 41ffe5461f Allow GDExtension to register unexposed class. 2023-09-04 10:18:20 +08:00
Fredia Huya-Kouadio 8cc7739197 Godot Android plugin re-architecture 2023-09-03 17:04:10 -07:00
David Nikdel 067807c1cb Remove nondeterminism in pck_packer
PCK files (like other build products) should be deterministic based on their inputs. Removed calls to Math::rand() that are being used to generate padding.

Looks like these were introduced as part of adding encryption support, but the padding being random does not have any cryptographic significance. This can be trivially inferred since file blocks that happen to be aligned don't get padding anyway.

If there's a desire to indroduce something that functions as a nonce it should probably be added explicitly and only if encryption is enabled.
remove Math::rand() calls in editor_export_platform.cpp

follow up to make consistent with pck_packer
2023-09-03 18:14:30 -04:00