Commit graph

8455 commits

Author SHA1 Message Date
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
Yuri Sizov
b4fe310f7d Merge pull request #86377 from timothyqiu/slider-drag
Emit slider's `drag_started` signal before the first value change
2023-12-22 17:20:05 +01:00
Yuri Sizov
84d4889fa0 Merge pull request #86345 from brno32/outline-size-docs
Add note that a large value for `Label.outline_size` is not recommended
2023-12-22 17:20:02 +01:00
Yuri Sizov
13d34d6a2b Merge pull request #85923 from Calinou/editor-filesystem-dock-add-open-in-terminal
Add a editor FileSystem dock action to open a terminal in selected folder
2023-12-22 17:19:53 +01:00
Haoyu Qiu
58db3e5d7b Emit slider's drag_started signal before the first value change 2023-12-21 11:23:35 +08: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
Alex Drozd
daa8942f41 Add note that a large value for outline_size is not recommended 2023-12-20 17:55:23 +01:00
Yuri Sizov
ed5a54d797 Merge pull request #86326 from MichaelMacha/patch-1
Remove pointer to deprecated class page from Skeleton3D
2023-12-20 15:08:14 +01:00
Yuri Sizov
e11e0a7f07 Merge pull request #84734 from Anutrix/node-doc-11112023
Add description to `AnimationNodeStateMachine.replace_node`
2023-12-20 15:07:36 +01:00
Yuri Sizov
bc6be82f5a Merge pull request #81260 from KoBeWi/min_maxing_particle_editing
Improve editing of min/max particle properties
2023-12-20 15:07:25 +01:00
kobewi
ce9fec9b4d Improve editing of min/max particle properties 2023-12-20 06:31:08 +01:00
Yuri Sizov
3ce73e5d41 Merge pull request #86331 from Calinou/doc-richtexteffect
Improve RichTextLabel `install_effect()` documentation
2023-12-19 20:33:13 +01:00
Yuri Sizov
dee2604d99 Merge pull request #84729 from nickyfoo/add-navigationserver-getters
Add missing getters to navigation servers
2023-12-19 20:32:46 +01:00
Yuri Sizov
179b8c7973 Merge pull request #84185 from bruvzg/lbl_char_rects
[Label] Add get_character_bounds method to get bounding rectangles of the characters.
2023-12-19 20:32:39 +01:00
Yuri Sizov
b9dff50282 Merge pull request #83785 from Geometror/graphedit-dotted-grid
Add dotted grid to GraphEdit
2023-12-19 20:32:35 +01:00
Nicholas Foo
e7ee672120 Add getters to navigation servers
Add virtual functions and bind to navigation servers
Implement getters
Add documentation
2023-12-19 19:51:49 +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
Hugo Locurcio
78fff7292c
Improve RichTextLabel install_effect() documentation 2023-12-19 17:29:49 +01:00
Hugo Locurcio
0e97acff84
Add a editor FileSystem dock action to open a terminal in selected folder
This is useful to enter some commands without having to open a separate
terminal and `cd` to the project folder.
2023-12-19 15:04:02 +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
Yuri Sizov
1ecba5d341 Merge pull request #84940 from Calinou/editor-textureprogressbar-inspector-hide-properties
Hide ineffective TextureProgressBar properties in the editor
2023-12-19 13:01:30 +01:00
Yuri Sizov
7aae85edfd Merge pull request #84845 from DarkMessiah/tree-disabled-checkbox
Implement disabled state for Checkbox in Tree
2023-12-19 13:01:25 +01:00
Yuri Sizov
76fdc0adad Merge pull request #84708 from bruvzg/winink_def
[Windows] Make Windows Ink tablet API default, add dummy driver to disable tablet input.
2023-12-19 13:01:14 +01:00
Yuri Sizov
714e27393a Merge pull request #84652 from timothyqiu/enum-pun
Avoid punning enum names in documentation
2023-12-19 13:01:10 +01:00
bruvzg
e9c219cff2
[Label] Add get_character_bounds method to get bounding rectangles of the characters. 2023-12-19 13:53:21 +02:00
Michael Macha
0e52ffeb69
Remove pointer to deprecated class page, from Skeleton3D
SkeletonIK3D is now deprecated, but Skeleton3D is recommending looking into its use for complicated inverse kinematics. What's worse, the removed line is not perfectly clear for non-developers and people less experienced with the engine, and could still stand to be improved.
2023-12-19 04:46:34 -07:00
bruvzg
e01b22a69d
[Windows] Make Windows Ink tablet API default, add dummy driver to disable tablet input. 2023-12-18 22:36:54 +02:00
Yuri Sizov
a4d789370f Merge pull request #85966 from Kimau/claire/expose_mouseover
Expose a method to get hovered Control in Viewport
2023-12-18 18:17:57 +01:00
Yuri Sizov
644e236e5c Merge pull request #83987 from bruvzg/macos_window_and_help
[macOS] Add default Window and Help menus, allow special menu customization.
2023-12-18 18:17:41 +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
A Thousand Ships
0081a50e32 Prevent mapping areas with invalid IDs for Area2D/3D
This occurs when areas are created directly from the servers, and no
instance is linked.
2023-12-18 16:02:46 +01:00
Alfonso J. Ramos
e7e35e8366 Expose Script.get_global_name() 2023-12-18 15:13:09 +01:00
Claire Blackshaw
fe7725239e Expose a method to get hovered Control in Viewport 2023-12-18 14:53:52 +01:00
Yuri Sizov
9c425c592f Merge pull request #86161 from ZeferinoI/patch-1
Update the description of the method get_connection_list in GraphEdit
2023-12-16 17:50:01 +01:00
Yuri Sizov
1e86ce0b40 Merge pull request #85317 from miv391/fix-breaking-frame-index-in-sprites
Fix invalid `frame` index when Sprite2D's `hframes` or `vframes` has been changed
2023-12-16 17:49:38 +01:00
Yuri Sizov
4b258ccdd3 Merge pull request #82884 from KoBeWi/commit_message_cached,_please_refresh
Clarify some descriptions regarding resource cache
2023-12-16 17:49:20 +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
Mika Viskari
484c5b5aff Fix invalid frame index when Sprite2D's hframes or vframes has been changed 2023-12-15 20:32:18 +02:00
Yuri Sizov
302e41c264 Merge pull request #82561 from ershn/fix_navigation_agents_is_target_reached_behavior
Make `target_desired_distance` affect the navigation of `NavigationAgent2D/3D`
2023-12-14 21:22:35 +01:00
Yuri Sizov
4cf6325aa1 Merge pull request #84660 from groud/better_tileset_polygons
Move tile transforms handling cache to TileData
2023-12-14 17:38:14 +01:00
Yuri Sizov
16d1d85a56 Merge pull request #78206 from alula/node-count-in-group
Add SceneTree.get_node_count_in_group()
2023-12-14 17:38:00 +01:00
ZeferinoI
53ab38a34e
Update the description of the method get_connection_line in GraphEdit.xml
The form should be like { from_port: 0, from_node: "GraphNode name 0", to_port: 1, to_node: "GraphNode name 1" }
2023-12-14 23:09:43 +08:00
bruvzg
0d44b50520
[macOS] Add default Window and Help menus, allow special menu customization. 2023-12-13 23:20:05 +02:00
Gilles Roudière
18fe0bd025 Move tile transforms handling cache to TileData 2023-12-13 17:44:59 +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
Rémi Verschelde
28220a3405
Merge pull request #86071 from Calinou/doc-time-scale-audioserver
Document `AudioServer.playback_speed_scale` in `Engine.time_scale`
2023-12-13 10:33:12 +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
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