A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to `List`
...
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Bastiaan Olij
9042ddf19f
Improvements to VRS/Foveated rendering
2024-05-03 17:20:30 +10:00
bruvzg
e5205e589f
[StatusIndicator] Add method to get indicator icon screen rect.
2024-05-02 14:39:33 +03:00
Rémi Verschelde
b2af040423
Merge pull request #91425 from Sauermann/fix-force-drag-focus-crash
...
Make `mouse_focus` and `mouse_focus_mask` consistent for force_drag
2024-05-02 12:46:45 +02:00
Rémi Verschelde
0b6c29f2d2
Merge pull request #89114 from AThousandShips/vec_elem_scalar
...
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
2024-05-02 12:46:22 +02:00
Yaohua Xiong
1f2aa17d14
Extend `CanvasItem::draw_circle()` with filled, width, and antialiased options
...
Make it possible to draw unfilled circle, like draw_rect(). Antialising is only implemented for unfilled version.
2024-05-02 10:42:24 +02:00
A Thousand Ships
308dbb8c63
[Core] Add scalar versions of `Vector*` `min/max/clamp/snap(ped)`
...
Convenience for a number of cases operating on single values
2024-05-02 10:31:13 +02:00
Markus Sauermann
30a19a5c2f
Make `mouse_focus` and `mouse_focus_mask` consistent for force_drag
...
In `Viewport::_gui_force_drag` currently `Viewport::gui.mouse_focus`
gets cleared, but `Viewport::gui.mouse_focus_mask` doesn't get cleared.
This is an inconsistency which can cause a crash.
With the change of this PR, `mouse_focus_mask` also gets cleared.
This is in alignment with how regular drag and drop clears both variables.
2024-05-02 00:10:29 +02:00
Markus Sauermann
792b38813f
Remove unused variable Viewport::gui.last_mouse_focus
...
The last use was removed in January 2023
2024-05-01 11:20:40 +02:00
Rémi Verschelde
70247adf25
Merge pull request #89734 from BastiaanOlij/openxr_reorder_wait_frame
...
OpenXR: Change timing of xrWaitFrame and fix XR multithreading issues
2024-05-01 09:54:51 +02:00
Rémi Verschelde
85062e37ef
Merge pull request #89588 from bruvzg/status_ind_menu_direct
...
[StatusIndicator] Switch API to use Texture2D instead of Image, improve handling on macOS, add method to set native popup menu directly.
2024-05-01 09:54:44 +02:00
Bastiaan Olij
cbab7dc049
OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR
2024-05-01 14:24:41 +10:00
Rémi Verschelde
ca38212604
Merge pull request #89643 from mnemoli/pickone-fix-89641
...
Fix mouse events when `physics_object_picking_first_only` enabled
2024-04-30 17:03:10 +02:00
kit
154f727c7a
Overhaul TextEdit selection.
...
The caret is now a part of the selection.
2024-04-26 14:24:10 -04:00
Rémi Verschelde
bd598d5657
Merge pull request #85678 from KoBeWi/editor_walktime
...
Add separate feature tags for editor runtime
2024-04-26 15:13:16 +02:00
kobewi
3ebb5b84a0
Add separate feature tags for editor runtime
2024-04-26 14:44:38 +02:00
kobewi
0b877a9962
Expose is_part_of_edited_scene()
2024-04-26 11:49:38 +02:00
Rémi Verschelde
3a88373a4c
Merge pull request #86553 from Koyper/fix_popup_panel_content_scaling
...
Fix non-embedded tooltips, popups and dialogs resizing to match Viewport content scale factors != 1.0
2024-04-18 12:24:11 +02:00
Koyper
0881c81c13
Fix non-embedded Windows resizing to match Viewport content scale factor
2024-04-17 09:30:16 -05:00
Haoyu Qiu
8d1cb7e74c
Add project setting for root node auto translate mode
2024-04-16 11:02:04 +08:00
Rémi Verschelde
c951421c99
Merge pull request #90268 from RandomShaper/wtp_servers
...
Use WorkerThreadPool for Server threads (enhanced)
2024-04-15 10:12:00 +02:00
aaronp64
4ed51933f9
Fix Window.hide() crash when force_native changed
...
Moved force_native = p_force_native assignment to after is_visible() check, to prevent value from changing after window is shown.
Fixes #90609
2024-04-13 14:03:29 -04:00
Bernat Arlandis
0a68876348
Remove some unused SceneTree properties
2024-04-13 00:56:01 +02:00
Pedro J. Estébanez
c28f5901c7
Polish interaction between windowing, input and rendering
...
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
ajreckof
248e5bfba2
Revert what needs to be reverted
2024-04-10 09:49:30 +08:00
Fabio Alessandrelli
e64aa4d25f
[MP] Fix dead code doing unnecessary allocation
...
Probably a leftover from some old refactor.
2024-04-06 19:48:04 +02:00
Ricardo Buring
e6b9161246
Fix per-node physics interpolation setting
...
The per-node default should be ON.
2024-04-05 10:30:19 +02:00
Rémi Verschelde
0c71ba7801
Merge pull request #89880 from dsnopek/openxr-composition-layers-node3d-drs
...
Add support for OpenXR composition layers
2024-04-04 17:09:07 +02:00
David Snopek
0f2b804059
Add support for OpenXR composition layers
...
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 -05:00
Rémi Verschelde
4abe9183e3
Merge pull request #89926 from Sauermann/fix-button-mask-special-case
...
Fix a special case for button masks
2024-04-04 14:35:24 +02:00
Rémi Verschelde
32dcaa0659
Merge pull request #89920 from Sauermann/fix-event-order
...
Prohibit execution of delayed input events by different means
2024-04-04 14:35:20 +02:00
Rémi Verschelde
2ac88339e4
Merge pull request #89721 from KoBeWi/position_who
...
Rename some arguments called "position"
2024-04-04 14:31:35 +02:00
Rémi Verschelde
1dacd6a527
Merge pull request #89179 from groud/expose_tile_map_layer
...
Expose TileMapLayer
2024-04-04 14:31:16 +02:00
Rémi Verschelde
f47f4a02c8
Merge pull request #89992 from ajreckof/fix-my-mistake-with-replace-in-update-scene
...
Fix node duplication in update after external changes.
2024-04-04 02:53:57 +02:00
ajreckof
ae472865d0
fix node duplication in update after external changes.
2024-04-03 12:19:38 +02:00
Gilles Roudière
3cd4b2859c
Expose TileMapLayer
2024-04-03 11:02:34 +02:00
Markus Sauermann
48ea019322
Fix a special case for button masks
...
In certain situations it is possible that in a `Viewport` the same
mouse button is pressed twice in series without releasing it in
between.
In this case, focus stealing should happen to ensure, that the
mouse button is not sent unintentionally to the previously focused
Control node.
2024-03-28 20:22:49 +01:00
Rémi Verschelde
af08342fd8
Merge pull request #89957 from warriormaster12/regress-dup
...
Fix regression when duplicating a node with a resource attached
2024-03-28 10:47:39 +01:00
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