Commit Graph

2137 Commits

Author SHA1 Message Date
Markus Sauermann 945babc619 Prohibit execution of delayed input events by different means
In some cases it can happen, that the order of input events and
window events is not followed, when input buffering or input accumulation
is active.

The display server order `InputEvent` => window-event gets changed to
window-event => `InputEvent` which becomes problematic in certain
situations.

This PR makes sure, that the order is adhered to by flushing input events
before a window event is sent.
Previously this problem was mitigated by discarding these delayed events.
But this solution was problematic in the setting of android input events.
2024-03-27 20:58:15 +01:00
warriormaster12 9533543aa5 Fix duplicating resources regression 2024-03-27 11:51:29 +02:00
kobewi 25f9f923a1 Rename some arguments called "position" 2024-03-27 01:28:24 +01:00
Rémi Verschelde d66539e485 Merge pull request #89673 from bruvzg/f_na_ed
Do not apply `force_native` to the edited scene windows.
2024-03-25 13:16:03 +01:00
Rémi Verschelde 17c66c0bea
Merge pull request #89805 from AThousandShips/viewport_report
Add missing `RenderInfoType` enum to `Viewport`
2024-03-25 11:18:43 +01:00
Rémi Verschelde 9d8697ab01
Merge pull request #89686 from kleonc/unique-node-names-check-owned-then-in-owner
Always look for unique node names in owner if not found in owned nodes
2024-03-24 01:21:28 +01:00
Rémi Verschelde 1d4907243e
Merge pull request #89628 from twobitadder/whoops_no_internals_pls
Fix crash on `reparent()` with Node containing internal children
2024-03-24 01:19:34 +01:00
Rémi Verschelde cd4e4c0fcc
Merge pull request #89111 from AThousandShips/vec_use
Use `Vector*` component-wise `min/max/clamp` functions where applicable
2024-03-24 01:14:51 +01:00
Rémi Verschelde e92806c7e7
Merge pull request #88424 from rburing/fti_2d
Physics interpolation (2D)
2024-03-24 01:13:53 +01:00
Rémi Verschelde 8c470749f1
Merge pull request #87387 from warriormaster12/dup_prop_refactor
Fix property of type Node duplication when script is attached to a child node
2024-03-24 01:12:57 +01:00
A Thousand Ships 8a88e5ea07
Add missing `RenderInfoType` enum to `Viewport` 2024-03-23 14:03:08 +01:00
Ricardo Buring 2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
A Thousand Ships 79ba22a73f
Use `Vector*` component-wise `min/max/clamp` functions where applicable 2024-03-20 13:47:42 +01:00
bruvzg 0587a1d217
[StatusIndicator] Switch API to use Texture2D instead of Image, improve handling on macOS, add method to set native popup menu directly. 2024-03-20 11:56:07 +02:00
kleonc 95ced4bbdc Always look for unique node names in owner if not found in owned nodes 2024-03-19 22:13:10 +01:00
bruvzg 92d69da7a6
Do not apply "force_native" to the edited scene windows. 2024-03-19 12:39:50 +02:00
mnemoli ca23775374 Fix mouse_enter/mouse_exit events when physics_object_picking_first_only is on 2024-03-18 11:19:22 +00:00
twobit b9bade8db1 fixes crash on nodes with internal children 2024-03-17 22:44:05 -04:00
warriormaster12 9851c1bdd8 Fix property duplication when duplicating a parent node 2024-03-17 09:57:38 +02:00
Rémi Verschelde 453485aede
Merge pull request #89270 from Repiteo/enforce-typename-in-templates
Enforce template syntax `typename` over `class`
2024-03-14 22:34:37 +01:00
Aaron Franke 6aac3e4a16 Disable all 3D nodes, physics, and resources when compiling without 3D 2024-03-11 01:00:55 -07:00
Rémi Verschelde ba062e1f46
Merge pull request #89298 from Mickeon/CanvasItem-error-clean-as-hell
Make CanvasItem's "drawing outside of NOTIFICATION_DRAW" error a macro
2024-03-10 21:12:57 +01:00
Aaron Franke c1e9842afb Organize 2D audio, camera, and physics in Viewport 2024-03-10 13:10:13 -07:00
Micky e08fb19bd1 Make CanvasItem's "drawing outside of NOTIFICATION_DRAW" error a macro 2024-03-09 22:47:54 +01:00
Thaddeus Crews 9903e6779b
Enforce template syntax `typename` over `class` 2024-03-07 22:39:09 -06:00
bruvzg cfdb968848
[Window] Allow to override viewport and project settings and force use of native window. 2024-03-04 23:06:27 +02:00
Micky 7b3e1a5bde Optimize SceneTree's `change_scene_to_file` autocompletion 2024-03-01 15:12:52 +01:00
Rémi Verschelde c1377920cd
Merge pull request #86743 from Mickeon/autocompletion-optimise-object
Optimise comparisons for Object's `get_argument_options`
2024-03-01 14:56:06 +01:00
Micky cd2032a90b Optimise Object's `get_argument_options` 2024-02-29 18:00:54 +01:00
Rémi Verschelde 99ba2519ea
Merge pull request #88992 from Sauermann/fix-window-mouse-notification
Fix mouse entered notifications
2024-02-29 13:55:12 +01:00
Rémi Verschelde 9cf48f5365
Merge pull request #88963 from adamscott/hide-to-advanced-snap-2d-vertices
Move `rendering/2d/snap/snap_2d_vertices_to_pixel` setting to advanced view
2024-02-29 13:54:46 +01:00
Markus Sauermann d259f979f5 Fix mouse entered notifications
Make sure, that a windows initial state is `mouse_in_viewport = false`.
This makes sure, that the mouse entered notification is sent when the
mouse hovers a window for the first time.

