Commit Graph

4211 Commits

Author SHA1 Message Date
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
Matthew eb0b5d38d1
Merge pull request #67649 from Calinou/doc-cylindershape3d-bugs-3.x
Document known issues with CylinderShape (3.x)
2022-10-31 11:47:48 -04:00
Haoyu Qiu 78981d2e0a Make NavigationAgent `target_location` a property 2022-10-31 20:46:38 +08:00
Rémi Verschelde 64635af7ff
Merge pull request #67360 from jordo/PR-expose-property-hints
expose additional global enums in 3.x which are available in master
2022-10-31 12:25:04 +01:00
Rémi Verschelde 20ce0284cf
Merge pull request #67313 from Mickeon/3.x-rename-params
[3.x] Rename `set_indexed` & `get_child`'s params to be clearer
2022-10-31 12:24:58 +01:00
Fredia Huya-Kouadio be4b07c3e4 Add `double_tap` attribute to `InputEventScreenTouch`
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-20 11:56:11 -07:00