Commit Graph

420 Commits

Author SHA1 Message Date
Luke Hubmayer-Werner
f80e276363 PulseAudio: Remove get_latency() caching 2023-08-27 12:14:00 +02:00
puzzud
21d78d77f6 Prevent double input events on gamepad when running through steam input #79706
Co-authored-by: Eoin O'Neill <eoinoneill1991@gmail.com>
2023-08-27 11:47:35 +02:00
Marcin Nowak
4b76c7e89c Backport implement loading DDS textures at run-time 2023-08-27 11:31:12 +02:00
8ed3b41865 Re-extracted class docs. 2023-08-26 22:41:21 +02:00
3244eab5c5 Fix docs for the write lock part of the RWLock, as it's not re-entrant. 2023-07-06 21:46:45 +02:00
bbbcfacd84 Re-extracted class docs. 2023-07-06 21:17:58 +02:00
be022b610f Bind RWLock, so it's accessible to scripts. 2023-07-06 21:17:13 +02:00
5b869f8b54 Ported from godot: Canvas item hierarchical culling
Adds optional hierarchical culling to the 2D rendering (within VisualServer).
Each canvas item maintains a bound in local space of the item itself and all child / grandchild items. This allows branches to be culled at once when they don't intersect a viewport.
- lawnjelly
b777a9e5f9
2023-06-28 20:25:48 +02:00
75ceb22100 Revert "Add option in VisibilityEnabler2D to hide the parent for better performance"
This reverts commit ad6e504a5b.
2023-06-28 19:00:29 +02:00
ee54ca3808 Ported from godot: Input - fix just pressed and released with short presses
Previously if an action was both pressed and released on the same tick or frame, `is_action_just_pressed()` would return false, resulting in missed input.

This PR separately the timestamp for pressing and releasing so each can be tested independently.

- lawnjelly

63d208d1b0
2023-06-28 12:48:36 +02:00
83468ef10b Added missing descriptions to Input's class docs from godot. 2023-06-28 12:39:36 +02:00
Ninni Pipping
e492213868 Add example for NodePath to grandparent 2023-06-28 12:23:49 +02:00
Ninni Pipping
c25ea39a3b Clarify String.get_slice behavior
Clarify that the function returns the whole string if there is no
instances of the delimiter in the string.
2023-06-28 12:23:28 +02:00
Patrick
78bc0eeb97 Backport VideoLooping and fix for initial black frame 2023-06-28 12:22:49 +02:00
1a5cba555c Backported godot4 PR: Support threads in the script debugger
* This implementation adds threads on the side of the client (script debugger).
* Some functions of the debugger are optimized.
* The profile is also now thread safe using atomics.
* The editor can switch between multiple threads when debugging.
This PR adds threaded support for the script language debugger. Every thread has its own thread local data and it will connect to the debugger using multiple thread IDs.
This means that, now, the editor can receive multiple threads entering debug mode at the same time.
- reduz
PR 76582
Will be available here after it's merged:
6b176671c4
2023-06-14 14:43:55 +02:00
4b9989b553 Committing small change on test docs re-extraction. 2023-06-13 18:20:18 +02:00
fe56b4c6b5 Fixed up the remaining newly extracted class doc xmls. 2023-06-13 18:19:02 +02:00
24df83cd32 Added more newly extracted class docs. 2023-06-13 17:55:03 +02:00
8d679355df Re-extracted class docs pt3. 2023-06-13 17:34:41 +02:00
a7f1f3356c Re-extracted class docs pt2. 2023-06-13 16:51:37 +02:00
ee6f207b0d Re-extracted class docs pt1. 2023-06-13 15:22:43 +02:00
d4175f9676 Ported parts of : Refactor Node Processing
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.
This is the first steps towards implementing godotengine/godot-proposals#6424.
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
- reduz
98c655ec8d
- Only got the smaller improvements, and the thread safety for Node and SceneTree. I'm planning to implement a similar system, but I have a different way of doing it in mind.
2023-06-12 21:13:26 +02:00
de1763d40d Renamed neighbor_dist properties / getters / setters for the navigation server. 2023-06-12 08:37:57 +02:00
3afa1142b9 Merged the functionality of BSInputEventKey to InputEventKey. This new setting can make input event keys act as if they are shortcut matched. 2023-06-11 16:06:09 +02:00
37fa118ec4 Ported: Adds a scale_gizmo_handles entry to the Touchscreen editor settings
When enabled, this scales the editor icons to improve usability on touchscreen devices.
In addition this commit fixes touch detection for the collision_shape_2d_editor_plugin so it scales with the icons size.
- m4gr3d
b78935ef51
2023-06-11 13:16:13 +02:00
d6f5dd35e8 Ported: Enable granular control of touchscreen related settings
- m4gr3d
61e41facc7
2023-06-11 12:57:25 +02:00
3331a7ae04 Ported: Augment the InputEvent class with a CANCELED state
The `InputEvent` class currently supports the `pressed` and `released` states, which given the binary nature, is represented by a `bool` field.
This commit introduced the `CANCELED` state, which signals that an ongoing input event has been canceled.
To represent all the states, the `InputEventState` enum is added and the `InputEvent` logic is refactored accordingly.
- m4gr3d
94d6c3dcc6
2023-06-11 10:26:23 +02:00
7e64510427 Ported: Add setting to control the window used to run the project for the Android editor
The follow options were added to the (new) `run/window_placement/android_window` editor setting:

- `Auto`: choose how to run the project based on the device screen size
- `Same as Editor`: run the project in the same window as the editor
- `Side-by-side with Editor`: run the project in an adjacent window to the editor
- m4gr3d
b5a908c985
Removed my force launch adjacent solution in favor of this.
2023-06-11 09:52:39 +02:00
ShadyChibinko
38bb088c1e Add Tab Metadata 2023-06-11 09:19:03 +02:00
SysError99
830ad2a71d Improve tooltip for CanvasLayer.layer (3.x) 2023-06-11 09:18:20 +02:00
Aaron Franke
a0a6843a25 Fix small mistake in docs, "antecedents" -> "ancestors" 2023-06-11 09:13:12 +02:00
needleful
cfabdb87f0 Add allow_search property to ItemList and Tree 2023-06-11 09:12:26 +02:00
Ninni Pipping
92fe699254 Clarify range of various ID values are 32 bit 2023-06-11 09:10:45 +02:00
MJacred
3227a23031 Warn against using non-uniform scale for 3D physics (in class reference only)
partial backport of #67847
fixes #56824
2023-06-11 09:04:25 +02:00
David Snopek
90100df0b1 Minor improvements to NetworkedMultiplayerCustom.xml 2023-06-11 08:55:49 +02:00
Ryan Roden-Corrent
2a8d12ad59 Fix docs on multiplayer peer signals.
NetworkedMultiplayerPeerENet emits peer_connected and peer_disconnected
on both the client and the server:
6fed1ffa31/modules/enet/networked_multiplayer_enet.cpp (L268)

When trying to implement `NetworkedMultiplayerCustom`, I followed the
documentation and only emitted this signal on the server.
I ended up getting errors like:

```
Invalid packet received. Unabled to find requested cached node
```

While I didn't check other peer implementations, it seems that emitting
on both the client and server is required.

I copied the wording from the `master` branch documentation.

