Commit Graph

1604 Commits

Author SHA1 Message Date
Rémi Verschelde ff612b6916
Merge pull request #64574 from Begah/fix_transient_window_wrap_mouse 2022-08-26 13:54:23 +02:00
Rémi Verschelde 7013c68619
Merge pull request #64422 from bruvzg/make_fonts_unbearably_ugly_2.0 2022-08-26 11:59:07 +02:00
Rémi Verschelde 7bb92bc040
Merge pull request #62845 from AaronRecord/dont_update_theme_outside_of_tree
Refactor and remove excessive calls of `NOTIFICATION_THEME_CHANGED`
2022-08-26 10:37:44 +02:00
Rémi Verschelde d93d646723
Merge pull request #64570 from KoBeWi/node🧳ing
Unify node casing adjustment
2022-08-26 09:49:58 +02:00
Aaron Record 74eb2a70bd Refactor and remove excessive calls of `NOTIFICATION_THEME_CHANGED` 2022-08-25 14:50:49 -06:00
Rémi Verschelde 060d0ce882
Merge pull request #53299 from Calinou/viewport-tweak-configuration-warning 2022-08-25 21:44:31 +02:00
Rémi Verschelde 5eed1b299b
Merge pull request #64355 from Mickeon/rename-follow-viewport 2022-08-25 18:34:19 +02:00
MathieuRoux 5ac5c8bc06 Fix warp_mouse for transient windows, smoother mouse positioning when releasing mouse for spinbox 2022-08-25 11:30:49 +02:00
Rémi Verschelde bb6d771397
Merge pull request #64843 from Faless/mp/4.x_encode_fix
[MP] Fix variant serialization after variant size change.
2022-08-25 00:02:07 +02:00
Fabio Alessandrelli 75de626781 [MP] Fix variant serialization after variant size change.
The bit mask used for the type when compressing variants in the
Multiplayer API became too small to represent all variant types.

This commit expand the mask, which means we no longer have an extra bit
in the "meta" byte we use to store encoding information.

The extra bit was only used in case of booleans to store the value and
since booleans do not require extra encoding information we use those 2
bits to store the value instead.
2022-08-24 19:46:55 +02:00
Rémi Verschelde 629949d0a5
Merge pull request #64759 from skyace65/Anisotropic
Spell out "anisotropic" fully in filter options
2022-08-24 09:53:28 +02:00
Rémi Verschelde 91e5f48ea7
Merge pull request #64009 from KoBeWi/arrayy_lmao
Replace Array return types with TypedArray (part 2)
2022-08-24 08:18:56 +02:00
skyace65 64061678c6 Spell out "anisotropic" fully in filter options 2022-08-23 19:19:56 -04:00
kobewi 1abdffe7a0 Replace Array return types with TypedArray 2 2022-08-23 23:21:32 +02:00
Pedro J. Estébanez 910efbff03 Avoid warnings about cursor shape change not supported 2022-08-23 11:14:07 +02:00
bruvzg bcc3643989
Add font LCD sub-pixel anti-aliasing support. 2022-08-23 08:47:21 +03:00
Yuri Sizov 1a24c9e14b Make `_validate_property` a multilevel method 2022-08-22 18:35:11 +03:00
kobewi 3a4a4aeade Fix Viewport size change not updating textures 2022-08-22 16:34:47 +02:00
kobewi fdab23163f Unify node casing adjustment 2022-08-18 14:08:40 +02:00
Tomasz Chabora 2bdd7e9ea0 Add methods for node reparenting 2022-08-16 19:44:41 +02:00
VolTer 2599710793 Rename NOTIFICATION_INSTANCED to NOTIFICATION_SCENE_INSTANTIATED 2022-08-16 12:41:10 +02:00
Micky fe86c5cba5 Rename CanvasItem.`follow_viewport_enable` to end with "d"
For consistency with the rest of the exposed booleans in Godot
2022-08-13 13:00:45 +02:00
Hendrik Brucker e96b1a2c0c Implement MSAA for 2D [Vulkan only] 2022-08-13 01:09:48 +02:00
Yuri Sizov 1362bc22bd Add tests for empty/unnamed arguments to ClassDB, Variant, GDScript 2022-08-08 16:36:01 +03:00
Michael Alexsander 2b86c458bf Fix some bugs with `Window`s 2022-08-05 02:25:15 -03:00
Nathan Franke c3c5985189
move rpc and rpc_id implementations back to header
StackOverflow on why this is needed: https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file
Minor mistake in commit ca7d572908
2022-08-02 18:35:29 -05:00
Juan Linietsky d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
Rémi Verschelde 14d021287b
Merge pull request #63049 from Faless/mp/4.x_as_module 2022-07-28 20:46:31 +02:00
Rémi Verschelde 8e0f328a80
Merge pull request #59840 from Calinou/renderingserver-global-uniform-rename 2022-07-28 20:34:17 +02:00
Hugo Locurcio 4b42379c8f
Rename RenderingServer global shader uniform methods to be more explicit
The `global_shader_uniform` name is longer, but it makes it much
easier to find the methods when searching in the class reference.
2022-07-28 18:46:59 +02:00
Hugo Locurcio e24029edc3
Allow changing mipmap LOD bias when FSR 1.0 scaling is not used
Mipmap LOD bias can be useful to improve the appearance of distant
textures without increasing anisotropic filtering (or in situations
where anisotropic filtering is not effective).

