Commit Graph

1604 Commits

Author SHA1 Message Date
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
Rémi Verschelde b99792b5d9
Merge pull request #54167 from brunosxs/fix-game-crash-when-sending-a-notification-from-a-camera-class 2021-11-16 14:11:14 +01:00
ConteZero 2b1787b446 Fix drag and drop on LineEdit 2021-11-15 17:10:56 +01:00
kobewi 58146a74f7 Fix nodes being renamed into garbage upon conflict 2021-11-15 02:05:44 +01:00
Aaron Franke 3c0fdcc8ac
Use "enum class" for input enums 2021-11-12 15:37:54 -06:00
megalobyte e3def40160 Update editor description property flag 2021-11-10 13:44:54 -05:00
Rémi Verschelde 665fa3d839
Merge pull request #52943 from RandomShaper/property_pin_control_natural 2021-11-08 18:53:08 +01:00
Pedro J. Estébanez 8d6f80d367 Add property value pinning 2021-11-08 17:42:30 +01:00
kobewi 313ef412f5 Fix preview sun and environment names 2021-11-07 00:40:15 +01:00
clayjohn 0eff109a21 Added SSIL post processing effect 2021-11-06 12:43:19 -07:00
Rémi Verschelde 13aaa73124
Merge pull request #54573 from nekomatata/query-parameters 2021-11-05 21:52:39 +01:00
PouleyKetchoupp acbd24ea84 Use parameter classes instead of arguments for all physics queries
Same as what is already done for shape queries, applied to point and ray
queries. Easier to document and more flexible to add more parameters.

Also expose intersect_point method to script in 3D.
Remove intersect_point_on_canvas in 2D, replaced with a parameter.
2021-11-04 11:44:39 -07:00
Hugo Locurcio c012fbc8b2
Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`
This is consistent with other constants that include `NO`,
such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03 23:06:17 +01:00
Rémi Verschelde a2803f3d86
Merge pull request #54072 from KoBeWi/hrcr_is_ded 2021-11-03 17:31:48 +01:00
Rémi Verschelde 96ce806b2f
Merge pull request #54369 from S0yKaf/fix-hardcoded-ray-distance
Fix hardcoded raycast distance in viewport object picking
2021-11-01 21:01:44 +01:00
vdyotte 02b6bbc5df
fix hardcoded raycast distance with viewport object picking
having the raycast distance hardcoded to `10000` caused input events
to not be registered in very large 3D scenes.

This resolves the issue by using the cameras far distance instead.
Creating the more predictable behavior of if an object is visible,
it will be picked by the viewport.

resolves: #49735
2021-10-28 23:08:48 -04:00
Lyuma 97a4ae9e0f Fix off by one in Viewport.render_target_update_mode property enum 2021-10-28 19:42:31 -07:00
Rémi Verschelde 3b11e33a09
clang-format: Disable alignment of operands, too unreliable
Sets `AlignOperands` to `DontAlign`.

`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
2021-10-28 15:19:35 +02:00
kobewi de4f29f458 Remove node_hrcr hack 2021-10-28 01:43:34 +02:00
bruvzg ebbc25e89c Ignore empty Font resources as theme override.
Add range hint to font_size properties.
Remove excessive `base_size` Font property.
2021-10-25 14:05:37 +03:00
BrunoSXS eb2deabffe Fixes a game crash caused by instantiating Camera2D and sending a notification from it before adding it to the tree. 2021-10-23 17:30:18 -03:00
Rémi Verschelde 9f7218eb69
Merge pull request #54088 from madmiraal/remove-unimplemented-methods 2021-10-22 12:59:32 +02:00
Sean Kim 497b00a937 Fix potential nullptr dereference in CanvasLayer
* Changed another instance of ERR_FAIL_COND in the same file to
  ERR_FAIL_NULL_MSG instead.
* Checked for potential access of the viewport pointer elsewhere in same
  file.

Fixes #54098
2021-10-21 19:41:13 -07:00
Marcel Admiraal 87a4ba492e Remove unimplemented methods 2021-10-21 18:44:25 +01:00
PouleyKetchoupp d5847f1cb4 Fix errors in mouse detection when removing collision object from tree
Now behaves the same way as ui elements, mouse exit is skipped when the
object is removed from the tree.
2021-10-20 09:10:59 -07:00
Rémi Verschelde 56078cca90
Merge pull request #53630 from timothyqiu/viewport-recursion 2021-10-11 10:02:22 +02:00
Haoyu Qiu 7ecb133b22 Fix Viewport::handle_input_locally related infinite recursion 2021-10-10 18:10:28 +08:00
mashumafi 80dc1cc412 Executing AcceptDialog.push_input no longer crashes 2021-10-09 20:33:29 +00:00
Hugo Locurcio 42d13e29e2
Add a warning for Timer nodes with very low wait times
Very low wait times behave in unpredictable ways depending on the
rendered frame rate. This is because the timeout signal is only emitted
once per rendered frame (or physics frame, depending on the timer's
process mode).
2021-10-09 08:57:48 +02:00
Rémi Verschelde 5ae569560d
Fix missing argument names in bindings
While at it, tweak some boolean setters to use `p_enabled` for the bool.