Here's some output from a test program with all the signals connected:
```
1948301815 got multiplayer.network_peer_connected from  1
1948301815 got peer.peer_connected from 1
1948301815 got multiplayer.connected_to_server
1948301815 got peer.connection_succeeded
1413532890 got multiplayer.network_peer_connected from  1
1413532890 got peer.peer_connected from 1
1413532890 got multiplayer.connected_to_server
1413532890 got peer.connection_succeeded
1 got multiplayer.network_peer_connected from  1413532890
1 got peer.peer_connected from 1413532890
1 got multiplayer.network_peer_connected from  1948301815
1 got peer.peer_connected from 1948301815
1413532890 got multiplayer.network_peer_connected from  1948301815
1413532890 got peer.peer_connected from 1948301815
1948301815 got multiplayer.network_peer_connected from  1413532890
1948301815 got peer.peer_connected from 1413532890
1 got multiplayer.network_peer_disconnected from  1948301815
1 got peer.peer_disconnected from 1948301815
1413532890 got multiplayer.network_peer_disconnected from  1948301815
1413532890 got peer.peer_disconnected from 1948301815
1 got multiplayer.network_peer_disconnected from  1413532890
1 got peer.peer_disconnected from 1413532890
```
2023-06-11 08:52:06 +02:00
Ninni Pipping
7579d990c1 Fix NodePath subname index range documentation 2023-06-11 08:50:06 +02:00
05e1c55e1c Ported: Document 3D particle color properties requiring vertex color as albedo
- Calinou
c65967c17f
2023-06-11 00:50:20 +02:00
a0e5645d18 Fix godot4 syntax in docs. 2023-06-10 21:10:45 +02:00
f058c87868 Backported from godot4: Rework Navigation Avoidance
Rework Navigation Avoidance.
- smix8
a6ac305f96
2023-06-10 20:58:49 +02:00
8b18898609 Backported from godot4: Rework const on NavigationServer methods
`const` is used on all methods, even when they cause modification of the server.  This reworks the methods of the server to only use `const` on method that don't change the state of the server.
- DarkKilauea
a0715b30f9
2023-06-09 22:03:42 +02:00
6384b9624f Ported from godot4: Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
- smix8
f986b52b3c
2023-06-09 20:54:05 +02:00
81c392489a Ported from godot4: Add NavigationLink helper functions for global positions
Adds helper functions to set the links start and end position with global positions or get them as global positions.
Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
- smix8
d87f124768
2023-06-09 20:00:28 +02:00
29784d5d5b Ported from godot4: Enable assigning an owner to navigation regions and links
This allows users of the server APIs to get back the nodes that created certain regions and links.
- DarkKilauea
5769b0e8d8
2023-06-09 19:46:44 +02:00
160cb38a50 Ported from godot4: Add support for emitting a signal when entering a NavLink
- DarkKilauea
5d8ba2b2d1
2023-06-09 19:08:38 +02:00
12b95cdc1f Ported from godot4: Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
- smix8
55923ade68
2023-06-09 15:44:12 +02:00
268645ff0b Ported from godot4: Add NavigationAgent Path Debug Visualization
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
- smix8
0ab764e84b
2023-06-09 14:17:54 +02:00
c11500d480 Ported from godot4: Rename Navigation uses of 'location' to 'position'
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
- smix8
bf1571979c
2023-06-09 10:28:31 +02:00
b940854ca9 Ported from godot4: Add NavigationServer Performance Monitor
Adds Performance Monitor for NavigationServer3D.
- smix8
9802914f97
2023-06-09 10:17:43 +02:00
9c95fade84 Backported from godot4: Fix navigation debug not toggleable in scripts
Fixes that navigation debug was not toggleable in script while even the docs mentioned it.
- smix8
aecad7bb25
2023-06-09 09:01:01 +02:00
0438c3cc3f Backported from godot4: Added node for Navigation links .
- DarkKilauea
3dd59013f4
2023-06-08 20:46:09 +02:00
f6e65112d7 Backported from godot4: Add NavigationPathQuery
Adds NavigationPathQueryParameters objects that can be used with NavigationServer.query_path() to query a customized navigation path.
- smix8
63dcb9aa80
2023-06-08 18:23:48 +02:00
7ce5f939a9 Ported the docs from the navigation mesh generator rework pr. 2023-06-06 16:52:04 +02:00
890d6f1b28 Removed region_bake_navmesh from the NavigationServer. 2023-06-06 09:36:19 +02:00
25078b1437 Ported from godot4: Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
- smix8
d7f75fab60
2023-06-05 18:56:41 +02:00
654cfb81b7 Renamed NavigationRegion2D back to NavigationPolygonInstance, as I think it fits the engine better. 2023-06-05 18:09:53 +02:00
68b9f4c90e Ported from godot4: Add more detailed Navigation Debug Visualization
- Adds more customization options to ProjectSettings.
- Displays navregion edge connections and navigation polygon edges in editor and at runtime.
- Majority of debug code moved from SceneTree to NavigationServer.
- Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
- smix8
c394ea518e
2023-06-05 18:05:15 +02:00
b7892d6baf Backported from godot4: Implement NavigationMesh bake area.
Adds two new properties to NavigationMesh resources to restrict the navmesh baking to an area enclosed by an AABB with volume.
- smix8
0c4d99f4fd
2023-06-05 14:24:42 +02:00
54ae614941 Make sure that the new classes are registered to the ClassDB. Also added in the docs for them. 2023-06-03 20:39:56 +02:00
2114b2239b Split NavigationPolygon and NavigationPolygonInstance into 2 files. Also renamedNavigationPolygonInstance to NavigationRegion2D. 2023-06-03 16:54:48 +02:00
f4a4956b7a Ported: Fix Polygon2D skinned bounds (for culling)
The bound Rect2 was previously incorrect because bone transforms need to be applied to verts in bone space, rather than local space. This was previously resulting in skinned Polygon2Ds being incorrectly culled.
- lawnjelly
dd6c213dac
2023-05-01 13:34:35 +02:00
BimDav
ad6e504a5b Add option in VisibilityEnabler2D to hide the parent for better performance 2023-05-01 12:22:39 +02:00
06b2437b72 Ported: [3.x] Expose more compression formats in Image
- AThousandShips
2ca86ef449
2023-04-20 23:47:57 +02:00
1263101396 Ported: Batching - Add MultiRect command
Large groups of similar rects can be processed more efficiently using the MultiRect command. Processing common to the group can be done as a one off, instead of per rect.