`fsr_mipmap_bias` was renamed to `texture_mipmap_bias` accordingly.
The property hint now allows for greater precision as well.
2022-07-28 17:51:13 +02:00
Rémi Verschelde 199ea349f5
Merge pull request #57698 from bluenote10/feature/rename_translated_to_translated_local 2022-07-28 10:03:07 +02:00
Rindbee fc17d3563d Remove `first_draw` and reset visibility when entering tree 2022-07-28 12:35:47 +08:00
Rémi Verschelde 950750fb98
Merge pull request #63355 from YeldhamDev/directional_tooltip 2022-07-27 12:37:03 +02:00
Fabio Alessandrelli ca7d572908 [Net] Modularize multiplayer, expose MultiplayerAPI to extensions.
- RPC configurations are now dictionaries.
- Script.get_rpc_methods renamed to Script.get_rpc_config.
- Node.rpc[_id] and Callable.rpc now return an Error.
- Refactor MultiplayerAPI to allow extension.
- New MultiplayerAPI.rpc method with Array argument (for scripts).
- Move the default MultiplayerAPI implementation to a module.
2022-07-26 09:31:12 +02:00
Rémi Verschelde 90019676b0 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 11:17:40 +02:00
Michael Alexsander 46346cfaa5 Make tooltips be shown at different directions if there's not enough space 2022-07-23 14:51:06 -03:00
reduz 455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
kleonc 57ff4032d0 Fix `CanvasItem` not exiting its canvas group on canvas exit 2022-07-20 21:35:31 +02:00
FireForge 97dfbea6ad Rename Control PRESET_WIDE to PRESET_FULL_RECT 2022-07-18 20:08:11 -05:00
Rémi Verschelde 168ee3e6c4
Merge pull request #63083 from madmiraal/fix-56336 2022-07-18 09:31:35 +02:00
Marcel Admiraal 96c75f1d10 Set initial SceneTree processes times to 0.0 2022-07-17 08:51:25 +01:00
Bastiaan Olij d139131aab Adding Variable Rate Shading support to Godot
Improve GI renderer and add VRS support
Implement render device has_feature and move subgroup settings to limit_get
2022-07-17 15:42:24 +10:00
Fabian Keller 2bf9e6090c rename translate(d) to translate(d)_local in Transform 2D/3D 2022-07-16 11:47:54 +02:00
bruvzg cbe3a2dcb7
Use BitField hint for the TextServer enums. Add missing parts for BitField support to the GDextension API. 2022-07-15 08:49:50 +03:00
Hugo Locurcio 21ea1c3835
Rename soft shadow quality project settings for easier searching
`rendering/quality/shadows` is now `rendering/quality/positional_shadow`
to explicitly denote that the settings only affect positional light shadows,
not directional light shadows.

Shadow atlas settings now contain the word "atlas" for easier searching.

Soft shadow quality settings were renamed to contain the word "filter".
This makes the settings appear when searching for "filter" in the
project settings dialog, like in Godot 3.x.
2022-07-13 19:56:02 +02:00
bruvzg 344ba0ffaf
Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
Hugo Locurcio 462432f89f
Add an underscore to internal group names as per engine policy
This also adds `SNAME()` macros where relevant to improve performance.
2022-07-01 20:16:25 +02:00
Rémi Verschelde a7e589df38
Merge pull request #62084 from smix8/path_debug_options_4.x
Add Path2D/3D debug options
2022-06-29 20:36:43 +02:00
Rémi Verschelde 82a56e5c42
Merge pull request #61587 from YuriSizov/control-fix-theme-owner-toplevel
Fix theme propagation for children of top level controls and windows
2022-06-27 12:03:36 +02:00
Rémi Verschelde 11f5d2141a
Merge pull request #61577 from YuriSizov/core-fix-events-for-moved-nodes 2022-06-27 12:02:19 +02:00
reduz d69e3791bf Fix editor-only visibility for lights
* Update visibility again for editor-only lights if owner changes.

