summaryrefslogtreecommitdiff
path: root/scene/main
AgeCommit message (Collapse)Author
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-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-10Merge pull request #51591 from Calinou/call-group-default-immediateRémi Verschelde
Make `{call,set,notify}_group()` immediate by default
2022-05-06Cleanup metadata usagekobewi
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-05-03Implement missing Node & Resource placeholdersreduz
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-03Merge pull request #60627 from aaronfranke/rename-elementsRémi Verschelde
Rename Transform2D and Basis `elements` to `columns` and `rows` respectively
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
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-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
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-04-29Small improvements to get_first_node_in_group()kobewi
2022-04-29Rename Transform2D "elements" to "columns"Aaron Franke
2022-04-27Merge pull request #60331 from KoBeWi/tween_static()Rémi Verschelde
2022-04-27Merge pull request #58383 from bruvzg/no_inv_window_placementRé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-26Merge pull request #60511 from akien-mga/readd-find_nodeRémi Verschelde
2022-04-25Merge pull request #60261 from fire-forge/theme-prop-renamesRémi Verschelde
2022-04-25Node: Re-add `find_node` as `find_child`, improve docsRémi Verschelde
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-25Implement Scene Unique Nodesreduz
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-23Rename theme properties to include underscoresFireForge
- 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-20Avoid setting sub-window or started project window positions, if it's ↵bruvzg
impossible to get screen rect.
2022-04-20Merge pull request #60175 from Geometror/visual-shader-vector4Yuri Rubinsky
2022-04-17Make Tween.interpolate_value() statickobewi
2022-04-16Fix the Audio Listener 3D property not being grouped with 2D in ViewportHugo Locurcio
2022-04-12Merge pull request #60081 from fire-forge/input-event-editor-fixRémi Verschelde
Redesign InputEvent editor and fix `Window.popup_centered()` rect calculation.
2022-04-12Add Vector4 to VisualShaderHendrik Brucker
2022-04-12Merge pull request #60171 from Chaosus/restore_aaYuri Rubinsky
2022-04-12Redesign InputEvent editor pluginFireForge
- Use vertical layout and add text wrapping - Fix Window.popup_centered() rect calculation
2022-04-12Merge pull request #60069 from Calinou/fsr-fix-editor-enumRémi Verschelde
2022-04-12Restore antialiasing for `draw_line`Yuri Roubinsky
2022-04-12Narrow FileAccess scope to prevent deadlocks.bruvzg
2022-04-11Merge pull request #54191 from Ev1lbl0w/bugfix-window_popup_ratioRémi Verschelde
2022-04-11Merge pull request #59440 from bruvzg/fd_ref_countedRémi Verschelde
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-11Improvements to files_dropped signalkobewi
2022-04-10Clamp ratio from popup_centered_ratioEv1lbl0w
2022-04-09Fix 3D scaling enum size in the editor and improve descriptionsHugo Locurcio
2022-04-07Merge pull request #59788 from Vitika9/59711Rémi Verschelde
2022-04-06Fix some issues found by cppcheck.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-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-04-01Removed show_on_top property in CanvasItemVitika9
2022-03-31Merge pull request #59709 from Sauermann/fix-dragndrop-subviewport-transformRémi Verschelde
2022-03-31Merge pull request #59590 from Calinou/rename-print-stray-nodesRémi Verschelde
2022-03-31Rename `Node.print_stray_nodes()` to `Node.print_orphan_nodes()`Hugo Locurcio
The "orphan" terminology is already used elsewhere.
2022-03-31Fix Drag n Drop Transform in main embedding windowMarkus Sauermann
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-30Merge pull request #59308 from Sauermann/fix-viewport-warp-mouseRémi Verschelde
2022-03-30Merge pull request #59568 from Sauermann/fix-focus-out-notificationRémi Verschelde
Send a focus-out notification when opening a Window Manager Popup
2022-03-29Update sub-viewport canvas items to ensure oversampling is applied correctly.bruvzg
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.