summaryrefslogtreecommitdiff
path: root/scene/main/scene_tree.cpp
AgeCommit message (Collapse)Author
2022-10-31Merge pull request #67578 from KoBeWi/GEDITORRémi Verschelde
Unify usage of GLOBAL/EDITOR_GET
2022-10-27Fix calling `_call_shortcut_input` on a node that has been removedRindbee
Nodes may have been deleted by shortcuts. For example, when switching scenes with `Ctrl` + `Tab` / `Ctrl` + `Shift` + `Tab`, some controls will be deleted and recreated.
2022-10-18Unify usage of GLOBAL/EDITOR_GETkobewi
2022-10-13Move Shortcut Context to Control and ensure that `shortcut_input` adheres to ↵Eric M
contexts. Also ensure that controls with no context are only triggered AFTER nodes which do have a context.
2022-10-09Add a project setting to make the root viewport transparentHugo Locurcio
This allows recording videos with a transparent background without having to create a script.
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-09-28Merge pull request #58995 from Sauermann/fix-mouse-cursor-change-2Rémi Verschelde
Update mouse cursor shape after changes
2022-09-26Change time parameters and variables to double typeDave Palais
Addresses #65313
2022-09-18Update mouse cursor shape after changesMarkus Sauermann
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-09-08Merge pull request #63596 from Jayman2000/issue-27640Rémi Verschelde
Rename `change_scene()` and `change_scene_to()`
2022-09-07Rename change_scene() and change_scene_to()Jason Yundt
Before this change, the SceneTree had methods named “change_scene” and “change_scene_to”. One of them accepted a String as a parameter and the other accepted a PackedScene, but you couldn’t tell which one was which just by looking at their names. This change renames those two methods to “change_scene_to_file” and “change_scene_to_packed”. These new names came from this suggestion [1]. These new names make the difference between the two methods more clear and hint at the fact that there’s more than one change_scene method. [1]: <https://github.com/godotengine/godot/issues/27640#issuecomment-1081870955> Fixes #27640.
2022-09-07Remove / Replace old Navigation Debug Visualizationsmix8
- removes / replaces leftovers from old navigation debug code - cleanes SceneTree and ProjectSettings from old navigation debug
2022-09-03Some improvements to the SceneTreeTimerXwdit
2022-08-31Implement Physical Light Units as an optional setting.clayjohn
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value. In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-30Merge pull request #63003 from Geometror/msaa-2dRémi Verschelde
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-08-23Replace Array return types with TypedArray 2kobewi
2022-08-13Implement MSAA for 2D [Vulkan only]Hendrik Brucker
2022-07-26[Net] Modularize multiplayer, expose MultiplayerAPI to extensions.Fabio Alessandrelli
- 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-17Adding Variable Rate Shading support to GodotBastiaan Olij
Improve GI renderer and add VRS support Implement render device has_feature and move subgroup settings to limit_get
2022-07-13Rename soft shadow quality project settings for easier searchingHugo Locurcio
`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-01Add an underscore to internal group names as per engine policyHugo Locurcio
This also adds `SNAME()` macros where relevant to improve performance.
2022-06-29Merge pull request #62084 from smix8/path_debug_options_4.xRémi Verschelde
Add Path2D/3D debug options
2022-06-20Add Path2D/3D debug optionssmix8
Add Path2D/3D debug options.
2022-06-19Add explicit deferred flagsmarkdibarry
2022-06-12Mark some common project settings as basicHugo Locurcio
2022-06-07Initial TAA implementationjfons
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-05-20Merge pull request #61026 from timothyqiu/quit-propRémi Verschelde
Make `auto_accept_quit` and `quit_on_go_back` properties
2022-05-19Use suffixes for units in nodes and resourcesAaron Franke
2022-05-16Replace most uses of Map by HashMapreduz
* 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-14Make auto_accept_quit and quit_on_go_back propertiesHaoyu Qiu
2022-05-12Add a new HashMap implementationreduz
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-05Make `{call,set,notify}_group()` immediate by defaultHugo Locurcio
This results in less surprising behavior out of the box. Internal usages were modified to keep the existing behavior identical there.
2022-04-29Small improvements to get_first_node_in_group()kobewi
2022-04-27Merge pull request #60331 from KoBeWi/tween_static()Rémi Verschelde
2022-04-26[Net] Allow branch-specific MultiplayerAPIs.Fabio Alessandrelli
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-17Make Tween.interpolate_value() statickobewi
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-05[Input] Add extra `shortcut_input` input processing step to process Unicode ↵bruvzg
character input with Alt / Ctrl modifiers, after processing of shortcuts.
2022-03-30Make vararg method bind no return and returnPierre-Thomas Meisels
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-10Revert "Update mouse cursor shape after changes"Markus Sauermann
This reverts commit 0fce98b4b5f568298477b175c70510924793f6b0.
2022-03-09Remove VARIANT_ARG* macrosreduz
* 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-09Update mouse cursor shape after changesMarkus Sauermann
This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
2022-03-05Various code and documentation improvementskobewi
2022-02-28Remove files_dropped signal from SceneTreeIgor Kordiukiewicz
2022-02-15Use `switch` consistently in `_notification` (`scene` folder)Rémi Verschelde
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-02-05[Net] Move RPC, Node cache out of MultiplayerAPI.Fabio Alessandrelli
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-04[Net] New replication interface, spawner and synchronizer nodes.Fabio Alessandrelli
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-02Vectors: Use clear() and has().Anilforextra
Use clear() instead of resize(0). Use has() instead of "find(p_val) != -1".