Fixes #26399, supersedes #52327
2022-06-23 08:19:18 +02:00
Rémi Verschelde 91e9e3c681
Merge pull request #62247 from Rindbee/fix-editor-hang-when-window-as-root 2022-06-20 17:43:54 +02:00
smix8 e12e239ab4 Add Path2D/3D debug options
Add Path2D/3D debug options.
2022-06-20 17:32:05 +02:00
Rindbee 5ac259fad8 Quickfix editor hangs when rooting a window with exclusive and transient flags enabled 2022-06-20 21:45:08 +08:00
Rémi Verschelde 3e6de687b8 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.
2022-06-20 11:55:19 +02:00
markdibarry 459228cdb3 Add explicit deferred flags 2022-06-19 10:04:53 -04:00
Rindbee 53bd72fa70 Fix previous min size affects _get_contents_minimum_size in AcceptDialog 2022-06-17 16:21:23 +08:00
FireForge 92817aa72f Add Vector2/3 linking to more properties
- Camera2D.zoom
- CanvasLayer.scale
- ParallaxBackground.scroll_base_scale
- ParallaxLayer.motion_scale
- Polygon2D.texture_scale
- BaseMaterial3D.uv1_scale
- BaseMaterial3D.uv2_scale
2022-06-14 09:33:44 -05:00
Rémi Verschelde 41986532c1
Merge pull request #61974 from Calinou/project-settings-mark-as-basic 2022-06-13 17:16:03 +02:00
bruvzg f7269fe878
Single-window mode popups and edited scene windows fixes.
Fix single-window mode popup not closing when OptionBox is clicked.
Fix single-window mode submenus closing when parent menu item, that was used to open it is clicked (using same safe-area logic as platform specific code).
Disallow windows that are part of an edited scene from being set as exclusive or popup to prevent it from locking up the editor.
2022-06-13 09:56:08 +03:00
Hugo Locurcio c178cfef8e
Mark some common project settings as basic 2022-06-12 19:50:14 +02:00
FireForge 4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00
kobewi 9036fcbe5e Remove TooltipPanel and TooltipLabel 2022-06-09 22:23:11 +02:00
jfons ba832d83b2 Initial TAA implementation
Initial TAA support based on the implementation in Spartan Engine.

Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
2022-06-07 13:14:44 +02:00
Haoyu Qiu 83d931ad3c Fix `Viewport.own_world_3d` documentation
Also fixed the naming of the setter's parameter and made an `if` block
straightforward.
2022-06-06 21:34:40 +08:00
Rémi Verschelde 659f4b64d6
Merge pull request #60830 from Ansraer/fix-2d-scale
[4.x] Add viewport content scale
2022-06-04 00:15:38 +02:00
Yuri Sizov ba273c6c5f Fix theme propagation for children of top level controls and windows 2022-06-01 04:20:00 +03:00
Yuri Sizov 8e5ad7be46 Mark node groups as dirty for every children if parent is moved 2022-05-31 21:28:04 +03:00
reduz 45af29da80 Add a new HashSet template
* Intended to replace RBSet in most cases.
* Optimized for iteration speed
2022-05-20 22:40:38 +02:00
Rémi Verschelde a5109d49ce
Merge pull request #61026 from timothyqiu/quit-prop
Make `auto_accept_quit` and `quit_on_go_back` properties
2022-05-20 08:13:00 +02:00
Aaron Franke 5dc3bfb80e
Use suffixes for units in nodes and resources 2022-05-19 14:34:27 -05:00
Aaron Record 900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00
Rémi Verschelde 2f3a8a3d61
Merge pull request #61095 from BimDav/get_node_and_resource
Fix a bug in get_node_and_resource when the property is set to null
2022-05-18 15:19:17 +02:00
Rémi Verschelde 5c79782c7e
Merge pull request #61088 from groud/keep_unhandled_events_on_pass 2022-05-17 23:50:55 +02:00
Gilles Roudière 6db8b7616d Keep input event as unhandled if they go through a control set to MOUSE_FILTER_PASS 2022-05-17 15:41:58 +02:00
BimDav 3e96abce07 fix a bug in get_node_and_resource 2022-05-16 19:40:59 +02:00
reduz 746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Haoyu Qiu 82fdad148f Make auto_accept_quit and quit_on_go_back properties 2022-05-14 18:18:26 +08:00
reduz 8b7c7f5a75 Add a new HashMap implementation
Adds a new, cleaned up, HashMap implementation.

* Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
* Keeps elements in a double linked list for simpler, ordered, iteration.
* Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much
  for performance vs keeping the key, but helps replace old code).
* Uses a more modern C++ iterator API, deprecates the old one.
* Supports custom allocator (in case there is a wish to use a paged one).

This class aims to unify all the associative template usage and replace it by this one:
* Map<> (whereas key order does not matter, which is 99% of cases)
* HashMap<>
* OrderedHashMap<>
* OAHashMap<>
2022-05-12 11:21:29 +02:00
Rémi Verschelde b6983eeccf
Merge pull request #51591 from Calinou/call-group-default-immediate
Make `{call,set,notify}_group()` immediate by default
2022-05-10 14:52:23 +02:00
Ansraer 045f511bd9 Add viewport content scale 2022-05-06 19:50:53 +02:00
kobewi 1dc7bcc83c Cleanup metadata usage 2022-05-06 00:27:10 +02:00
Hugo Locurcio aabbb40009
Make `{call,set,notify}_group()` immediate by default
This results in less surprising behavior out of the box.

Internal usages were modified to keep the existing behavior
identical there.
2022-05-05 16:59:37 +02:00
reduz 0a57f964a3 Implement missing Node & Resource placeholders
Implemented by request of @neikeq to advance in the GDExtension version of Mono.

* If a Resource type is missing upon load, it will be remembered together with its data (Unless manually overriden).
* If a Node type is missing upon load, it will be also be remembered together with its data (unless deleted).

This feature makes working with GDExtension much easier, as it ensures that missing types no longer cause data loss.
2022-05-03 17:08:09 +02:00
Rémi Verschelde 931838b330
Merge pull request #60627 from aaronfranke/rename-elements
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03 14:40:01 +02:00
Hugo Locurcio 180e5d3028
Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`
These typedefs don't save much typing compared to the full `Ref<Resource>`
and `Ref<RefCounted>`, yet they sometimes introduce confusion among
new contributors.
2022-05-03 01:43:50 +02:00
Rémi Verschelde c273ddc3ee Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`
Didn't commit all the changes where it wants to initialize a struct
with `{}`. Should be reviewed in a separate PR.

Option `IgnoreArrays` enabled for now to be conservative, can be
disabled to see if it proposes more useful changes.

Also fixed manually a handful of other missing initializations / moved
some from constructors.
2022-05-02 16:28:25 +02:00
Hugo Locurcio d567369c8f
Tweak the Viewport configuration warning to mention 2×2 size requirement 2022-04-29 20:25:05 +02:00
kobewi 8187a777ce Small improvements to get_first_node_in_group() 2022-04-29 16:14:48 +02:00
Aaron Franke b831fb0a54
Rename Transform2D "elements" to "columns" 2022-04-29 08:02:39 -05:00
Rémi Verschelde 1de51133c9
Merge pull request #60331 from KoBeWi/tween_static() 2022-04-27 13:20:11 +02:00
Rémi Verschelde a19d7d8f8d
Merge pull request #58383 from bruvzg/no_inv_window_placement 2022-04-27 09:33:40 +02:00
Fabio Alessandrelli aee2240d5f [Net] Allow branch-specific MultiplayerAPIs.
Removes custom_multiplayer from Node.
MultiplayerAPI overrides are now set at SceneTree level, and apply to
whole branches.
Impact on performance when using only the default multiplayer or
overriding it is minimal, the use of branches can likely be further
optimized by caching nodes and relevant MultiplayerAPI IDs.
2022-04-26 17:22:54 +02:00
Rémi Verschelde 06c33cca18
Merge pull request #60511 from akien-mga/readd-find_node 2022-04-26 09:42:19 +02:00
Rémi Verschelde 02bb8e948f
Merge pull request #60261 from fire-forge/theme-prop-renames 2022-04-25 16:20:19 +02:00
Rémi Verschelde 9c2ea7e296 Node: Re-add `find_node` as `find_child`, improve docs
The new name contrasts it better with `find_parent`, and makes it clear
that it only matches child/descendant nodes.