Adds the new API to VisualServerCanvas, and uses the new functionality from Font, BitmapFont, DynamicFont and TileMap, via the VisualServerCanvasHelper class.

- lawnjelly

910ddd13c4
2023-04-20 23:09:37 +02:00
31f61225a2 Ported: Make MessageQueue growable
* Uses simple vector resizing (po2)
* Uses pair of read and write buffers
- lawnjelly
5f1e7e6fbc
2023-04-15 12:06:16 +02:00
bb9f227c73 Ported: Update make_rst.py to match the master version
This does not include master-specific concepts, like
constructors, operators, annotations, and bitfields.
- YuriSizov
0f24d6ecf7
2023-04-15 11:20:13 +02:00
464b0b5e08 Ported: Add Color + alpha constructor for Color
- timothyqiu
3544cd1dad
2023-04-15 11:02:41 +02:00
kobewi
381aa1a140 Add set_value_no_signal() to Range 2023-04-15 10:56:26 +02:00
40a9b72afb Ported from godot-plus: Add ability to mute AudioServer.
Adds the option to change the audio driver to the Dummy driver and back at runtime, with a set of MuteState flags - Disabled (user control), Silence (period of silence), Focus Loss (when app is not in focus), and Paused (when app is paused).
Control for the flags is added for the editor in EditorSettings, and for the project in ProjectSettings.
Editor defaults to muted (Dummy driver) when there is no audio output, and automatically switches to active on output. This significantly reduces CPU usage.
- lawnjelly
cedb01fb84
2023-04-10 19:42:23 +02:00
32e9927ac8 Ported from godot 4: Remove NOTIFICATION_MOVED_IN_PARENT
* This notification makes node children management very inefficient.
* Replaced by a NOTIFICATION_CHILDREN_CHANGED (and children_changed signal).
* Changed Canvas code (and similar) to use the above signal, to perform more efficiently.
This PR breaks compatibility (although this notification was very rarely used, even within the engine), but provides an alternate way to do the same.
It is required for the changes in #75627 to be entirely effective.
- reduz
Note that I removed NOTIFICATION_MOVED_IN_PARENT, as keeping it, but making it just not work is worse in my opinion.
104392ef4e
2023-04-10 15:55:34 +02:00
Hugo Locurcio
e8d3159d6f Mention String.match() is also called "glob"/"globbing"
This is mostly for Ctrl + F purposes, in case someone is looking
how to perform globbing on a string.

