Commit Graph

904 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
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
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
Aaron Franke 141783d90f
[3.x] Expose `determinant` in Transform2D, rename internal method 2023-04-22 13:47:47 -05:00
lawnjelly 1730fab22a Consistent render ordering for CanvasLayers
Maintains scene tree ordering for CanvasLayers that share identical layer ID.
2023-03-12 05:00:13 +00: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
necrashter 147de75e52
Set touch input as handled only after _gui_call_input 2022-12-26 11:58:32 +03: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
Haoyu Qiu b2e5c8fe10 Fix possible Tween leak on exit
(cherry picked from commit e173710963)
2022-12-18 10:32:04 +08:00
FireForge 0d602ce881 Add Vector2/3 linking to more properties
- Camera2D.zoom
- CanvasLayer.scale
- ParallaxBackground.scroll_base_scale
- ParallaxLayer.motion_scale
- Polygon2D.texture_scale
- SpatialMaterial.uv1_scale
- SpatialMaterial.uv2_scale

(cherry picked from commit 92817aa72f)
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
Haoyu Qiu a6a89356b7 Fix CanvasLayer visibility toggle can only run once per frame 2022-12-04 14:49:19 +08:00
Rémi Verschelde af635f05bf
Merge pull request #68630 from m4gr3d/fix_input_event_screen_drag_routing_3x
[3.x] Fix routing of `InputEventScreenDrag` events to `Control` nodes
2022-12-01 18:13:52 +01:00
Markus Sauermann 0ae562c9dc Update root order on layer change
When the layer of a CanvasLayer changes, the order of roots needs to be recalculated.

(cherry picked from commit 8d60e8b5d4)
2022-12-01 10:23:04 +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
Fredia Huya-Kouadio b28bcb4cfc Fix the logic used to route `InputEventScreenDrag` events to `Control` nodes. 2022-11-30 14:16:26 -08:00
Haoyu Qiu 3b869e8027
Fix crash of queue_free() when main loop is not SceneTree
(cherry picked from commit 3b08d0e852)
2022-11-30 15:44:49 +01:00
Nong Van Tinh ffbaa7fff0 Enhance null checking for input event 2022-11-27 15:01:34 +07: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
Rémi Verschelde 80b50e59d5
Merge pull request #67612 from timothyqiu/who-ami-i-3.x
[3.x] Fix get_path() error when calling get_node()
2022-10-31 12:25:12 +01:00
Haoyu Qiu 5d6dc206bc Fix get_path() error when calling get_node() 2022-10-19 13:05:41 +08:00
Micky 6102f3cfc2 [3.x] Rename `set_indexed` & `get_child`'s params to be clearer
3.x backport of #67300 and #64463.
2022-10-12 20:55:41 +02:00
lawnjelly 17f42e8e66 Improve signal already connected error message
The signal already connected message is improved to provide the names of the objects involved.
2022-09-21 07:52:30 +01:00
kobewi 0511f48c49 Fix Viewport size change not updating textures
(cherry picked from commit 3a4a4aeade)
2022-09-05 15:35:45 +02:00
kobewi 737bfa57d3 Allow to change the Stop shortcut used at runtime
(cherry picked from commit 409613ba7b)
2022-09-05 15:35:45 +02:00
Rémi Verschelde c551a79084
Merge pull request #65063 from Atlinx/fix/65033_fix-hdr-warning
Disable HDR warning for Viewport on GLES2 projects
2022-08-30 08:38:06 +02:00
Atlinx e3b3462187 Remove HDR warning if on low end 2022-08-29 19:14:30 -04:00
Michael Alexsander 1e80b17a8d Fix some corner cases in the `Menu/OptionButton` item auto-highlight 2022-08-28 01:45:08 -03:00
Yuri Sizov 72d1156286 Remove Inspector tooltip hack that never actually worked 2022-08-26 17:12:46 +03:00
Rémi Verschelde 91a6e08c12
Merge pull request #48157 from madmiraal/fix-46438-3.x
[3.x] Fix mouse_over not dropped when mouse leaves window
2022-08-05 22:37:17 +02:00
Rémi Verschelde 25c87e99cf
Merge pull request #61578 from YuriSizov/core-fix-events-for-moved-nodes-3.x 2022-08-05 19:33:25 +02:00
Rémi Verschelde 818f1eed31 Code quality: Fix header guards consistency
Adds `header_guards.sh` bash script, used in CI to validate future
changes. Can be run locally to fix invalid header guards.
2022-07-25 14:53:37 +02:00
Marcel Admiraal fb4e1d2d02 Set initial SceneTree processes times to 0.0 2022-07-17 09:02:20 +01:00
Marcel Admiraal 0992621200 Fix mouse_over not dropped when mouse leaves window 2022-07-03 09:49:56 +01:00
reduz 995281ca90 Fix editor-only visibility for lights
* Update visibility again for editor-only lights if owner changes.

Fixes #26399, supersedes #52327

(cherry picked from commit d69e3791bf)
2022-07-03 03:21:51 +02:00
Rémi Verschelde df70aa1772
Merge pull request #57566 from Calinou/viewport-shadow-atlas-clamp-sizes 2022-07-03 03:08:03 +02:00
Rémi Verschelde 3d19f21576
Merge pull request #49967 from Calinou/viewport-2d-hdr-print-warning 2022-07-03 02:41:26 +02:00
hilfazer fe21fb175c print_stray_nodes() also prints node's script 2022-07-03 01:00:58 +02:00
Rémi Verschelde 0cb897421a Node: Rename `child_exited_tree` to `child_exiting_tree`
The name was confusing as this signal is emitted around the same time as
`tree_exiting` and `NOTIFICATION_EXIT_TREE`, i.e. while the child node is
still in tree.

Fixes #59210.

(cherry picked from commit 3e6de687b8)
2022-06-20 15:00:09 +02:00
lawnjelly ba74643594 Force unsigned behaviour for bitfield enums
Some compilers (notably MSVC) were using signed values for bitfield enums. This was causing problems where 2 bits were used to store 4 or less enum values, where they were being treated as negative numbers.

This PR explicitly requests these enums to be treated as unsigned values.
2022-06-06 16:58:21 +01:00
Haoyu Qiu d043f91b79 Fix `Viewport.own_world` documentation
Also fixed the naming of the setter's parameter and made an `if` block
straightforward.
2022-06-06 21:34:36 +08:00
Rémi Verschelde a6b27b526f
Merge pull request #60822 from lawnjelly/fti_add_child_reset 2022-06-03 14:56:19 +02:00
Yuri Sizov 6d53c60bf7 Mark node groups as dirty for every children if parent is moved 2022-05-31 21:23:16 +03:00
Rémi Verschelde 67208ae80b
Merge pull request #60402 from Calinou/httprequest-timeout-float 2022-05-20 15:27:29 +02:00
Haoyu Qiu 58650af062 Make auto_accept_quit and quit_on_go_back properties 2022-05-14 18:24:43 +08:00