Also rename `find_nodes` to `find_children` accordingly.
2022-04-25 15:21:22 +02:00
reduz 8580f377a3 Implement Scene Unique Nodes
Implements https://github.com/godotengine/godot-proposals/issues/4096

* Nodes can be marked unique to the scene in the editor (or via code).
* Unique nodes can be accessed via the **%** prefix at any point in the path. From that point in the path (depending on whether the scene of the path is), the unique node will be fetched.
* Implementation is very optimal, as these nodes are cached.
2022-04-25 12:19:17 +02:00
FireForge 3073b85de9 Rename theme properties to include underscores
- check_vadjust -> check_v_adjust
- close_h_ofs -> close_h_offset
- close_v_ofs -> close_v_offset
- commentfocus -> comment_focus
- hseparation -> h_separation
- ofs -> offset
- selectedframe -> selected_frame
- state_machine_selectedframe -> state_machine_selected_frame
- table_hseparation -> table_h_separation
- table_vseparation -> table_v_separation
- vseparation -> v_separation
2022-04-23 11:16:18 -05:00
bruvzg defcd0c57e
Avoid setting sub-window or started project window positions, if it's impossible to get screen rect. 2022-04-20 11:10:33 +03:00
Yuri Rubinsky f4b0c7a1ea
Merge pull request #60175 from Geometror/visual-shader-vector4 2022-04-20 08:33:42 +03:00
kobewi 3017530e26 Make Tween.interpolate_value() static 2022-04-17 23:13:39 +02:00
Hugo Locurcio 52d6a7a7ff
Fix the Audio Listener 3D property not being grouped with 2D in Viewport 2022-04-16 02:22:58 +02:00
Rémi Verschelde 895f2a21f4
Merge pull request #60081 from fire-forge/input-event-editor-fix
Redesign InputEvent editor and fix `Window.popup_centered()` rect calculation.
2022-04-12 23:46:56 +02:00
Hendrik Brucker cf58d23a72 Add Vector4 to VisualShader 2022-04-12 19:09:29 +02:00
Yuri Rubinsky 3d63f6e36d
Merge pull request #60171 from Chaosus/restore_aa 2022-04-12 18:09:58 +03:00
FireForge 0b0a74e135 Redesign InputEvent editor plugin
- Use vertical layout and add text wrapping
- Fix Window.popup_centered() rect calculation
2022-04-12 08:30:24 -05:00
Rémi Verschelde 724dd82f92
Merge pull request #60069 from Calinou/fsr-fix-editor-enum 2022-04-12 14:33:52 +02:00
Yuri Roubinsky 6e9535a9c8 Restore antialiasing for `draw_line` 2022-04-12 13:03:56 +03:00
bruvzg 4bf99f4af2 Narrow FileAccess scope to prevent deadlocks. 2022-04-12 10:54:39 +03:00
Rémi Verschelde 2507b2b006
Merge pull request #54191 from Ev1lbl0w/bugfix-window_popup_ratio 2022-04-11 17:49:20 +02:00
Rémi Verschelde 5613ac37d6
Merge pull request #59440 from bruvzg/fd_ref_counted 2022-04-11 14:12:18 +02:00
bruvzg 9381acb6a4
Make FileAccess and DirAccess classes reference counted. 2022-04-11 13:28:51 +03:00
kobewi 63de41b996 Improvements to files_dropped signal 2022-04-11 00:37:06 +02:00
Ev1lbl0w 139c1eb655
Clamp ratio from popup_centered_ratio 2022-04-10 11:10:21 +01:00
Hugo Locurcio d15b69118d
Fix 3D scaling enum size in the editor and improve descriptions 2022-04-09 17:53:45 +02:00
Rémi Verschelde 0f9231ca0f
Merge pull request #59788 from Vitika9/59711 2022-04-07 15:30:57 +02:00
bruvzg f851c4aa33
Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
bruvzg d1207a0504
[Input] Add extra `shortcut_input` input processing step to process Unicode character input with Alt / Ctrl modifiers, after processing of shortcuts. 2022-04-05 13:46:45 +03:00
Rémi Verschelde f8ab79e68a Zero initialize all pointer class and struct members
This prevents the pitfall of UB when checking if they have been
assigned something valid by comparing to nullptr.
2022-04-04 19:49:50 +02:00
Vitika9 ff75b30e6e Removed show_on_top property in CanvasItem 2022-04-01 18:40:40 +05:30
Rémi Verschelde 1358efde1f
Merge pull request #59709 from Sauermann/fix-dragndrop-subviewport-transform 2022-03-31 22:31:59 +02:00
Rémi Verschelde 8e5d927af5
Merge pull request #59590 from Calinou/rename-print-stray-nodes 2022-03-31 22:21:51 +02:00
Hugo Locurcio a29f2bfe54
Rename `Node.print_stray_nodes()` to `Node.print_orphan_nodes()`
The "orphan" terminology is already used elsewhere.
2022-03-31 18:33:02 +02:00
Markus Sauermann 529e2279e1 Fix Drag n Drop Transform in main embedding window 2022-03-31 00:43:52 +02:00
Pierre-Thomas Meisels 63f7f44ccb Make vararg method bind no return and return
Type emit_signal exposed method return type

