Commit graph

4216 commits

Author SHA1 Message Date
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
Rémi Verschelde
f747967444
i18n: Sync classref translations with Weblate (3.5 branch)
(cherry picked from commit c9ae52f32e)
2023-01-20 12:31:09 +01: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
161134e969
Merge pull request #71672 from RandomShaper/compat_hooks_3.x
[3.x] Let make_rst.py be forward compatible with 4.0's
2023-01-20 12:12:58 +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
Pedro J. Estébanez
373e545f55 Let make_rst.py be forward compatible with 4.0's 2023-01-19 13:34:21 +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
1426cd3b3a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +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
0b7eb2f744
i18n: Sync classref translations with Weblate (3.5 branch)
(cherry picked from commit f5f0543aec)
2022-12-13 14:37:39 +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
Steve Cotton
8770197731 doc: link GPUParticles2D to the 2D Particles demo
Add a comment in the link to the Dodge The Creeps demo too. That demo only uses
particles for one thing (to leave a trail when the player moves), they're not
interacting with anything else in the demo; it took me a bit of searching to
find where they were used.

(cherry picked from commit 6db9752f23)
2022-12-12 14:06:49 +08:00
Haoyu Qiu
dd1c96b547 Add note about GROUP_CALL_UNIQUE not considering arguments
(cherry picked from commit 3f2d6f5f6c)
2022-12-12 13:57:28 +08:00
Hugo Locurcio
5115db63aa
Fix BackBufferCopy rect property appearing when not relevant in inspector
The `rect` property is only effective if `copy_mode` is Rect.
2022-12-08 20:04:56 +01:00
Hugo Locurcio
9a0a9bbaec Document Array.sort() and sort_custom() using unstable sorting
(cherry picked from commit 85b617a6a3)
2022-12-04 20:12:27 +08:00
Zak Grumbles
aa8c63f8af Add note regarding RefCounted to EditorScript docs
(cherry picked from commit e5dc2ed982)
2022-12-04 20:06:18 +08:00
kobewi
2f13adbdb6 Remove error condition from get_global_transform()
(cherry picked from commit 2ff676a696)
2022-12-01 11:47:52 +08:00
Haoyu Qiu
21856280fa Describe the left mouse button constant as the primary button
(cherry picked from commit f6e9565bdc)
2022-12-01 11:38:54 +08:00
streq
a001932790 clarify [member polygons] functionality in the Polygon2D class documentation
(cherry picked from commit de66acc624)
2022-12-01 10:41:59 +08:00
Lyuma
099e90e00d Make Node editable_instance methods available to GDScript
(cherry picked from commit 7eb6ae2798)
2022-12-01 10:15:06 +08:00
Rémi Verschelde
7f0b3bc2a0 Add editor setting for AcceptDialog OK/Cancel buttons positioning
The position (left/right) of the Cancel and OK buttons in AcceptDialog
are DisplayServer specific, as Windows uses OK/Cancel and macOS uses Cancel/OK.

Linux/X11 currently uses the macOS convention which is also the GTK+/GNOME one,
though it's not consistent with Qt/KDE applications which follow the Windows
convention.

Since that can't satisfy everyone, it's best if it's configurable also for the
editor (it's already configurable for the project).

Fixes #59379.

(cherry picked from commit 9bb05de89f)
2022-12-01 09:50:51 +08:00
Ev1lbl0w
6d030f93b7
Document PopupMenu id behavior
(cherry picked from commit b8aa5ebfeb)
2022-11-30 15:44:05 +01:00
voidshine
7284230ebe
Fix MIDI note-on events being converted to note-off events
Update documentation with note about MIDI velocity interpretation

(cherry picked from commit f0f72b3132)
2022-11-30 15:36:03 +01:00
Fireflash
239b2e4bbc
Update AudioStreamGeneratorPlayback.xml
Fixed incorrect method description for `get_frames_available`.
According to [The AudioStreamGenerator source](https://github.com/godotengine/godot/blob/master/servers/audio/effects/audio_stream_generator.cpp#L132), the `get_frames_available` method should return the space remaining in the sample buffer.

(cherry picked from commit 7823ca1367)
2022-11-30 15:05:26 +01:00
lawnjelly
edc85d22fc 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.
2022-11-25 09:53:50 +00:00
Nonunknown
eb5b297fef
add ability to pick random value from array
(cherry picked from commit 9f4dbf415d)

Co-authored-by: BleedingXiko <66162192+BleedingXiko@users.noreply.github.com>
2022-11-14 19:11:41 +01:00
Rémi Verschelde
d80396db03
Merge pull request #68556 from 98teg/flow-container-alignment
Add alignment options to flow container
2022-11-14 14:35:46 +01:00
Rémi Verschelde
322bfec275
Merge pull request #68384 from cheece/expose_get_transform_for_eye
expose ARVRInterface::get_transform_for_eye to gdscript
2022-11-14 14:35:39 +01:00
Teggy
5d0c29460a Add alignment options to flow container 2022-11-12 12:11:16 +01:00
avemort
872e36b8f9 expose ARVRInterface::get_transform_for_eye to gdscript 2022-11-10 15:25:07 -03:00
Hugo Locurcio
d17d6d6cc4
Document (Omni/Spot)Light ignoring Spatial's scale property 2022-11-09 18:47:09 +01:00
Rémi Verschelde
92aedd5063
Merge pull request #68190 from ztc0611/3.x-ios-promotion
[3.x] Add ProMotion/High Refresh Rate Support to iOS Exports
2022-11-03 11:34:22 +01:00
Zach Coleman
e538771d4f [3.x] Add ProMotion Support to iOS Exports 2022-11-02 22:14:34 -04:00
Zach Coleman
5e7b0e3a61 [3.x] Add iOS UI Options 2022-11-02 22:13:18 -04:00
Rémi Verschelde
8f7508ca4d
Merge pull request #68167 from kleonc/shape-cast-get-collider-rid-3x
[3.x] Add `ShapeCast2D/3D::get_collider_rid` method
2022-11-02 23:01:45 +01:00
kleonc
3e373c4eec Add ShapeCast2D/3D::get_collider_rid method 2022-11-02 15:20:13 +01:00
kleonc
5f01413774 Docs Clarify Array.fill behavior when reference type is passed in 2022-10-31 17:12:44 +01:00