summaryrefslogtreecommitdiffstats
path: root/scene/main/scene_tree.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add a new HashMap implementationreduz2022-05-121-7/+5
| | | | | | | | | | | | | | | | | 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<>
* Make `{call,set,notify}_group()` immediate by defaultHugo Locurcio2022-05-051-12/+12
| | | | | | | This results in less surprising behavior out of the box. Internal usages were modified to keep the existing behavior identical there.
* Small improvements to get_first_node_in_group()kobewi2022-04-291-3/+3
|
* Merge pull request #60331 from KoBeWi/tween_static()Rémi Verschelde2022-04-271-3/+1
|\
| * Make Tween.interpolate_value() statickobewi2022-04-171-3/+1
| |
* | [Net] Allow branch-specific MultiplayerAPIs.Fabio Alessandrelli2022-04-261-12/+51
|/ | | | | | | | | 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.
* Make FileAccess and DirAccess classes reference counted.bruvzg2022-04-111-1/+1
|
* [Input] Add extra `shortcut_input` input processing step to process Unicode ↵bruvzg2022-04-051-0/+3
| | | | character input with Alt / Ctrl modifiers, after processing of shortcuts.
* Make vararg method bind no return and returnPierre-Thomas Meisels2022-03-301-11/+9
| | | | | | | | | | | | | | 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
* Revert "Update mouse cursor shape after changes"Markus Sauermann2022-03-101-1/+0
| | | | This reverts commit 0fce98b4b5f568298477b175c70510924793f6b0.
* Remove VARIANT_ARG* macrosreduz2022-03-091-34/+15
| | | | | | | | * 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.
* Update mouse cursor shape after changesMarkus Sauermann2022-03-091-0/+1
| | | | This fixes some cases where the mouse cursor shape did not change automatically, but instead required a MouseMove to update.
* Various code and documentation improvementskobewi2022-03-051-1/+1
|
* Remove files_dropped signal from SceneTreeIgor Kordiukiewicz2022-02-281-2/+0
|
* Use `switch` consistently in `_notification` (`scene` folder)Rémi Verschelde2022-02-151-6/+5
|
* Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker2022-02-121-0/+3
|
* [Net] Move RPC, Node cache out of MultiplayerAPI.Fabio Alessandrelli2022-02-051-1/+1
| | | | | | | | | 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.
* [Net] New replication interface, spawner and synchronizer nodes.Fabio Alessandrelli2022-02-041-0/+1
| | | | | | | | | | | | | | | | | | 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.
* Vectors: Use clear() and has().Anilforextra2022-02-021-1/+1
| | | | | | Use clear() instead of resize(0). Use has() instead of "find(p_val) != -1".
* Fix main window title translation.bruvzg2022-01-211-0/+2
|
* Fix Tween pause behaviorkobewi2022-01-091-1/+1
|
* Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde2022-01-041-2/+2
|\
| * Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio2021-12-291-2/+2
| | | | | | | | | | This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
* | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
|/ | | | Happy new year to the wonderful Godot community!
* Replace String comparisons with "", String() to is_empty()Nathan Franke2021-12-091-4/+4
| | | | | | Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
* Delete objects enqueued for deletion during SceneTree destructionkleonc2021-10-081-1/+5
|
* Rename Node's `filename` property to `scene_file_path` for clarityHugo Locurcio2021-09-301-1/+1
|
* Merge pull request #49819 from nekomatata/fix-process-mode-inheritRémi Verschelde2021-09-171-0/+1
|\
| * Fix process mode update when mode owner is set to InheritPouleyKetchoupp2021-09-061-0/+1
| | | | | | | | | | | | | | | | | | | | 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.
* | Merge pull request #51237 from KoBeWi/tween_fix()Rémi Verschelde2021-09-141-1/+1
|\ \ | | | | | | Various fixes to Tween code
| * | Various fixes to Tween codekobewi2021-08-061-1/+1
| | |
* | | Merge pull request #49063 from Calinou/remove-16x-msaaRémi Verschelde2021-09-131-1/+1
|\ \ \ | | | | | | | | Remove 16× MSAA support due to driver bugs and low performance
| * | | Remove 16× MSAA support due to driver bugs and low performanceHugo Locurcio2021-08-251-1/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* / | Add Listener2Dkobewi2021-08-311-9/+0
|/ /
* | Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz2021-08-231-12/+11
| | | | | | | | | | | | | | | | * `_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.
* | Revert "Add Node processing and physics processing cumulative (as opposed to ↵Juan Linietsky2021-08-221-2/+0
| | | | | | | | delta) time"
* | Add Node processing and physics processing cumulative (as opposed to delta) ↵Mohammad Khashashneh2021-08-171-0/+2
| | | | | | | | time.
* | Disable Node3D when compiling without 3D and fix disable_3d optionAaron Franke2021-08-131-5/+8
| |
* | Use the Unicode multiplication symbol where relevantHugo Locurcio2021-08-121-1/+1
| |
* | Organize methods in Viewport and explicitly name 3D methods with 3DAaron Franke2021-08-101-1/+1
|/
* Merge pull request #50899 from akien-mga/refrefRémi Verschelde2021-07-261-4/+4
|\ | | | | Use Ref<T> references as iterators where relevant
| * Use Ref<T> references as iterators where relevantRémi Verschelde2021-07-261-4/+4
| | | | | | | | And const when possible.
* | Use doubles for time everywhere in Timer/SceneTreeAaron Franke2021-07-261-6/+6
|/
* Use const references where possible for List range iteratorsRémi Verschelde2021-07-251-2/+2
|
* Use C++ iterators for Lists in many situationsAaron Franke2021-07-231-8/+7
|
* Show tooltips even when paused or time_scale is 0kobewi2021-07-231-1/+14
|
* Merge pull request #50655 from JFonS/sname_optRémi Verschelde2021-07-201-6/+6
|\ | | | | Editor StringName and Viewport optimizations
| * Editor StringName and Viewport optimizationsJoan Fons2021-07-201-6/+6
| | | | | | | | | | | | | | | | | | | | | | * 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.
* | Merge pull request #50206 from groud/undoredo_increase_args_countRémi Verschelde2021-07-201-6/+6
|\ \ | |/ |/| Increase the number of arguments accepted by UndoRedo methods
| * Increase the number of arguments accepted by UndoRedo methodsGilles Roudière2021-07-061-6/+6
| |