(cherry picked from commit 64906bd1f7ea77f2a2829ff9c65219aca0912f87)
2023-03-12 15:42:00 +01:00
Hugo Locurcio
f1a7db4597 Document using String.percent_encode() with OS.shell_open() 2023-03-12 15:07:20 +01:00
Ninni Pipping
e8216d9ad1 Backport Tree::set_selected
Backport function from godotengine#68448

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-03-12 14:25:47 +01:00
75ed28f2b3 Ported: iOS: Fix memory leak on touch input
Replaces iOS gesture with touch implementation
Fixes 66422
Remove godot_view_gesture_recognizer
It's now unused.
Remove input_devices/pointing/ios/touch_delay
Unused with removal of gesture.
Remove unused methods from interface
Implementation made obsolete in prior commit
Style conformance
- tbveralrud
28b11a0785
2023-03-12 14:08:29 +01:00
Aaron Franke
304c45fbf3 Improve the clarity of Viewport's documentation 2023-03-12 13:28:20 +01:00
15bf4aefd0 Ported: Rework how current Camera2D is determined
7e2a8afb57
- KoBeWi
and
Fix Camera2D crashes
724d6581d6
- KoBeWi
From godot4.
Also fixed issues with active Camera2D switching.
2023-03-04 21:29:49 +01:00
9490e255c7 Move EditorScriptEditor's doc. 2023-02-18 16:54:42 +01:00
6026725f3b Renamed ScriptEditor to EditorScriptEditor. 2023-02-18 16:52:26 +01:00
Danil Alexeev
4f04b2233b Fix wrong SpriteFrames docs 2023-02-07 03:03:34 +01:00
Hugo Locurcio
a744936512 Document image size restrictions for custom mouse cursors in HTML5
(cherry picked from commit 296b8f299a1653abcaf194f154c26af07581b000)
2023-02-07 03:03:18 +01:00
Jóhannes Gunnar Þorsteinsson
d19c1fedfb Add independent spinbox arrow step precision
Backported from the `master` branch, with a property hint added.
2023-02-07 02:51:05 +01:00
db67fa53ea Ported: Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices
- m4gr3d
8170b7ae1e
2023-02-07 02:50:11 +01:00
1f20512f8c Ported: Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
- lawnjelly
5a0cb54b3a
2023-02-07 02:28:29 +01:00
Hugo Locurcio
272d1af91c Document Environment's background_energy property affecting lighting
Godot 4.0 allows controlling ambient and specular light intensity
separately, but 3.x doesn't.
2023-02-07 02:00:15 +01:00
19baf2133a Ported: PopupMenu rework and enhancements
Many scrolling behaviour improvements and the ability to limit popup size.
- EricEzaM, rsubtil
6a5992c9f1
2023-02-07 01:59:27 +01:00
79842beb9a Ported: Expose OS.read_string_from_stdin() to the scripting API
This can be used in scripts to read user input in a blocking manner.
This also removes the unused `block` argument, which is always `true`.
- Calinou
badcfa2523
2023-02-07 01:07:31 +01:00
lawnjelly
85a4c5369b Faster queue free
Calling queue_free() for large numbers of siblings could previously be very slow, with the time taken rising exponentially with number of children. This looked partly due to ordered_remove from the child list and notifications.

This PR identifies objects that are nodes, and sorts the deletion queue so that children are deleted in reverse child order. This minimizes the costs of reordering.
2023-01-16 14:24:25 +01:00
Fabio Alessandrelli
f2682927f0 Expose API to force file system sync. 2023-01-16 14:15:08 +01:00
fc991ede18 Re-extracted class docs. 2023-01-14 13:38:58 +01:00
3bf2b79d88 Added set_length helper method to String. 2022-12-22 21:10:04 +01:00
213f393293 Fix typos with codespell. 2022-12-22 19:51:25 +01:00
ce5e82d910 Ported: Include the follow-viewport-transform into CanvasLayer transform calculations
The follow-viewport-transform was missing from several calculations
3.x version of #59682
- Sauermann
608cbd8296
2022-12-22 19:06:10 +01:00
b8009c85f4 Ported: Add vector value linking - KoBeWi and timothyqiu
9499ebecee
2022-12-22 18:50:17 +01:00
Haoyu Qiu
1d2a560819 Make NavigationAgent target_location a property 2022-12-22 14:42:05 +01:00
Zak
b5c01b8703 Add uri property for LinkButton
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit d73a9b56b08864b5e5ccf0df910190b064ff7463)
2022-12-22 14:23:04 +01:00
smix8
9225e78f68 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.

(cherry picked from commit 194c1c44e0a20faa4463e3a41bb12cf93a71fc03)
2022-12-22 14:12:00 +01:00
Hugo Locurcio
fe010a1efe Silence Input.vibrate_handheld() warning as it's already documented
The warning causes messages to be spammed if you are calling this
method in a game that runs on both desktop and mobile platforms,
unless you guard all calls to `Input.vibrate_handheld()` with
`OS.has_feature("mobile") or OS.has_feature("web")`.

Since the limitation is already documented (and is obvious enough
given the method's name), the warning message is redundant.

(cherry picked from commit 4a991887bf3dd5fbb687fb379f06ac85aa4a6245)
2022-12-22 14:08:01 +01:00
Hugo Locurcio
ef4fe36eb4 Document debanding only affecting 3D rendering by default 2022-12-22 13:39:09 +01:00
Haoyu Qiu
43146b2cf1 Add note about GROUP_CALL_UNIQUE not considering arguments
(cherry picked from commit 3f2d6f5f6cd9623d6aa7149bc1871b021d84304c)
2022-12-12 12:16:27 +01:00
Hugo Locurcio
7d1abdb3db Fix BackBufferCopy rect property appearing when not relevant in inspector
The `rect` property is only effective if `copy_mode` is Rect.
2022-12-11 19:18:17 +01:00