Commit graph

3565 commits

Author SHA1 Message Date
lawnjelly
5162efbfe9 2D Fixed Timestep Interpolation
Adds support to canvas items and Camera2D.
2023-08-01 16:07:48 +01:00
puzzud
140440ee82 [3.x] Prevent double input events on gamepad when running through steam input #79706
Co-authored-by: Eoin O'Neill <eoinoneill1991@gmail.com>
2023-07-20 16:35:44 -04:00
Rémi Verschelde
29eeb461f2
Merge pull request #68738 from lawnjelly/faster_canvas_item
[3.x] Canvas item hierarchical culling
2023-06-27 08:40:22 +02:00
Ninni Pipping
b3ebc80feb [3.x] Add example for NodePath to grandparent 2023-06-25 10:30:47 +02:00
Ninni Pipping
dec7cb5548 [3.x] 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-20 10:41:53 +02:00
Rémi Verschelde
9ba9a41766
Merge pull request #78220 from raulsntos/dotnet/reserved-assembly-name-3.x
[3.x] C#: Avoid GodotSharp as project assembly name
2023-06-15 15:55:19 +02:00
Rémi Verschelde
3b3c5f413e
Merge pull request #77979 from paddy-exe/video-loop-fix
[3.x] Backport video loop property and fix for initial black frame
2023-06-15 15:55:14 +02:00
Rémi Verschelde
b91d8d49fa
Merge pull request #78182 from godotengine/revert-63193-visibility_enabler2
Revert "Add option in VisibilityEnabler2D to hide the parent for better performance"
2023-06-13 16:03:30 +02:00
Rémi Verschelde
60a7b83fbf
Merge pull request #78047 from jeronimo-schreyer/expose_code_editor
[3.x] Expose the TextEdit control of the script editor
2023-06-13 14:37:15 +02:00
Rémi Verschelde
da35288d4e
Merge pull request #77040 from lawnjelly/input_just_pressed
[3.x] Input - fix just pressed and released with short presses
2023-06-13 14:37:10 +02:00
Rémi Verschelde
eaca9a17c3
Revert "Add option in VisibilityEnabler2D to hide the parent for better performance" 2023-06-13 14:25:19 +02:00
lawnjelly
63d208d1b0 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.
2023-06-12 16:33:48 +01:00
wareya
a40ecc71e6 move autotile fallback helper functions + fix comments and docs 2023-06-10 12:17:57 -04:00
wareya
73ad6517e4 make autotiles fall back to the most similar bitmask using heuristics 2023-06-09 22:27:19 -04:00
Jeronimo Schreyer
a248c318de Expose the TextEdit control of the script editor
Refactor ScriptEditor and ScriptTextEditor with added method to retrieve the script editor's TextEdit control.