For embedded Windows, `NOTIFICATION_WM_MOUSE_ENTER` is currently sent
twice in a row. Remove one of the places where it is sent.
`Window::_update_mouse_over()` is the correct one, because there it is
also called for native windows.
2024-02-29 00:57:31 +01:00
Adam Scott dcf4cf79fd
Hide snap_2d_vertices_to_pixel setting to advanced 2024-02-28 10:59:41 -05:00
Michael Alexsander d70c45b5c8
Add option to add built-in strings in the POT generation 2024-02-28 11:34:26 -03:00
Rémi Verschelde 3dca3c22fc
Merge pull request #88497 from Sauermann/fix-owner-import
Fix owner when importing meshes
2024-02-27 21:23:00 +01:00
smix8 35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
Markus Sauermann c58607c32f Fix owner when importing meshes
Handle the case correctly, that a child of a replaced node has
as owner an ancestor of the replaced node.
2024-02-26 22:24:57 +01:00
Aaron Franke c399424db9
Move 3D-only resources to their own folder 2024-02-26 05:23:04 -06:00
Rémi Verschelde 10694ea027
Merge pull request #88755 from stoofin/debug-draw-enum-names
Add all `Viewport.debug_draw` enum options to dropdown
2024-02-26 10:49:12 +01:00
kobewi 75ba837612 Fix inefficient list iteration in Node 2024-02-24 23:18:44 +01:00
stoofin b6c033fc39 Add all Viewport.debug_draw enum options to dropdown 2024-02-23 23:55:01 -08:00
A Thousand Ships 3a707b1f54
Fix some additional errors with 3D disabled
* Disabled 2D navigation tests as they do not work
* Disabled tests for primitive meshes
* Unbound some `Mesh` methods that rely on 3D resources
* Unexposed `World3D` as it depends on physics (and isn't useful)
* Unexposed some `Viewport` vrs related properties that had unexposed
  methods
2024-02-23 20:58:56 +01:00
Rémi Verschelde 3ce9ae71fc
Merge pull request #84906 from /fix-some-defvals 2024-02-23 11:29:22 +01:00
Raul Santos 5ba92e5a57
Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
A Thousand Ships f06222e487
[Physics] Fix export with 3D disabled 2024-02-22 16:23:48 +01:00
Michael Alexsander 584a6aeeb7
Revert "Fix `NOTIFICATION_WM_SIZE_CHANGED` firing if the size hasn't changed"
This reverts commit 957378a69e, reversing
changes made to 0d88840e81.
2024-02-21 15:37:53 -03:00
Rémi Verschelde 73758e093e
Merge pull request #88456 from sabslikesobs/master
Expose pixel snapping settings add pixel-art notes
2024-02-20 19:34:48 +01:00
TML 6a17f2a82d
Expose `CanvasLayer::get_canvas_layer_node()` 2024-02-20 18:14:47 +01:00
Travis Lange ae97cf2ff0
Fix AnimationMixer breaking animations with redundant check
Also change `Node::get_node_and_resource` to prevent it from printing an
error from `Node::get_node`, and just returns nullptr. This is what the
redundant check was trying to prevent.

Fixes #88428.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-19 16:50:19 +01:00
Rémi Verschelde ab4c5a594a
Merge pull request #88521 from YeldhamDev/atr_regression
Fix regression in auto translation overhaul
2024-02-19 00:09:22 +01:00
Rémi Verschelde 0c4d8d7a6c
Merge pull request #88473 from Sauermann/fix-mouse-event-global-position
Fix global position for `InputEventMouse` in `viewport::push_input`
2024-02-19 00:08:37 +01:00
Rémi Verschelde 0f0515a75f
Merge pull request #87743 from WhalesState/camera2d
Fix `Camera2D` is enabled when dragging scene files to the `CanvasItemEditor`
2024-02-19 00:07:57 +01:00
Rémi Verschelde dfcecb77bd
Merge pull request #79617 from sepTN/add-screensize-check-popup
Add size check to prevent popup bigger than the screen itself
2024-02-19 00:07:01 +01:00
Michael Alexsander b56774b5bf
Fix regression in auto translation overhaul 2024-02-18 19:33:08 -03:00
Mounir Tohami 451b198c40 Fix dragging scene files to the `CanvasItemEditor` 2024-02-18 21:55:14 +02:00
Septian 34210e812a Add screen size check on `popup` 2024-02-19 00:25:02 +07:00
Markus Sauermann 8de39911c8 Fix global position for `InputEventMouse` in `viewport::push_input`
Global position doesn't get adjusted within `InputEventMouse::xformed_by()`.
2024-02-18 03:26:09 +01:00
Sabs, like Sobs 3475156ae3 Expose pixel snapping settings add pixel-art notes
This small in-engine documentation change aims to make it easier to
discover ways to handle pixel art aesthetics.

- I have moved 2D pixel snapping settings out of "Advanced." This now matches other pixel-art-friendly settings for
GUI Snapping and Default Texture filtering.
- I've added notes to the project settings and Sprite/AnimatedSprite sources to hint users towards better understanding of why pixelated sprites may not work correctly and what to do about it. This should help users make informed decisions for their needs.

Context: Proper handling of pixel art in Godot is routinely frustrating for new users: I, like others, assumed that Godot would act on pixels, not subpixels, when I was working a pixel art game. I was confused when my interpolations would appear blurry, and when pixel textures would be distorted for no apparent reason (this was because of centering).
I had naively thought that setting Linear interpolation would be the single "it's a pixel art game" toggle, but that only hid the underlying issues until later. I had no idea there was a snap-to-pixel option because it was hidden in the Advanced options, since my default assumption was that a pixel art game would want no subpixels at all.

Some references for the frustration:

- https://github.com/godotengine/godot/issues/82696
- https://www.reddit.com/r/godot/comments/fah25e/best_way_to_achieve_pixel_perfect_rendering/
- https://shaggydev.com/2021/09/21/project-setup-for-pixel-art/
2024-02-17 23:40:53 +00:00
Rémi Verschelde 92fcbe2f5c
Revert "Allow configuration warnings to refer to a property"
This reverts commit bf37a9bac6.
2024-02-17 19:04:18 +01:00
Rémi Verschelde 21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Michael Alexsander 7b42c24550
Make auto translation inheritable 2024-02-15 16:51:19 -03:00
Rémi Verschelde 921b656f33
Merge pull request #86781 from KoBeWi/scenes_that_are_no_longer_with_us
Allow opening scenes with missing scene dependency
2024-02-13 23:43:14 +01:00
kobewi be4cbee873 Allow opening scenes with missing scene dependency 2024-02-13 19:46:35 +01:00
bruvzg 8da36031e4
Implement support for application status indicators (tray icons). 2024-02-13 15:59:35 +02:00
Silc Lizard (Tokage) Renew 67e38709fd Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport 2024-02-13 18:53:21 +09:00
Rémi Verschelde 5306b917e6
Merge pull request #87164 from 0x0ACB/camera_fix
Rename camera `near` and `far` private members to avoid conflict with `Windows.h` defines
2024-02-12 23:29:22 +01:00
Rémi Verschelde 2b36dcf70a
Merge pull request #75688 from mnemoli/pickone
Add setting for picking only top-most overlapping collision object
2024-02-12 13:33:08 +01:00
Rémi Verschelde b457a30311
Merge pull request #87628 from YuriSizov/assets-bigger-better-errors
Improve error reporting in the asset library and in related types
2024-02-09 18:09:16 +01:00
Rémi Verschelde 58a8eb8617
Merge pull request #84824 from Rindbee/fix-double-internal-node
Fix duplicating sub-scene may get two copies of internal node
2024-02-09 12:14:29 +01:00
RedMser d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
RedMser bf37a9bac6 Allow configuration warnings to refer to a property
This is used by the inspector so it can show a warning icon on
a specific property.
2024-02-08 23:05:20 +01:00
bruvzg 0d88aadd53
Automatically set viewport background to transparent when window flag is set. 2024-02-02 10:40:26 +02:00
kobewi 0de8a736da Allow Node.create_tween() outside SceneTree 2024-01-29 20:18:43 +01:00
Rémi Verschelde fa48a51183
Merge pull request #87688 from AThousandShips/what_is_this
Remove unnecessary `this->` expressions
2024-01-29 13:18:09 +01:00
Rémi Verschelde 9a789adff2
Merge pull request #87632 from Sauermann/fix-remove-unused-group-variable
Remove unused internal Variable `Viewport::gui_input_group`
2024-01-29 13:17:48 +01:00
Rémi Verschelde ef9cb3dfa5
Merge pull request #87535 from Mickeon/scene-tree-configuration-warnings-cleanup
Improve appearance of Node configuration warnings
2024-01-29 13:17:17 +01:00
A Thousand Ships 15369fdb1d
Remove unnecessary `this->` expressions 2024-01-29 09:59:18 +01:00
Micky 3e4e0f08c4 Improve appearance of Node configuration warnings 2024-01-27 13:03:07 +01:00
Markus Sauermann 36c2c4bf0d Remove unused Variable `Viewport::gui_input_group`
The gui input group is not needed during the gui input step.
2024-01-26 23:37:30 +01:00
Yuri Sizov 815038962f Improve error reporting in the asset library and in related types
This also makes errors related to asset image loading
verbose-only, because, frankly, users can't do much about
those errors. Spamming them with error messages
about some assets on the frontend being broken
is pointless.
2024-01-26 20:33:22 +01:00
Yuri Sizov 91ac53ec1b Merge pull request #87385 from Sauermann/fix-subviewport-physics-picking
Fix SubViewport physics picking
2024-01-25 16:27:02 +01:00
Yuri Sizov adcfe3d1a0 Merge pull request #87252 from ajreckof/Fix-renaming-a-node-to-the-name-of-its-siblings-breaking-NodePath
Fix renaming a node to the name of its siblings breaking NodePath
2024-01-24 14:08:20 +01:00
Yuri Sizov e0f8cf4acb Merge pull request #77730 from Jummit/fix-subviewport-1
Fix `push_input` events not going through after first pressed mouse event
2024-01-22 20:38:22 +01:00
Markus Sauermann 7b00c136a1 Fix SubViewport physics picking
Apply the logic of `handle_input_locally` for physics picking.
2024-01-19 21:42:41 +01:00
Gilles Roudière 9dfc012369 Remove unecessary _set_global_invalid added by mistake 2024-01-18 10:48:23 +01:00
Rémi Verschelde fa81059b9d
Merge pull request #85939 from adamscott/single-threaded-godot-4
Add `THREADS_ENABLED` macro in order to compile Godot to run on the main thread
2024-01-18 09:33:52 +01:00
Adam Scott bd70b8e1f6
Add THREADS_ENABLED macro in order to compile Godot to run on the main thread 2024-01-17 13:58:29 -05:00
Yuri Sizov 788aab3a96 Merge pull request #87115 from groud/tilemap_layers_as_nodes
Make TileMapLayers extend Node2D and work as children of TileMap
2024-01-17 18:53:12 +01:00
Yuri Sizov 0724506cdd Merge pull request #86841 from groud/fix_global_transform_in_enter_tree
Fixes global transform being wrong on entering tree
2024-01-17 18:52:59 +01:00
Yuri Sizov 28cf7fe2f6 Merge pull request #85384 from HolonProduction/unique-name-completion
Suggest scene unique nodes in `get_node` autocompletion
2024-01-17 18:52:31 +01:00
Gilles Roudière 48bed5050b Make TileMapLayers extend Node2D and work as children of TileMap 2024-01-17 16:05:50 +01:00
Gilles Roudière 0a726d692a Fixes global transform being wrong on entering tree 2024-01-16 16:02:37 +01:00
ajreckof 2f697926b0 Fix renaming a node to the name of its siblings breaking NodePath
Also fix cases where node name was not visually updated because name was not changed

Co-Authored-By: Nông Văn Tình <53887662+nongvantinh@users.noreply.github.com>
2024-01-16 15:18:30 +01:00
Rémi Verschelde 03767fbf3b
Merge pull request #86446 from reduz/transient-to-focused
Implement a `transient_to_focused` Window mode
2024-01-15 13:25:00 +01:00
ACB 96b8016a35 Rename camera near and far private members to avoid conflict with Windows.h defines 2024-01-15 12:31:15 +01:00
Juan Linietsky 15144c24bd Implement a transient_to_focused mode
This intends to be the correct way to handle non-child windows becoming covered by the current window when becoming focused.
Enabling this property on select windows, they will become transient to the currently focused one when becoming visible.

This deprecates the "unparent_when_invisible" function introduced by #76025.
2024-01-14 18:51:44 +01:00
Jakub Marcowski 06534f8ad5 Add deprecation notice to a duplicate method of class `Window` 2024-01-12 18:18:28 +01:00
Rémi Verschelde cab27498bd
Merge pull request #86957 from RandomShaper/mt_mends
A couple of enhancements to user-visible threading semantics
2024-01-11 17:40:37 +01:00
Rémi Verschelde 087a397477
Merge pull request #86301 from KoBeWi/deferred_cleanup
Update deferred calls to use Callables
2024-01-11 17:36:29 +01:00
Rémi Verschelde f3fc35eb17
Merge pull request #81506 from twobitadder/reparent_keep_owner
Fix `reparent()` losing owner
2024-01-11 17:34:19 +01:00