set UndoRedo add_do_method and add_undo_method exposed return void

Set TreeItem::_call_recursive_bind returns void

Set _rpc_bind and _rpc_id_bind returns void in Node

Set _call_group and _call_group_flags method returns void in SceneTree

Set godot-cpp-test CI flag to false
2022-03-30 11:43:12 +02:00
Rémi Verschelde 398d502cc7
Merge pull request #59308 from Sauermann/fix-viewport-warp-mouse 2022-03-30 11:41:31 +02:00
Rémi Verschelde dc4a5b2d5d
Merge pull request #59568 from Sauermann/fix-focus-out-notification
Send a focus-out notification when opening a Window Manager Popup
2022-03-30 08:57:50 +02:00
bruvzg 76174cb05a
Update sub-viewport canvas items to ensure oversampling is applied correctly. 2022-03-29 10:44:09 +03:00
Rémi Verschelde 7119d355eb String: Remove TTR and DTR defines in non-tools build
This ensures we don't use TTR in runtime code, as it's specifically meant
to source translations for the editor.
2022-03-28 20:26:35 +02:00
Rémi Verschelde 2e85105959
Merge pull request #59555 from Sauermann/fix-mouseover-drag 2022-03-28 20:21:28 +02:00
Rémi Verschelde abbb0dc082
Merge pull request #59548 from akien-mga/obj-remove-unused-categories 2022-03-28 14:17:24 +02:00
Markus Sauermann ffe42171a5 Fix using Viewport::warp_mouse within Viewports 2022-03-28 11:59:40 +02:00
Rémi Verschelde 7e5cd4bb48
Merge pull request #59118 from Sauermann/fix-window-input-event-coordinates 2022-03-28 09:54:59 +02:00
Markus Sauermann ba208df6e6 Send a focus-out notification when opening a Window Manager Popup 2022-03-28 09:40:36 +02:00
Rémi Verschelde 00e9170812
Merge pull request #59574 from Sauermann/proposal-rename-warp-mouse
Rename warp mouse functions to warp_mouse
2022-03-28 08:52:02 +02:00
Fabio Alessandrelli 4a95408dd4 [Net] Change HTTPRequest timeout type to double.
For consistency with the Timer class and general time representation
inside the engine.
2022-03-27 18:15:56 +02:00
Markus Sauermann d8a3d4b9da Send Mouse Enter/Exit Notifications independently of mouse focus 2022-03-27 14:20:03 +02:00
Markus Sauermann 0494e024d8 Rename warp mouse functions to warp_mouse 2022-03-27 14:12:01 +02:00
Univeous 383dc11965 Fix UI navigation with joysticks 2022-03-27 17:41:29 +08:00
Rémi Verschelde 5371009d8e Object: Remove unused category boilerplate
We might want to re-add something like this if/when we find a good use case
for it and do the effort to categorize all objects in the API properly.

Until then, it's better to remove that boilerplate since it's not needed.

