Commit graph

7020 commits

Author SHA1 Message Date
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