Also renames `draw_minimap()` to `set_draw_minimap()`.
2021-10-09 00:20:10 +02:00
Hugo Locurcio 73c6e19acc
Allow any floating-point value as a 3D rendering scale option
This allows for finer control over 3D rendering resolution.
Supersampling can also be performed by setting a 3D rendering
resolution above 1.0, which is useful for offline rendering or
for very high-end GPUs.
2021-10-08 18:22:10 +02:00
kleonc 23dac24789 Delete objects enqueued for deletion during SceneTree destruction 2021-10-08 16:45:55 +02:00
Fabio Alessandrelli 7c93931751 [Net] Add call_local argument to Node.rpc_config. 2021-10-08 12:49:20 +02:00
jitspoe 2ceba818c3
Fix ViewportTexture error when viewport is used from a child scene
Fix invalid errors when a separate child scene file contains a viewport and
that viewport is used for a texture in the current scene.

Fixes #27790.
2021-10-05 12:21:06 +02:00
Rémi Verschelde b85dfd990e
GDScript completion: Handle quote style ad-hoc to remove editor dependency
`core` and `scene` shouldn't depend on `editor`, so they can't query this style
setting in `get_argument_options`. But we can handle it after the fact in
GDScript's completion code.

Also cleans up a couple extra unused invalid includes in `core`.
2021-10-04 16:16:05 +02:00
Yuri Sizov 4a42a66cd9 Add the base scale factor to the Theme resource 2021-10-04 15:25:07 +03:00
bruvzg 0c0b5c84b0 Implement TextServer GDExtension interface, remove TextServer GDNative interface. 2021-10-01 15:13:29 +03:00
Lightning_A c63b18507d Use range iterators for `Map` 2021-09-30 15:09:12 -06:00
Hugo Locurcio 570cdc128f
Rename Node's `filename` property to `scene_file_path` for clarity 2021-09-30 16:50:25 +02:00
Haoyu Qiu 9dd0d3f550 Don't memcpy to nullptr even if length is zero 2021-09-29 20:58:14 +08:00
Eric M caac2e1a87 Fix focus shortcuts triggering incorrectly 2021-09-21 12:24:07 +10:00
Rémi Verschelde 583eaa9869
Merge pull request #49819 from nekomatata/fix-process-mode-inherit 2021-09-17 19:16:19 +02:00
Wilson E. Alvarez f3a564f9a5
Rename Listener2D/Listener3D to AudioListener2D/AudioListener3D 2021-09-16 17:51:51 -04:00
Rémi Verschelde 195ea41a7a
Merge pull request #51237 from KoBeWi/tween_fix()
Various fixes to Tween code
2021-09-14 10:29:50 +02:00
Rémi Verschelde 70ba366743
Merge pull request #50375 from Paulb23/code_edit_unit_tests 2021-09-13 21:51:20 +02:00
Rémi Verschelde 8ecc571158
Merge pull request #49063 from Calinou/remove-16x-msaa
Remove 16× MSAA support due to driver bugs and low performance
2021-09-13 17:34:04 +02:00
kobewi 6b68445e4d Fix multiple definitions of Listener2D 2021-09-12 21:19:37 +02:00
Max Hilbrunner 06e2a02253 Clean up Viewport, remove dead code. 2021-09-10 16:58:33 +02:00
Max Hilbrunner 68563b5760
Merge pull request #52431 from dozingpip/patch-1
Remove dead code from Viewport::_gui_input_event
2021-09-10 16:34:28 +02:00
Juan Linietsky d0a7eeaaff
Merge pull request #44844 from KoBeWi/hey_listen!_but_2d
Add Listener2D
2021-09-09 19:19:10 -03:00
Max Hilbrunner 5b25457794 Multiplayer networking renames/simplification
Removes _networking_ prefix from some methods and members, now that multiplayer has been largely moved out of Node and SceneTree and is seperated into its own set of classes.
2021-09-08 12:05:54 +02:00
Max Hilbrunner acc776f7b6
Merge pull request #52442 from Faless/mp/4.x_rpc_manager
[Net] Move multiplayer classes to own subfolder. Split RPC from MultiplayerAPI.
2021-09-07 18:44:39 +02:00
Max Hilbrunner b284cb908a
Merge pull request #52392 from Shatur/fix-ready
Remove extra get_script_instance check
2021-09-07 18:43:06 +02:00
Fabio Alessandrelli bf9aae09ba [Net] Move multiplayer to core subdir, split RPCManager.
Move multiplayer classes to "core/multiplayer" subdir.

Move the RPCConfig and enums (TransferMode, RPCMode) to a separate
file (multiplayer.h), and bind them to the global namespace.

Move the RPC handling code to its own class (RPCManager).

Renames "get_rpc_sender_id" to "get_remote_sender_id".
2021-09-07 11:14:30 +02:00
PouleyKetchoupp 226d6337e5 Fix process mode update when mode owner is set to Inherit
Prevent the root node to be set to PROCESS_MODE_INHERIT, since it causes
undefined behavior.

Fix a case where the process owner node is wrongly set to the direct
parent instead of the proper node.