Closes #18711.
2022-03-26 15:46:01 +01:00
Markus Sauermann 8d60e8b5d4 Update root order on layer change
When the layer of a CanvasLayer changes, the order of roots needs to be recalculated.
2022-03-24 19:25:38 +01:00
Jason Knight 640099cce5 Bind NOTIFICATION_LOCAL_TRANFORM_CHANGED 2022-03-20 11:34:01 -06:00
Markus Sauermann 3f7770c453 Fix coordinate system for stretched viewports for subwindows. 2022-03-18 18:10:53 +01:00
Rémi Verschelde 19950076b1
Merge pull request #58394 from bruvzg/rtl_hint 2022-03-18 14:49:13 +01:00
Markus Sauermann 7451fa63f2 Simplify always true conditional
get_viewport() is always true, because is_inside_tree() is true.
2022-03-16 16:28:11 +01:00
Rémi Verschelde e4b9406313
Merge pull request #59099 from RandomShaper/mouse_drop_on_disable 2022-03-14 11:18:38 +01:00
Markus Sauermann 86574b91dd Cleanup internal GUI state, if event is accepted in _input. 2022-03-14 08:38:48 +01:00
kobewi 3c53752b4a Cleanup embed subwindows getters 2022-03-13 18:20:53 +01:00
kobewi bcf13dc175 Expose methods for screen-space transforms 2022-03-13 16:05:08 +01:00
Pedro J. Estébanez d083fb21c7 Drop mouse focus and over when gui input is globally disabled 2022-03-13 12:45:32 +01:00
Markus Sauermann 40c08e522f Revert "Update mouse cursor shape after changes"
This reverts commit 0fce98b4b5.
2022-03-10 09:43:06 +01:00
reduz 21637dfc25 Remove VARIANT_ARG* macros
* Very old macros from the time Godot was created.
* Limited arguments to 5 (then later changed to 8) in many places.
* They were replaced by C++11 Variadic Templates.
* Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard.
* Also added a dereference check for Variant*. Helped catch a couple of bugs.
2022-03-09 18:39:13 +01:00
Markus Sauermann 0fce98b4b5 Update mouse cursor shape after changes
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-03-09 07:54:03 +01:00
kobewi bc3aff9b46 Various code and documentation improvements 2022-03-05 22:00:35 +01:00
Rémi Verschelde 345b4bb86a
Merge pull request #58282 from keptsecret/filedialog_visibility_unresponsive
Fix to prevent AcceptDialog and children class taking over main window
2022-02-28 12:48:59 +01:00
Rémi Verschelde 9b7aeaf88f
Merge pull request #58413 from Sauermann/fix-canvas-item-visibility
Fix invisible CanvasItem visibility issue
2022-02-28 11:24:19 +01:00
Igor Kordiukiewicz b870b40d79 Remove files_dropped signal from SceneTree 2022-02-28 07:51:50 +01:00
bruvzg 74ff5921d6 Improve popup window handling.
Add window FLAG_POPUP and a platform specific routines to control popup auto-hiding and event forwarding.
2022-02-25 09:33:27 +02:00
Markus Sauermann dce6cb7393 Fix invisible CanvasItem visibility issue 2022-02-22 10:13:02 +01:00
bruvzg 7385c3602d
Add RichTextLabel "hint" tag. 2022-02-21 19:34:16 +02:00
kobewi 3a77484f70 Fix CanvasItem visibility propagation 2022-02-19 22:40:53 +01:00
Markus Sauermann 27aab7f7ca Update variable name to reflect usage 2022-02-19 09:19:15 +01:00
Rémi Verschelde 417698c202
Merge pull request #58042 from Sauermann/fix-viewport-border-notifications
Fix Viewport mouse enter+exit notifications
2022-02-19 09:07:07 +01:00
keptsecret 128e98c124 fixed wrong ifdef enclosed block 2022-02-18 13:31:54 -05:00
keptsecret cb905fa957 prevent acceptdialog taking over main editor window when made visible 2022-02-18 11:06:41 -05:00
diddykonga 78dc608aa8 Change 'find_node' to 'find_nodes' and Add 'type' parameter
Changed 'find_node' to 'find_nodes' which now returns an 'TypedArray<Node>', as well as Added a 'type' parameter to match against specific node types, which supports inheritance.
2022-02-17 01:44:13 -06:00
Markus Sauermann 415042ac89 Connect notifications from Container to Viewport
mouse enter+exit
2022-02-15 22:41:30 +01:00
Rémi Verschelde 0f5455230c
Use `switch` consistently in `_notification` (`scene` folder) 2022-02-15 18:44:55 +01:00
Rémi Verschelde 171021145d
Merge pull request #58147 from Geometror/fix-tooltip-flicker 2022-02-15 18:02:55 +01:00
Hendrik Brucker c30d161562 Fix tooltip flickering in some cases 2022-02-15 16:29:03 +01:00
Wagner Scholl Lemos 160ee4ef8e Added show and hide methods and updated doc API. 2022-02-15 11:37:41 -03:00
Rémi Verschelde d3a6b6daaa
Merge pull request #56953 from bruvzg/ex_wnd 2022-02-12 16:46:55 +01:00
Hendrik Brucker b396fd4eef Improve compilation speed (forward declarations/includes cleanup) 2022-02-12 02:46:22 +01:00
bruvzg 7d59b81d79
Add exclusive window handling to DisplayServer (on macOS and Windows). 2022-02-12 00:14:09 +02:00
Rémi Verschelde 4be8f200f0
Fix crash calling `_activate()` on ShaderGlobalsOverride out of tree
Fixes #45984.
2022-02-10 18:22:20 +01:00
Fabio Alessandrelli a18ba63417 [Net] Allow to use strings as method name in RPC.
Node::rpc and Node::rpc_id will now also accepts Strings instead of only
accepting StringNames.
2022-02-09 14:27:16 +01:00
kobewi ab5b5e1577 Rework CanvasItem visibility propagation 2022-02-06 00:26:28 +01:00
Rémi Verschelde 5f42e0d0ab
Merge pull request #57646 from Faless/mp/4.x_interfaces
[Net] Move RPC, Node cache out of MultiplayerAPI.
2022-02-05 18:26:04 +01:00
kobewi 189dab2d76 Add visibility to CanvasLayer 2022-02-05 14:02:21 +01:00
Fabio Alessandrelli 347d2dfc42 [Net] Move RPC, Node cache out of MultiplayerAPI.
Now uses two interfaces so it can be overridden in the future, and
core no longer depends on Node.

The interfaces are implements in scene/multiplayer.
Replaces root_node with root_path.
Remove all Node references from MultiplayerAPI.
2022-02-05 02:00:23 +01:00
Rémi Verschelde 2885befbe6
Merge pull request #55950 from Faless/mp/4.x_replication_nodes 2022-02-04 19:03:10 +01:00
Fabio Alessandrelli d219547c96 [Net] New replication interface, spawner and synchronizer nodes.
Initial implementation of the MultiplayerReplicationInterface and its
default implementation (SceneReplicationInterface).

New MultiplayerSpawner node helps dealing with instantiation of scenes
on remote peers (e.g. clients).
It supports both custom spawns via a `_spawn_custom` virtual function,
and optional auto-spawn of known scenes via a TypedArray<PackedScenes>
property.