Update
doc/classes/ScriptEditor.xml
script_editor_plugin.cpp
script_editor_plugin.h
script_text_editor.cpp
script_text_editor.h
2023-06-09 10:07:38 -03:00
Fredia Huya-Kouadio
b5a908c985 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
2023-06-07 18:20:14 -07:00
Patrick
58d76c117e [3.x] Backport VideoLooping and fix for initial black frame 2023-06-07 21:36:37 +02:00
Rémi Verschelde
f742d98679
Merge pull request #75959 from ShadyChibinko/tab_metadata_3x
[3.x] Add tab Metadata to Tabs & TabContainer
2023-06-07 14:46:21 +02:00
Rémi Verschelde
34bde7a6f9
Merge pull request #74765 from SysError99/3.x
[3.x] Improve tooltip for CanvasLayer.layer
2023-06-07 14:05:24 +02:00
Rémi Verschelde
1d8b701da0
Merge pull request #75370 from AThousandShips/nodepath_doc_fix_3_x
[3.x] Fix `NodePath` subname index range documentation
2023-06-02 17:21:01 +02:00
Rémi Verschelde
f753aec703
Merge pull request #73942 from rcorre/fix_peer_signal_docs
[3.x] Fix docs on multiplayer peer signals.
2023-06-02 17:20:56 +02:00
Rémi Verschelde
56df1841f1
Merge pull request #64585 from dsnopek/multiplayer-custom-docs-improvements-2
[3.x] Update NetworkedMultiplayerCustom.xml with more explicit documentation to guide usage
2023-06-02 17:20:51 +02:00
bruvzg
18ee8da7d6
Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-26 20:57:29 +03:00
Rémi Verschelde
88189c6c5d
Merge pull request #77281 from MJacred/3.x-cherrypick
[3.x] Warn against using non-uniform scale for 3D physics (in  class reference only)
2023-05-23 19:05:32 +02:00
Rémi Verschelde
63bb2485f1
Merge pull request #77232 from AThousandShips/id_doc_3_x
[3.x] Clarify range of various ID values are 32 bit
2023-05-23 19:05:27 +02:00
Rémi Verschelde
f1fa69a58d
Merge pull request #76753 from Calinou/itemlist-tree-add-allow-search-property-3.x
Add allow_search property to ItemList and Tree (3.x)
2023-05-23 19:05:25 +02:00
Rémi Verschelde
5f4fb87327
Merge pull request #76723 from aaronfranke/3.x-ancestortecedent
[3.x] Fix small mistake in docs, "antecedents" -> "ancestors"
2023-05-23 19:05:23 +02:00
MJacred
1c63c54ab3 [3.x] Warn against using non-uniform scale for 3D physics (in class reference only)
partial backport of #67847
fixes #56824
2023-05-20 18:48:34 +02:00
Ninni Pipping
96ad972dc5 [3.x] Clarify range of various ID values are 32 bit 2023-05-19 17:23:11 +02:00
Rémi Verschelde
1538b870f1
Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
[3.x] Augment the `InputEvent` class with a `CANCELED` state
2023-05-17 18:21:42 +02:00
Rémi Verschelde
4cc2229a52
Merge pull request #72251 from RandomShaper/robust_sync_3.x
[3.x] Backport some multi-threading goodies
2023-05-16 13:16:25 +02:00
Fredia Huya-Kouadio
94d6c3dcc6 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.
2023-05-12 15:22:54 -07:00
Hugo Locurcio
c65967c17f
Document 3D particle color properties requiring vertex color as albedo 2023-05-09 00:55:19 +02:00
Fredia Huya-Kouadio
f9ae38d87c
Merge pull request #73692 from m4gr3d/update_touchscreen_editor_settings_3x
[3.x] Enable granular control of touchscreen related settings
2023-05-08 09:10:36 -07:00
Fredia Huya-Kouadio
b78935ef51 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.
2023-05-07 15:55:03 -07:00
needleful
aac5558760
Add allow_search property to ItemList and Tree 2023-05-05 18:02:49 +02:00
Aaron Franke
92f0c9272f
[3.x] Fix small mistake in docs, "antecedents" -> "ancestors" 2023-05-03 23:51:01 -05:00
Rémi Verschelde
83e91ab818
Merge pull request #76323 from aaronfranke/3.x-t2d-basis-det
[3.x] Expose `determinant` in Transform2D, rename internal method
2023-04-26 12:17:00 +02:00
lawnjelly
b777a9e5f9 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.
2023-04-25 20:17:33 +01:00
Rémi Verschelde
15c729e1d9
Merge pull request #76321 from Calinou/doc-projectsettings-ubershader-3.x
Improve documentation related to ubershaders in ProjectSettings
2023-04-25 19:25:11 +02:00
Hugo Locurcio
d20305a718
Improve documentation related to ubershaders in ProjectSettings 2023-04-25 19:03:49 +02:00
Rémi Verschelde
bfb6877b3c
Merge pull request #75612 from lawnjelly/fix_skele2d_bounds2
[3.x] Fix Polygon2D skinned bounds (for culling)
2023-04-25 16:24:59 +02:00
Rémi Verschelde
31224276ee
Merge pull request #63193 from BimDav/visibility_enabler2
Add option in VisibilityEnabler2D to hide the parent for better performance
2023-04-25 16:24:54 +02:00
Aaron Franke
141783d90f
[3.x] Expose determinant in Transform2D, rename internal method 2023-04-22 13:47:47 -05:00
Rémi Verschelde
78739f7266
Merge pull request #76016 from AThousandShips/image_compress
[3.x] Expose more compression formats in Image
2023-04-17 17:25:37 +02:00
Rémi Verschelde
4c5a934408
Merge pull request #68960 from lawnjelly/multirect
Batching - Add MultiRect command
2023-04-17 17:25:20 +02:00
Ninni Pipping
2ca86ef449 [3.x] Expose more compression formats in Image 2023-04-13 09:49:16 +02:00
lawnjelly
dd6c213dac 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.
2023-04-12 10:17:02 +01:00
ShadyChibinko
7af43733e1 Add Tab Metadata 2023-04-11 20:36:48 -04:00
Rémi Verschelde
632a544c6e
Merge pull request #75527 from lawnjelly/growable_message_queue3
[3.x] Make MessageQueue growable
2023-04-11 22:01:32 +02:00
Rémi Verschelde
b14a759fb3
Merge pull request #75898 from YuriSizov/docs-make-rst-enhancements-3.x
Update `make_rst.py` to match the master version
2023-04-11 15:03:37 +02:00
Rémi Verschelde
0facd88410
Merge pull request #74973 from timothyqiu/a-color
[3.x] Add Color + alpha constructor for Color
2023-04-11 10:53:33 +02:00
Yuri Sizov
0f24d6ecf7 Update make_rst.py to match the master version
This does not include master-specific concepts, like
constructors, operators, annotations, and bitfields.
2023-04-10 20:47:01 +02:00
Fredia Huya-Kouadio
61e41facc7 Enable granular control of touchscreen related settings 2023-04-05 10:11:53 -07:00
lawnjelly
5f1e7e6fbc Make MessageQueue growable
* Uses simple vector resizing (po2)
* Uses pair of read and write buffers
2023-03-31 10:07:56 +01:00
Ansraer
54bc6a300e add support for 3 dir shadow splits 2023-03-29 13:40:17 +02:00
Ninni Pipping
ff61feaf4e [3.x] Fix NodePath subname index range documentation 2023-03-26 20:18:02 +02:00
Haoyu Qiu
3544cd1dad Add Color + alpha constructor for Color 2023-03-16 14:51:40 +08:00
kobewi
fdae01de10 Add set_value_no_signal() to Range 2023-03-13 16:36:18 +00:00
SysError99
4c6751d383 Improve tooltip for CanvasLayer.layer (3.x) 2023-03-11 19:13:54 +07:00
lawnjelly
910ddd13c4 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.
2023-03-10 10:58:04 +00:00
Hugo Locurcio
a836b6bc88
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 64906bd1f7)
2023-03-06 13:05:17 +01:00
Rémi Verschelde
0cee4a85f5
Merge pull request #74284 from Calinou/doc-shell-open-uri-encode-3.x
Document using `String.percent_encode()` with `OS.shell_open()` (3.x)
2023-03-06 12:38:04 +01:00
Hugo Locurcio
1a6343729b
Document using String.percent_encode() with OS.shell_open() 2023-03-03 11:17:21 +01:00
Ninni Pipping
8185fa8e2a [3.x] Backport Tree::set_selected
Backport function from godotengine#68448

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-02-27 20:26:15 +01:00
Ryan Roden-Corrent
c3d9cc7068
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-02-25 13:31:31 -05:00
Pedro J. Estébanez
32a9227f5b Robustify multi-threading primitives 2023-02-17 19:16:10 +01:00
Rémi Verschelde
8adf26540c
Merge pull request #69200 from tbveralrud/ios-touch-leak-fix-3.x
iOS: Fix memory leak on touch input [3.x]
2023-02-17 12:15:00 +01:00
Marcin Nowak
22468ea1d3
Backport implement loading DDS textures at run-time 2023-02-17 11:27:47 +01:00
Travis Veralrud
28b11a0785 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
2023-02-15 21:38:55 -08:00
Aaron Franke
1949b7c652
[3.x] Improve the clarity of Viewport's documentation 2023-02-13 16:23:07 -06:00
Rémi Verschelde
fb846d3522
Merge pull request #71425 from Calinou/spinbox-add-independent-arrow-step-3.x
Add independent spinbox arrow step precision
2023-02-01 13:05:43 +01:00
Fredia Huya-Kouadio
aed400cce2
Merge pull request #71654 from m4gr3d/increase_scroll_bar_size_for_touchscreen_3x
[3.x] Update the size of the scrollbar for the editor on touchscreen devices
2023-01-31 21:52:03 -08:00
lawnjelly
5a0cb54b3a Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
2023-01-24 14:05:48 +00:00
Rémi Verschelde
ae47e1d37c
Merge pull request #71889 from Calinou/doc-environment-background-energy
Document Environment's `background_energy` property affecting lighting
2023-01-23 17:04:25 +01:00
Rémi Verschelde
dd7f517407
Merge pull request #66711 from rsubtil/port_popup_menu_rework
[3.x] PopupMenu rework and enhancements
2023-01-23 17:04:17 +01:00
Hugo Locurcio
646a2d9d94
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-01-23 00:43:59 +01:00
Fredia Huya-Kouadio
8170b7ae1e Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices 2023-01-22 07:09:48 -08:00
EricEzaM
6a5992c9f1 PopupMenu rework and enhancements
Many scrolling behaviour improvements and the ability to limit popup size.
2023-01-21 21:36:26 +00:00
Hugo Locurcio
04225415c3
Document image size restrictions for custom mouse cursors in HTML5
(cherry picked from commit 296b8f299a)
2023-01-20 12:15:07 +01:00
Rémi Verschelde
f3da393b44
Merge pull request #70378 from Calinou/os-expose-read-from-stdin-3.x
Expose `OS.read_string_from_stdin()` to the scripting API (3.x)
2023-01-20 12:12:35 +01:00
Rémi Verschelde
d4f66544ce
Merge pull request #71146 from dalexeev/3.x-fix-sprite-frames-doc
[3.x] Fix wrong `SpriteFrames` docs
2023-01-16 22:22:02 +01:00
Hugo Locurcio
badcfa2523
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`.
2023-01-16 11:39:53 +01:00
Jóhannes Gunnar Þorsteinsson
e09d4d255e
Add independent spinbox arrow step precision
Backported from the `master` branch, with a property hint added.
2023-01-14 20:14:17 +01:00
Rémi Verschelde
1ee7c5a62c
Merge pull request #62444 from lawnjelly/faster_queue_free3
[3.x] Faster queue free
2023-01-10 10:55:36 +01:00
Danil Alexeev
398ed4efc3
[3.x] Fix wrong SpriteFrames docs 2023-01-10 10:02:04 +03:00
Fabio Alessandrelli
d0ba1517a7 [Web] Expose API to force file system sync. 2023-01-09 21:30:42 +01:00
Rémi Verschelde
3b7bb812fd
Merge pull request #70310 from Sauermann/3x-fix-follow-viewport-transform
[3.x] Include the follow-viewport-transform into CanvasLayer transform calculations
2022-12-22 08:55:28 +01:00
Rémi Verschelde
76bcc90da8
Merge pull request #70228 from Calinou/add-transparent-viewport-project-setting-3.x
Add a project setting to make the root viewport transparent (3.x)
2022-12-22 08:55:21 +01:00
Markus Sauermann
608cbd8296 Include the follow-viewport-transform into CanvasLayer transform calculations
The follow-viewport-transform was missing from several calculations

3.x version of #59682
2022-12-19 19:18:54 +01:00
Zak
f974bcf074 Add uri property for LinkButton
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit d73a9b56b0)
2022-12-18 10:43:39 +08:00
smix8
17e6d76de6 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.

(cherry picked from commit 194c1c44e0)
2022-12-18 10:32:04 +08:00
Hugo Locurcio
be3017114f 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 4a991887bf)
2022-12-18 10:32:04 +08:00
kobewi
9499ebecee Add vector value linking
Co-authored-by: redlamp <244062+redlamp@users.noreply.github.com>
(cherry picked from commit 5553e27fe8)
2022-12-18 10:32:04 +08:00
Hugo Locurcio
65465f309c
Add a project setting to make the root viewport transparent
This allows creating a project with a transparent window without having
to write any script.
2022-12-18 00:38:05 +01:00
Rémi Verschelde
6963ba631e
Fix typos with codespell 2022-12-15 12:26:59 +01:00
Rémi Verschelde
2c714f19e5
Merge pull request #65453 from timothyqiu/agent-target-3.x
[3.x] Make NavigationAgent `target_location` a property
2022-12-12 16:07:25 +01:00
Rémi Verschelde
16ad014dd3
Merge pull request #67040 from Calinou/xdg-paths-linux-only-3.x
Only support XDG directory path configuration on Linux (3.x)
2022-12-12 12:27:56 +01:00
Hugo Locurcio
06c266f231
Only support XDG directory path configuration on Linux
This also harmonizes the server code to be consistent with Linux desktop
(with warnings printed for relative XDG paths).

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-12 11:13:19 +01:00
Hugo Locurcio
4475a93736
Document debanding only affecting 3D rendering by default 2022-12-12 11:01:26 +01:00