Add errors for all unhandled cases.
2021-09-06 17:14:12 -07:00
Pip d7a6f8990a
Remove dead code from Viewport::_gui_input_event 2021-09-06 03:11:02 -04:00
Hennadii Chernyshchyk 2b78353e79
Remove extra get_script_instance check
Otherwise, `_ready()` will not be called on classes
that define this function and doesn't have a script attached.
2021-09-04 12:14:54 +03:00
Hugo Locurcio 879c37d658
Rename Node's `NOTIFICATION_PATH_CHANGED` to `NOTIFICATION_PATH_RENAMED`
The new name is less misleading, as the notification is only emitted
when the node name (or one of its parents' names) is changed.
2021-09-04 00:15:15 +02:00
JestemStefan 177173578a Changed Window current_screen parameter from string to int 2021-09-02 23:34:15 +02:00
Paulb23 cd6b11222c Prevent crash on startup if no audio server 2021-09-01 16:46:04 +01:00
kobewi f2cb0a8d4b Add Listener2D 2021-08-31 16:53:14 +02:00
Fabio Alessandrelli 64b9f30b92 [Net] Rename RPC "puppet" to "auth" (authority). Drop "master".
This commit completely removes the RPC_MODE_MASTER ("master" keyword),
and renames the RPC_MODE_PUPPET to RPC_MODE_AUTHORITY ("auth" keyword).

This commit also renames the "Node.[get|set]_network_master" methods to
"Node.[get|set]_network_authority".

This commit also renames the RPC_MODE_REMOTE constant to RPC_MODE_ANY.

RPC_MODE_MASTER in Godot 3.x meant that a given RPC would be callable by
any puppet peer on the master, while RPC_MODE_PUPPET meant that it would
be callable by the master on any puppet.

Beside proving to be very confusing to the user (referring to where it
could be called instead of who can call it) the RPC_MODE_MASTER is quite
useless. It is almost the same as RPC_MODE_REMOTE (anyone can call) with
the exception that the network master cannot. While this could be useful
to check in some case, in such a function you would anyway need to check
in code who is the caller via get_rpc_sender_id(), so adding the check
there for those rare cases does not warrants a dedicated mode.
2021-08-30 00:54:38 +02:00
Juan Linietsky 72bf79186e
Merge pull request #30391 from KoBeWi/hiding_children
Add support for internal nodes
2021-08-29 19:36:30 -03:00
Michael Alexsander 565ba91d28
Merge pull request #51906 from requizm/fix/49077
Fix tooltips don't appear for PopupMenus
2021-08-28 15:43:02 +00:00
kobewi a913ae8d56 Add support for internal nodes 2021-08-28 02:07:23 +02:00
Ellen Poe 3598d300cb Do all audio mixing in the AudioServer 2021-08-27 10:41:57 -07:00
bruvzg 4c3f7d1290 Makes FontData importable resource.
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Camille Mohr-Daurat adafc509f3
Merge pull request #52132 from nekomatata/fix-physics-process-delta
Fix delta passed in _physics_process
2021-08-26 11:27:38 -07:00
PouleyKetchoupp cbce1550ff Fix delta passed in _physics_process
Regression due to typo in recent GDVIRTUAL_CALL change.
2021-08-26 10:49:12 -07:00
Juan Linietsky d19b12dbd2
Merge pull request #52107 from timothyqiu/overriden
Fix misspelled "overriden"
2021-08-26 13:07:52 -03:00
Bastiaan Olij 64626cc435 Optionally scale 3D render content 2021-08-26 20:48:40 +10:00
Haoyu Qiu eba7265a1c Fix misspelled "overriden"
In recent GDVIRTUAL PR and SkeletonModification3DJiggle doc.
2021-08-26 01:44:01 +08:00
Hugo Locurcio 7192852da3
Remove 16× MSAA support due to driver bugs and low performance
In the `master` branch, 16× MSAA caused the entire system to freeze
on NVIDIA GPUs. This is likely caused by graphics drivers not actually
implementing 16× MSAA, but combining 8× MSAA with 2× SSAA instead.

On top of that, modern shader complexity makes 16× MSAA very difficult
to use while keeping a good framerate. 8× MSAA is hard enough to use
as it is.
2021-08-25 07:56:27 +02:00
Juan Linietsky 6609ce1944
Merge pull request #52000 from lyuma/set_editable_instance
Make Node editable_instance methods available to GDScript
2021-08-24 08:31:34 -03:00
Lyuma 7eb6ae2798 Make Node editable_instance methods available to GDScript 2021-08-23 21:45:18 -07:00
reduz 5cecdfa8af Entirely removes BIND_VMETHOD in favor of GDVIRTUAL
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions.
* Everything else converted to GDVIRTUAL
* BIND_VMETHOD is gone, always use the new syntax from now on.

Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-23 08:10:13 -03:00
reduz 3682978aee Replace BIND_VMETHOD by new GDVIRTUAL syntax
* New syntax is type safe.
* New syntax allows for type safe virtuals in native extensions.
* New syntax permits extremely fast calling.

Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`.
These will require API rework on a separate PR as they work different than the rest of the functions.

Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-22 08:23:58 -03:00
Juan Linietsky 1990721d1b
Revert "Add Node processing and physics processing cumulative (as opposed to delta) time" 2021-08-22 08:21:34 -03:00
Hugo Locurcio fb94b2e656
Merge pull request #41850 from MohammadKhashashneh/cumulative-time_issue_6999
Add Node processing and physics processing cumulative (as opposed to delta) time
2021-08-22 10:33:20 +02:00
requizm 6f3d8fa228 Fix tooltip message working incorrectly in PopupMenu
fix
2021-08-20 23:06:00 +03:00
Fabio Alessandrelli d4dd859991 [Net] MultiplayerReplicator with initial state.
Move the former "spawnables" functions to a dedicated
MultiplayerReplicator class.
Support custom overrides in replicator.
Spawn/despawn messages can now contain a state.
The state can be automatically encoded/decoded by passing the desired
object properties to `spawnable_config`.
You can use script properties to optimize the state representation.
2 Callables can be also specified to completely override the default
implementation for sending and receiving the spawn/despawn event.
(9 bytes overhead, and there's room for improvement here).
When using a custom implementation `spawn` and `despawn` can be called
with any Object, `send_spawn`/`send_despawn` can receive any Variant as
a state, and the path is not required.

Two new functions, `spawn` and `despawn`, convey the implementation
independent method for requesting a spawn/despawn of an Object, while
`send_spawn` and `send_despawn` represent the more low-level send event
for a Variant to be used by the custom implementations.
2021-08-18 10:21:29 +01:00
Mohammad Khashashneh 0c027ef0f1 Add Node processing and physics processing cumulative (as opposed to delta) time. 2021-08-17 21:34:50 +03:00
Jihyun Yu d40b7e2cfb fix bug on window notification propagation 2021-08-17 14:07:53 +09:00
Rémi Verschelde a96c96ca72
Merge pull request #50147 from aaronfranke/disable-node3d
Disable Node3D when compiling without 3D and fix disable_3d option
2021-08-14 11:59:06 +02:00
Rémi Verschelde 81512a3732
Style: Cleanup code using `text_editor/completion/use_single_quotes` 2021-08-13 21:27:57 +02:00
Aaron Franke 7094ccfbe9
Disable Node3D when compiling without 3D and fix disable_3d option 2021-08-13 08:59:48 -05:00
Rémi Verschelde 85e315d6e8
Merge pull request #51607 from aaronfranke/includes
Fix some unnecessary includes
2021-08-13 14:38:56 +02:00
Aaron Franke eb4902a455
Fix some unnecessary includes 2021-08-13 00:27:38 -05:00
Hugo Locurcio 7612cff432
Use the Unicode multiplication symbol where relevant 2021-08-12 21:45:33 +02:00
Rémi Verschelde dce488d8f7
Merge pull request #49417 from Bhu1-V/gsoc-cmd-plt
Command Palette For Godot
2021-08-10 18:55:22 +02:00
Aaron Franke 339687e04f
Organize methods in Viewport and explicitly name 3D methods with 3D 2021-08-10 09:10:34 -05:00
Aaron Franke 84f720966c
Use doubles for time in many other places 2021-08-09 14:05:42 -05:00
Fabio Alessandrelli 9fcf3b5a9c [Net] Basic extensible MultiplayerAPI spawn/despawn.
`PackedScene`s can be configured to be spawnable via a new
`MultiplayerAPI.spawnable_config` method.
They can be configured either to be spawned automatically when coming
from the server or to always require verification.
Another method, `MultiplayerAPI.send_spawn` lets you request a spawn on
the remote peers.
When a peer receive a spawn request:
- If it comes from the server and the scene is configured as
  `SPAWN_MODE_SERVER`:
  - Spawn the scene (instantiate it, add it to tree).
  - Emit signal `network_spawn`.
- Else:
  - Emit signal `network_spawn_request`.

In a similar way, `despawn`s are handled automatically in
`SPAWN_MODE_SERVER`.

In `SPAWN_MODE_SERVER`, when a new client connects it will also receive,
from the server all the spawned (and not yet despawned) instances.
2021-08-09 16:34:40 +02:00
Bhuvan Vemula a0a019a998 Added EditorCommandPalette 2021-08-09 17:41:50 +05:30
kobewi e092a132fe Various fixes to Tween code 2021-08-06 13:07:34 +02:00
Rémi Verschelde 57a5186b08
Merge pull request #51006 from foxydevloper/drag-drop-naming
Name nodes added when drag & dropping an image by `name_casing`
2021-08-03 09:38:03 +02:00
Michael Alexsander 94a64d557e Add `auto_translate` toggle for automatic translation 2021-07-29 18:30:34 -03:00
foxydevloper 07a8f0fe38 Name nodes added from drag & drop by `name_casing` 2021-07-29 00:29:24 -04:00
Michael Alexsander 79fc188fc4 Multiple cosmetic fixes for embedded windows 2021-07-27 23:55:06 -03:00
Rémi Verschelde fab3412139
Merge pull request #50899 from akien-mga/refref
Use Ref<T> references as iterators where relevant
2021-07-26 19:45:04 +02:00
Rémi Verschelde 92299989bd
Use Ref<T> references as iterators where relevant
And const when possible.
2021-07-26 19:27:11 +02:00
Aaron Franke 4ecb6fba80
Use doubles for time everywhere in Timer/SceneTree 2021-07-26 02:00:48 -04:00
Rémi Verschelde ac3322b0af
Use const references where possible for List range iterators 2021-07-25 12:22:25 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
kobewi 8793ec4564 Show tooltips even when paused or time_scale is 0 2021-07-23 17:49:30 +02:00
Michael Alexsander a690cd9251 Make `MenuButton`'s `switch_on_hover` work again 2021-07-22 14:27:30 -03:00
Hugo Locurcio 4bd5e4fd9b
Use the standard C `INFINITY` and `NAN` constants directly
The `Math_INF` and `Math_NAN` defines were just aliases for those
constants, so we might as well use them directly.

Some portions of the code were already using `INFINITY` directly.
2021-07-21 10:41:08 +02:00
Rémi Verschelde c82daaed48
Merge pull request #38317 from verdog/get-cam-2d-4.0
add viewport.get_camera_2d()
2021-07-20 22:19:06 +02:00
Rémi Verschelde 693f9b4e20
Merge pull request #50655 from JFonS/sname_opt
Editor StringName and Viewport optimizations
2021-07-20 21:49:32 +02:00
Joan Fons a6adb58493 Editor StringName and Viewport optimizations
* Added explicit return type to the SNAME macro.
* Add some extra SNAME usages.
* Change some ClassDB methods to use const StringName & arguments.
* Cache the Window parent in Control because it's used in
  is_layout_rtl(), which is called often.
* Only enable internal processing for viewports that need it.
* Change CanvasItem::group to be a StringName because it's only used as
  that.
2021-07-20 20:35:41 +02:00
Rémi Verschelde 394191c02f
Merge pull request #50605 from Calinou/tweak-shader-code-style
Use C++11 raw literals for shader code to improve readability
2021-07-20 10:05:13 +02:00
Rémi Verschelde b4baec08cf
Merge pull request #50206 from groud/undoredo_increase_args_count
Increase the number of arguments accepted by UndoRedo methods
2021-07-20 09:50:01 +02:00
Rémi Verschelde 855c7c7414
Merge pull request #50566 from reduz/optimize-stringname-usage
Optimize StringName usage
2021-07-19 15:20:25 +02:00
Rémi Verschelde 95def293a6
Merge pull request #48186 from EricEzaM/PR/tooltip-improvements
Made default tooltips (non-custom ones) disappear on mouse enter.
2021-07-19 09:02:06 +02:00
Hugo Locurcio abc38b8d66
Use C++11 raw literals for shader code to improve readability
In files that have lots of branching, `\t` was replaced with a
tab character instead.
2021-07-19 08:19:50 +02:00
reduz 6631f66c2a Optimize StringName usage
* Added a new macro SNAME() that constructs and caches a local stringname.
* Subsequent usages use the cached version.
* Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time.
* Replaced all theme usages by this new macro.
* Replace all signal emission usages by this new macro.
* Replace all call_deferred usages by this new macro.

This is part of ongoing work to optimize GUI and the editor.
2021-07-18 21:20:02 -03:00
Hugo Locurcio 523d6b2ae8
Merge pull request #47395 from sygi/shape_idx_collision
Add shape_idx to CollisionObject2D mouse_entered signal
2021-07-16 19:05:08 +02:00
Rémi Verschelde f79e79d479
Merge pull request #38819 from EricEzaM/improve-to_string-for-nodes
Added Node name to print() of all Nodes by making to_string() in Object virtual, so it can be overriden in C++.
2021-07-15 15:11:21 +02:00
Eric M 3ca25ffe8a Added Node name to print() when printing Nodes. 2021-07-15 21:48:58 +10:00
Rémi Verschelde 79137a0260
Merge pull request #50299 from YeldhamDev/window_wrap_controls_fix
Fix `Window`'s `wrap_controls` not actually doing anything
2021-07-13 18:04:33 +02:00
Yuri Sizov 4ee0e6ddf5 Add type variations to Theme 2021-07-13 02:26:28 +03:00
Fabio Alessandrelli 88d68346ee [Net] Rename NetworkedMultiplayerPeer to MultiplayerPeer. 2021-07-12 16:36:34 +02:00
Fabio Alessandrelli 31142ac3ee [Net] Remove most multiplayer hooks from SceneTree.
Use `multiplayer` or `get_multiplayer()` instead of `get_tree()`.
2021-07-12 15:28:01 +02:00
Hugo Locurcio a2d5f191d8
Merge pull request #48622 from Geometror/reimplement-disableable-vsync 2021-07-10 01:02:23 +02:00
Michael Alexsander fe5605334a Fix `Window`'s `wrap_controls` not actually doing anything 2021-07-08 20:06:16 -03:00
Rémi Verschelde 48a5226829
Merge pull request #50193 from reduz/fix-command-queue-crash
Fix Command Queue Crash
2021-07-07 16:36:13 +02:00
reduz d41e3f9aeb Fix Command Queue Crash
* No longer allow sending an object (texture) to the server as material parameter
* Keep a parameter cache locally in ShaderMaterial
2021-07-07 10:57:56 -03:00
Rémi Verschelde f50a866335
Merge pull request #50215 from Calinou/improve-node-configuration-warning-display
Format node configuration warnings as a bullet point list
2021-07-06 23:07:16 +02:00
Hugo Locurcio 730ffcf65d
Format node configuration warnings as a bullet point list
This makes multiple warnings easier to distinguish from each other.
2021-07-06 19:36:40 +02:00
Gilles Roudière 2f9a0268dd Increase the number of arguments accepted by UndoRedo methods 2021-07-06 18:52:28 +02:00
Hendrik Brucker 043ae91560 Restructure and reimplement vsync options
-Add a v-sync mode setting which allows to choose between DISABLED, ON, ADAPTIVE and MAILBOX
-Removed the V-Sync via Compositor option
2021-07-06 16:34:26 +02:00
Hugo Locurcio 8f7e1b53ff
Allow using ORMMaterial3D by using BaseMaterial3D as a resource hint
Previously, only StandardMaterial3D could be defined as an alternative
to ShaderMaterial.

This also reorders the CanvasItemMaterial property hints to follow
alphabetical order (which is enforced by the inspector).
2021-07-04 17:49:36 +02:00
Josh Chandler 879f84d8f8 add viewport.get_camera_2d()
* there is now a more clear distinction between camera_2d and camera_3d functions in the engine code
* simplified camera2d's exported interface - now everything happens directly with the 'current' variable and make_current and clear_current are no longer exposed- there were some situations where calling one instead of set_current would result in incomplete results
* rebased to current godot master
2021-07-03 15:08:17 -04:00
reduz 6c55d2aad2 Fix Render Info
* Fixed and redone the process to obtain render information from a viewport
* Some stats, such as material changes are too difficult to guess on Vulkan, were removed.
* Separated visible and shadow stats, which causes confusion.
* Texture, buffer and general video memory can be queried now.
* Fixed the performance metrics too.
2021-07-03 10:15:04 -03:00
Rémi Verschelde a8fb450b3c
Merge pull request #50092 from YeldhamDev/window_get_contents_expose
Expose `Window.get_contents_minimum_size()` to scripts
2021-07-02 22:12:11 +02:00
sygi 6f3e7f7cb0 Add mouse_shape_entered and mouse_shape_exited signals to CollisionObject2D.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-07-02 20:50:27 +01:00
Michael Alexsander a829e88ddc Expose `Window.get_contents_minimum_size()` to scripts 2021-07-02 15:35:56 -03:00
Aaron Franke 2508fd0533
Use PROPERTY_USAGE_NONE instead of 0 for no property usage
Also use const more often.
2021-07-01 14:13:27 -04:00
Rémi Verschelde 915344fe76
Merge pull request #49834 from nekomatata/physics-disable-modes
Add support for controlling physics nodes' behavior when disabled
2021-06-30 20:36:36 +02:00
Rémi Verschelde a02620f3a5
Merge pull request #50009 from reduz/fix-suffixes-and-degrees
Fix editor suffixes and degrees conversion
2021-06-30 18:47:40 +02:00
PouleyKetchoupp 5cbdc7a0ac Add support for controlling physics nodes' behavior when disabled
New property disable_mode to set different behaviors:
Remove: remove from physics simulation
MakeStatic: change body mode to static (doesn't affect area and soft body)
KeepActive: do nothing

Extra change:
Handle disable/enable node state with specific notifications, in order
to differentiate global pause from disabled nodes.
2021-06-30 09:20:44 -07:00
reduz 75688772b3 Fix editor suffixes and degrees conversion
* Functions to convert to/from degrees are all gone. Conversion is done by the editor.
* Use PROPERTY_HINT_ANGLE instead of PROPERTY_HINT_RANGE to edit radian angles in degrees.
* Added possibility to add suffixes to range properties, use "min,max[,step][,suffix:<something>]" example "0,100,1,suffix:m"
* In general, can add suffixes for EditorSpinSlider
Not covered by this PR, will have to be addressed by future ones:

* Ability to switch radians/degrees in the inspector for angle properties (if actually wanted).
* Animations previously made will most likely break, need to add a way to make old ones compatible.
* Only added a "px" suffix to 2D position and a "m" one to 3D position, someone needs to go through the rest of the engine and add all remaining suffixes.
* Likely also need to track down usage of EditorSpinSlider outside properties to add suffixes to it too.
2021-06-30 12:38:25 -03:00
reduz d07f7c8d25 Fixes to 2D viewport
* Editor 2D viewport now uses embedded subwindows (windows no longer pop up)
* Restored the ability to disable 3D on the 2D viewport (makes 3D not display on 2D when there is a camera on the scene)
2021-06-29 17:40:45 -03:00
Rémi Verschelde 8fb7a9f023
Merge pull request #49719 from LightningAA/rename-node-is-ancestor-of
Rename `is_a_parent_of()` to `is_ancestor_of()`
2021-06-29 12:07:25 +02:00
kobewi 452e10ba7b Remove clips_input() method and use clip_content 2021-06-25 15:46:37 +02:00
Fabio Alessandrelli b00c4a4360 [Net] Makes HTTPClient a custom instance class. 2021-06-23 14:10:45 +02:00
Fabio Alessandrelli 421e771012 [Net] Unify HTTPClient request and request_raw. 2021-06-23 13:53:43 +02:00
Lightning_A 899e5f8685 Rename `is_a_parent_of()` to `is_ancestor_of()` 2021-06-21 08:39:28 -06:00
Aaron Franke 0ce49800ac
Use mouse and joypad enums instead of plain integers
Also MIDIMessage
2021-06-20 11:54:24 -04:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Rémi Verschelde 9c182b0f45
Merge pull request #41794 from KoBeWi/shiny_new_tweens 2021-06-20 00:35:28 +02:00
Tomasz Chabora 900b2e0fdc Complete rewrite of Tweens
* Tweens were changed from Node to RefCounted. New API is inspired by DOTween.
* Tweens are created and managed by SceneTree, similar to SceneTreeTimer, which makes them ultra cheap to use a lot.
* Animating with Tweens is done by creating sequences of Tweeners. You create them from code and they autostart by default (fire-and-forget).
* There are 4 Tweeners that cover the former Tween functionality: PropertyTweener, IntervalTweener, CallbackTweener and MethodTweener.
* The methods were simplified a lot. Long argument lists are replaced with chained calls on Tweens and Tweeners.
* Tweeners by default execute in sequence, so it's easy to create complex chained animations.
* You can bind a Tween to a node. Tween will be removed automatically when the bound node is freed.
2021-06-19 12:08:50 +02:00
Aaron Franke 8b692e8872
Add PROPERTY_USAGE_NONE and use it 2021-06-17 19:10:26 -04:00
reduz 94d31ac327 Implement animation slice drawing in CanvasItem
* Added a function to ignore subsequent commands if they don't fall within the slice.
* This will be used by the new TileMap to properly provide animated tiles.
2021-06-17 12:42:27 -03:00
reduz 6e98c4cd50 Refactor VisibilityNotifier3D
* This is the 3D counterpart to #49632
* Implemented a bit different as 3D works using instancing

After merged, both 2D and 3D classes will most likely be renamed in a separate PR to DisplayNotifier2D/3D.
2021-06-16 18:50:39 -03:00
reduz 38d164c74b Refactor VisibilityNotifier
* Works from RenderinServer
* Accurately tells when on or off-scren, its no longer approximate.
* VisibilityEnabler also simplified to use the process mode instead.
2021-06-16 10:48:57 -03:00
Rémi Verschelde 7a85e95a4b
Merge pull request #48998 from kleonc/Node-add_child-fix
Node.add_child Check for cyclic dependency
2021-06-15 16:27:18 +02:00
Haoyu Qiu 80927b7a81 Fix Viewport crashes when not in tree 2021-06-13 12:51:26 +08:00
Pedro J. Estébanez 04688b92ff Rename Reference to RefCounted 2021-06-11 18:48:42 +02:00
Rémi Verschelde 9e328bb5b7
Core: Move DirAccess and FileAccess to `core/io`
File handling APIs are typically considered part of I/O, and we did have most
`FileAccess` implementations in `core/io` already.
2021-06-11 14:52:39 +02:00
Rémi Verschelde 896aa94283
Merge pull request #49221 from Faless/mp/4.x_rpc_refactor
[Net] Refactor RPCs, remove RSETs
2021-06-07 17:00:08 +02:00
Rémi Verschelde aa251c310a
Merge pull request #49325 from reduz/rename-gi-classes
Rename GI Classes
2021-06-06 09:50:06 +02:00
TwistedTwigleg 8aa3c2f091 New and improved IK system for Skeleton2D
This PR and commit adds a new IK system for 2D with the Skeleton2D node
that adds several new IK solvers, a way to control bones in a Skeleton2D
node similar to that in Skeleton3D. It also adds additional changes
and functionality.

This work was sponsored by GSoC 2020 and TwistedTwigleg.

Full list of changes:
* Adds a SkeletonModifier2D resource
  * This resource is the base where all IK code is written and executed
  * Has a function for clamping angles, since it is so commonly used
  * Modifiers are unique when duplicated so it works with instancing
* Adds a SkeletonModifierStack2D resource
  * This resource manages a series of SkeletonModification2Ds
  * This is what the Skeleton2D directly interfaces with to make IK possible
* Adds SkeletonModifier2D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in its own file
  * There is also a SkeletonModifier2D resource that acts as a stack for using multiple stacks together
* Adds a PhysicalBone2D node
  * Works similar to the PhysicalBone3D node, but uses a RigidBody2D node
* Changes to Skeleton2D listed below:
  * Skeleton2D now holds a single SkeletonModificationStack2D for IK
  * Skeleton2D now has a local_pose_override, which overrides the Bone2D position similar to how the overrides work in Skeleton3D
* Changes to Bone2D listed below:
  * The default_length property has been changed to length. Length is the length of the bone to its child bone node
  * New bone_angle property, which is the angle the bone has to its first child bone node
  * Bone2D caches its transform when not modified by IK for IK interpolation purposes
  * Bone2D draws its own editor gizmo, though this is stated to change in the future
* Changes to CanvasItemEditor listed below:
  * Bone2D gizmo drawing code removed
  * The 2D IK code is removed. Now Bone2D is the only bone system for 2D
* Transform2D now has a looking_at function for rotating to face a position
* Two new node notifications: NOTIFICATION_EDITOR_PRE_SAVE and NOTIFICATION_EDITOR_POST_SAVE
  * These notifications only are called in the editor right before and after saving a scene
  * Needed for not saving the IK position when executing IK in the editor
* Documentation for all the changes listed above.
2021-06-05 15:19:51 -04:00
reduz 32625145c8 Rename GI Classes
* GIProbe is now VoxelGI
* BakedLightmap is now LightmapGI

As godot adds more ways to provide GI (as an example, SDFGI in 4.0), the different techniques (which have different pros/cons) need to be properly named to avoid confusion.
2021-06-05 09:28:56 -03:00
Aaron Franke 08a85352fb
Rename Variant TRANSFORM to TRANSFORM3D
Also _transform to _transform3d
2021-06-03 07:30:01 -04:00
Aaron Franke de3f6699a5
Rename Transform to Transform3D in core 2021-06-03 07:30:01 -04:00
Fabio Alessandrelli d779b5aa3e [Net] Refactor RPCs, remove RSETs
In this PR:
- Removed rset
- rpc_config can now optionally configure transfer mode
  (reliable/unreliable/ordered) and channel (channels are not actually
  implemented yet.)
- Refactor how the RPC id is computed to minimize the logic in Node and
  scripts that now only needs a single `get_rpc_methods` function.
2021-06-01 17:24:21 +02:00
Fabio Alessandrelli 507a9beca1 [Net] Fix HTTPRquest store_buffer error.
HTTPRquest no longer call store_buffer/append_array when the chunk size
is 0.
2021-05-31 15:42:31 +02:00
Hugo Locurcio 87f503310b
Tweak dozens of editor property hints for consistency
- Update Viewport MSAA property hints to match the currently
  exposed values.
- Add some performance hints to property hints.
2021-05-25 02:50:35 +02:00
kleonc 81388db8a7 Node::add_child Check for cyclic dependency
Node Replace string addition with vformat()

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-05-24 21:53:11 +02:00
Rémi Verschelde 4219a4cb6f
Fix typos with codespell
Using codespell 2.0.0.

Method:
```
$ cat > ../godot-word-whitelist.txt << EOF
ang
curvelinear
dof
doubleclick
fave
findn
GIRD
leapyear
lod
merchantibility
nd
numer
ois
ony
que
seeked
synching
te
uint
unselect
webp
EOF

$ codespell -w -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"
$ git diff // undo unwanted changes
```
2021-05-20 12:38:56 +02:00
Hugo Locurcio bbdfb715a6
Use a non-zero default size for SubViewports
This makes viewports visible out of the box.
2021-05-18 18:51:39 +02:00
Rémi Verschelde 66dac8bda0
Merge pull request #47544 from pycbouh/control-expose-theme-type 2021-05-18 10:52:51 +02:00
Yuri Sizov 9eaa139c1f Add theme_custom_type property to Control and Window 2021-05-17 17:20:42 +03:00
Lightning_A 97fecd1b69 Rename "Control" key to "Ctrl" and add "_pressed" suffix to all InputEventWithModifiers properties/methods 2021-05-07 14:00:50 -06:00
Hugo Locurcio cf1e30a2ed
Tweak CanvasItem/material sampling property hints for readability
The "Anisotropic" term is abbreviated as spelling it out would cause
the PopupMenu to overflow the editor window when using the default
inspector width.
2021-05-06 03:05:37 +02:00
Rémi Verschelde 3fea170772
Merge pull request #48182 from EricEzaM/PR/fix-viewport-not-updating-mouse-pos-on-click 2021-05-04 09:25:58 +02:00
Fabio Alessandrelli 8a2a446174 [Net] Fix rpc/rpc_id error message.
The check was updated to expect a `StringName` instead of a `String` but
the error message still reported it should be a `String`.
2021-05-03 15:45:36 +02:00
Fabio Alessandrelli 015fc2ad4f
Merge pull request #48205 from Faless/net/4.x_url_parsing
[Net] Implement String::parse_url for parsing URLs.
2021-05-03 13:55:57 +02:00
Bastiaan Olij e0bdf40d15 Move XR flag from subviewport into viewport 2021-05-01 19:58:11 +10:00
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde 8247667a3e
Core: Drop custom `copymem`/`zeromem` defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Fabio Alessandrelli 3bb40669d5 [Net] Implement String::parse_url for parsing URLs.
Splits the URL into (scheme, host, port, path).
Supports both literal IPv4 and IPv6.
Strip credentials when present (e.g. http://user:pass@example.com/).

Use that function in both HTTPRequest and WebSocketClient.
2021-04-26 09:55:24 +02:00
EricEzaM 5346bb043a Made default tooltips (non-custom ones) disappear on mouse enter.
Matches 3.X behaviour, but does not break custom tooltips where mouse interaction is needed.
2021-04-26 00:55:12 +10:00
EricEzaM 7c9bd81578 Fix viewport not updating mouse pos on click.
Closes #47594. See further discussion there. Thanks to @Bhu1-V for the investigation which led to this fix.
2021-04-25 22:44:10 +10:00
jfons 4d9d99bb82 Implement occlusion culling
Added an occlusion culling system with support for static occluder meshes.
It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`.

Occluders are defined via the new `Occluder3D` resource and instanced using the new
`OccluderInstance3D` node. The occluders can also be automatically baked from a
scene using the built-in editor plugin.
2021-04-23 21:45:23 +02:00
Tomasz Chabora 497c3f97b2 Call randomize() automatically 2021-04-22 21:13:43 +02:00
Nathan Franke 2a8c59c171
Use Array for node configuration warnings
Previously, the warnings were passed as a string and delimitation of which were hard coded at each implementation.
2021-04-11 23:25:38 -05:00
Rémi Verschelde 0283bc8fd5
Merge pull request #44456 from univeous/allow_input_echo_in_ui_focus
allow input echo when changing ui focus
2021-04-08 13:28:43 +02:00
Rémi Verschelde d83761ba80
Style: Apply clang-tidy's `readability-braces-around-statements` 2021-04-05 14:09:59 +02:00
Rémi Verschelde 9bbe51dc27
Style: Apply clang-tidy's `modernize-use-nullptr` 2021-04-05 14:05:07 +02:00
Rafał Mikrut 504bc5cc67 Fix crashes in *_input functions 2021-04-05 08:52:21 +02:00
Rémi Verschelde 4b6e9f3157
Merge pull request #46991 from madmiraal/rename-invert-reverse
Rename Array.invert() to Array.reverse()
2021-04-01 13:32:22 +02:00
Marcel Admiraal fd30c36985 Rename Texture.get_data() to get_image() 2021-03-28 13:00:46 +01:00
Aaron Franke 10d7fccb54
Rename ButtonList enum and members to MouseButton 2021-03-23 07:13:23 -04:00
Rémi Verschelde 6fa24729ae
Merge pull request #45571 from aaronfranke/node2d-real_t
Use real_t in 2D nodes
2021-03-23 00:10:53 +01:00
Rémi Verschelde 4bacb86f56
Merge pull request #46735 from fabriceci/fix-dialog-translation
Fix translations update in window & Dialogs (AcceptDialog/ConfirmationDialog/FileDialog) (Fix 39320, 39258 &  45887)
2021-03-23 00:03:31 +01:00
Juan Linietsky 97a3a66220 Improved 3D Scene Importer
* Added option for importers to show an Advanced settings dialog
* Created advanced settings dialog for Scene Importer
* Cleaned up importers (remove many old/unused options)
* Added the ability to customize every node, material, mesh and animation individually
* Saving to animations and meshes to files is now a manual process, making it more predictable
* Added the ability for materials to be replaced by external files (or to be made external, up to you).
* When doubleclicking an impoted scene in the filesystem dock, it automatically shows the import settings instead of asking to open it.

WARNING: Lightmap UV unwrap is not working, it needs to be re-made.
2021-03-22 12:16:40 -03:00
Marcel Admiraal 755c70b871 Rename Array.invert() to Array.reverse()
Does the same internally for List and Vector<>, which includes all
PackedArray types.
2021-03-21 10:20:08 +00:00
Nathan Franke 3c921ba801
Add Root Null Check 2021-03-20 18:48:41 -05:00
Aaron Franke 6811a45b59
Use real_t in non-physics 2D nodes 2021-03-19 13:04:45 -04:00