New MultiplayerSynchornizer helps synchronizing states between the local
and remote peers, supports both sync and spawn properties and is
configured via a `SceneReplicationConfig` resource.
It can also sync via path (i.e. without being spawned by a
MultiplayerSpawner if both peers has it in tree, but will not send the
spawn state in that case, only the sync one.
2022-02-04 14:56:30 +01:00
Rémi Verschelde 225a3b2545
Merge pull request #57341 from bruvzg/win_multiwin_fs 2022-02-04 13:28:56 +01:00
bruvzg f4ea9cd9f3
[Windows] Add WS_BORDER flag to windows in WINDOW_MODE_FULLSCREEN mode to allow multi-window interface in full-screen.
[Windows] Add WINDOW_MODE_EXCLUSIVE_FULLSCREEN without WS_BORDER flag enabled (no multi-window support).
2022-02-04 12:08:46 +02:00
bruvzg 244db37508
Cleanup and move char functions to the `char_utils.h` header. 2022-02-04 11:35:01 +02:00
Rémi Verschelde 2a3c4f00c8
Merge pull request #57541 from reduz/node-add-remove-hook 2022-02-04 10:13:29 +01:00
Rémi Verschelde 36880714e4
Merge pull request #57517 from groud/viewport_expose_gui_focus 2022-02-03 11:20:20 +01:00
Fabio Alessandrelli 6ff753675a
Merge pull request #56771 from mhilbrunner/unacceptable
Verify custom HTTP headers, fix off by one error
2022-02-02 18:28:30 +01:00
reduz fbd9599b04 Add a signal to notify when children nodes enter or exit tree
-Allows more fine grained notifications (hence better performance) than using the global scene tree signals (node added and removed).
-Required for #55950
2022-02-02 11:28:11 +01:00
Rémi Verschelde 7ed7bf1fa7
Merge pull request #48156 from madmiraal/fix-46438
Fix `mouse_over` not dropped when mouse leaves window
2022-02-02 07:58:49 +01:00
Anilforextra fc27636999 Vectors: Use clear() and has().
Use clear() instead of resize(0).

Use has() instead of "find(p_val) != -1".
2022-02-02 00:11:09 +05:45
Marcel Admiraal eaa70fd3f8 Fix mouse_over not dropped when mouse leaves window 2022-02-01 16:12:37 +00:00
Gilles Roudière 3521eecb4c Exposes gui_release_focus and gui_get_focus_owner to Viewport 2022-02-01 15:07:22 +01:00
Max Hilbrunner 3ef5a97505 Verify custom HTTP headers, fix off by one error 2022-01-27 03:22:37 +01:00
Max Hilbrunner 3a83872d26 HTTP comment cleanup 2022-01-27 03:22:37 +01:00
Fabio Alessandrelli 17d4d3839e [Net] Fix HTTPRequest memory leak in compressed responses.
When accept_gzip = true.
2022-01-24 14:24:45 +01:00
rafallus 44f6fe4be4 Bring reusable variables out of while loop 2022-01-23 19:39:00 -06:00
Marcel Admiraal d009aa4d02 Fix mouse position not being scaled when window size is changed 2022-01-23 11:53:58 +00:00
bruvzg 3d79ad6e50
Fix main window title translation. 2022-01-21 15:32:22 +02:00
Rémi Verschelde d681d99e12
Merge pull request #52134 from RandomShaper/fix_naming 2022-01-20 22:01:37 +01:00
Pedro J. Estébanez 7b0ed2aa5e Rename Variant::is_ref() to is_ref_counted() 2022-01-20 18:46:25 +01:00
Rémi Verschelde 9e0973ca23
Merge pull request #56972 from lawnjelly/warn_unused 2022-01-20 15:34:41 +01:00
lawnjelly b411a731fe Add nodiscard to core math classes to catch c++ errors.
A common source of errors is to call functions (such as round()) expecting them to work in place, but them actually being designed only to return the processed value. Not using the return value in this case in indicative of a bug, and can be flagged as a warning by using the [[nodiscard]] attribute.
2022-01-20 13:07:49 +00:00
Rémi Verschelde 28fcbdd6dd
Merge pull request #56957 from Pineapple/get-node-error-check-optimization
Rework Node::get_node to omit is_absolute() check in best case scenario
2022-01-20 07:34:15 +01:00
Bartłomiej T. Listwon e2792cc71c Rework Node::get_node to omit is_absolute() check in best case scenario 2022-01-19 21:38:18 +01:00
Rémi Verschelde 6ab5d9d008
Merge pull request #56935 from V-Sekai/window_theme_changed_signal 2022-01-19 13:31:56 +01:00
Rémi Verschelde 74b110a736
Merge pull request #56825 from bruvzg/macos_fix_fullscr_multiwindow 2022-01-19 10:03:17 +01:00
SaracenOne 2db30ef223 Add missing 'theme_changed' signal to Window class 2022-01-19 07:59:42 +00:00
bruvzg d62ca0c9c0 Window management improvements.
[macOS] Fix transient windows not working in the full-screen mode.
[macOS] Fix moving transient windows to the other screen than parent window.
[macOS] Fix popup menu switch on hover.
[macOS] Use content origin rect for windows position (to ensure `DS.mouse_get_position` is equal to `DS.window_get_position` + mouse position from the input events).
[macOS] Fix incorrect input coordinates, when external display with different scaling in connected/disconnected.
[macOS/Windows] Fix moving fullscreen windows between the screens.
Add auto refocusing of the parent window, when the focused transient window is closed.
Remove redundant `DS.mouse_get_absolute_position` function (returns mouse position in the screen coordinates, same as `DS.mouse_get_position`).
2022-01-18 11:47:03 +02:00
Mario Liebisch a5a03b3a73
Allow embedded windows to be non-resizable
This fixes issue #56869.
2022-01-17 21:19:45 +01:00
Haoyu Qiu 6aecf91e4f Replicate load-as-placeholder state on node duplication 2022-01-16 15:08:03 +08:00
Stijn Hinlopen fb1cd9e446 Refactor CanvasItem show/hide/set_visible 2022-01-12 23:13:41 +01:00
Rémi Verschelde d40d86b959
Merge pull request #56667 from Ice-Cube69/fix_incorrect_property_types 2022-01-11 14:34:18 +01:00
Arnav Vijaywargiya 0c46f73b5e Fixed incorrect property types 2022-01-11 17:17:11 +05:30
Rémi Verschelde 46624388d4
Merge pull request #56322 from madmiraal/fix-42450 2022-01-11 11:33:59 +01:00
kobewi 205f56f226 Fix Tween pause behavior 2022-01-09 19:38:18 +01:00
Rémi Verschelde 07d2dfef7b
Merge pull request #53419 from TechnoPorg/rework-subwindows 2022-01-07 16:15:09 +01:00
Tomasz Chabora e72adab511 Update the minimum size of ViewportContainer 2022-01-06 15:43:12 +01:00
Pedro J. Estébanez 2db9397fb9 Clear only owners that are no longer in the same tree 2022-01-05 14:00:49 +01:00
Rémi Verschelde 91b5c358fc
Merge pull request #55512 from RandomShaper/better_node_delete 2022-01-05 10:25:13 +01:00
Rémi Verschelde 851fb16350
Merge pull request #56305 from Calinou/rename-lod-threshold 2022-01-04 15:28:06 +01:00
Rémi Verschelde 23342ac23c
Merge pull request #54987 from KoBeWi/@@Node2D@@69@@420@@@ 2022-01-04 10:08:32 +01:00
Rémi Verschelde 7f66c16c03
Merge pull request #51206 from clayjohn/Vulkan-ASSGI 2022-01-04 10:00:17 +01:00
Rémi Verschelde fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Marcel Admiraal 3105d9b1f3 Rename speed to velocity when it's a directional Vector 2021-12-29 15:35:26 +00:00
Hugo Locurcio df09bc38cb
Rename Lod Threshold to Mesh Lod Threshold
This makes it more obvious that the setting only affects mesh LOD,
not manual (H)LOD achieved using visibility ranges.
2021-12-29 00:11:50 +01:00
Ansraer c7a03412ac add 2d scale factor property 2021-12-17 19:19:41 +01:00
Fabio Alessandrelli 75ed3d74e8
Merge pull request #55747 from timothyqiu/editor-proxy
Add proxy support for the editor
2021-12-16 10:06:14 +01:00
vitika9 51501dadcc Added check for SceneTree being null 2021-12-13 15:41:29 +05:30
jmb462 d44b33741b Fix bad mouse offset to show tooltips in Tree 2021-12-12 09:12:26 +01:00
Nathan Franke 49403cbfa0
Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Nathan Franke 41a20171eb
align to horizontal_alignment, valign to vertical_alignment, related 2021-12-09 01:38:46 -06:00
Haoyu Qiu 5912dd2964 Add proxy support for the editor
* Adds proxy support for `HTTPRequest`.
* Adds `network/http_proxy/{host,port}` editor settings.
    * Labeled as "HTTP Proxy" and it will be used for both HTTP and
      HTTPS requests. This is the same convention as seen in Android
      Studio's proxy settings.
* Makes Asset Library and Export Template Manager use proxy according to
  the editor settings.
2021-12-09 11:48:16 +08:00
Rémi Verschelde c1ed695f32
Merge pull request #55659 from timothyqiu/boom
Fix crash when `update()` is called inside `_draw()`
2021-12-06 22:39:02 +01:00
jmb462 81efebb3a1
Fix bad popups offset in editor with single window off
Co-authored-by: Gil Arasa Verge <gilarasaverge@gmail.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2021-12-06 14:29:48 +01:00
Haoyu Qiu f18de71b56 Fix crash when update() is called inside _draw() 2021-12-06 14:20:26 +08:00
Haoyu Qiu 86a47c6540 Fix mouse cursor and notification for force dragging 2021-12-03 18:19:41 +08:00
Pedro J. Estébanez 0a0381dd0a Rationalize Node removals and deletions
- Regarding preservation of owner, `free()` and `remove_child()` now behave the same: owner is kept during `tree_exiting` signal and `null` during `tree_exited`.
- `tree_exited` is emitted in the same order as `tree_exiting`.
- Superfluous code to handle cancelation of ownership is removed.
2021-12-01 14:28:59 +01:00
Rémi Verschelde e223a9c129
Merge pull request #55486 from nekomatata/physics-contacts-debug 2021-11-30 20:21:54 +01:00
PouleyKetchoupp 1ce74c0273 Fix physics 2D/3D contact points rendering
Physics internal process was removed by mistake, it's needed for contact
points to be updated each frame.

Fixed some multimesh parameters to allow 3D contact points to be drawn,
although it's still not working well in 3D as only some of the contact
points are drawn, and some of them keep being drawn when the number
of visible instances drops to 0 instead of hiding them all.
2021-11-30 09:35:12 -07:00
TechnoPorg acb90ed020 Don't obtain a reference to a subwindow
Fixes the wrong location being accessed after changing the order of embedded windows.
This commit also removes an unused variable.
2021-11-29 16:52:19 -07:00
kobewi dc5f6ac4cf Don't show tooltips for paused controls 2021-11-29 13:23:28 +01:00
Max Hilbrunner a6a2e0feb9
Merge pull request #52387 from Calinou/node-rename-path-changed-notification
Rename Node's `NOTIFICATION_PATH_CHANGED` to `NOTIFICATION_PATH_RENAMED`
2021-11-25 17:47:44 +01:00
Rémi Verschelde 547c270777
Merge pull request #51679 from Je06jm/fsr
AMD FidelityFX Super Resolution
2021-11-24 22:34:48 +01:00
Lightning_A e078f970db Rename `remove()` to `remove_at()` when removing by index 2021-11-23 18:58:57 -07:00
Je06jm 20deb0917d Implemented AMD's FSR as a computer shader for upscaling 3D scenes 2021-11-23 14:16:03 -07:00
Rémi Verschelde 76aa1d0a43
Merge pull request #55151 from Chaosus/control_reset_size 2021-11-22 16:22:57 +01:00
Yuri Roubinsky eabf8f5edf Added `reset_size` method to `Control` and `Window` classes 2021-11-22 16:55:21 +03:00
Rémi Verschelde 78dbe4e3e4
Merge pull request #54339 from ConteZero/line_edit_drag_and_drop 2021-11-22 12:20:01 +01:00