Commit Graph

304 Commits

Author SHA1 Message Date
08508d2e01 Merge pull request #99700 from hpvb/scene_tree_editor_performance
Improve Scene Tree editor performance
2024-12-16 17:16:00 +01:00
6f7525c396 Improve Scene Tree editor performance
We now cache the Node*<>TreeItem* mapping in the SceneTreeEditor. This
allows us to make targeted updates to the Tree used to display the scene
tree in the editor.

Previously on almost all changes to the scene tree the editor would
rebuild the entire widget, causing a large number of deallocations an
allocations. We now carefully manipulate the Tree widget in-situ saving
a large number of these allocations.

In order to know what Nodes need to be updated we add a
editor_state_changed signal to Node, this is a TOOLS_ENABLED,
editor-only signal fired when changes to Node happen that are relevant
to editor state.

We also now make sure that when nodes are moved/renamed we don't check
expensive properties that cannot contain NodePaths. This saves a lot of
time when SceneTreeDock renames a node in a scene with a lot of
MeshInstances. This makes renaming nodes go from ~27 seconds to ~2
seconds on large scenes.

SceneTreeEditor instances will now also not do all of the potentially
expensive update work if they are invisible. This behavior is turned off
by default so it won't affect existing users. This change allows the
editor to only update SceneTreeEditors that actually in view. In
practice this means that for most changes instead of updating 6
SceneTreeEditors we only update 1 instantly, and the others only when
they become visible.

There is definitely more that could be done, but this is already a
massive improvement. In complex scenes we see an improvement of 10x,
things that used to take ~30 seconds now only take 2.

This fixes #83460

I want to thank KoBeWi, TokisanGames, a-johnston, aniel080400 for
their tireless testing. And AeioMuch for their testing and providing a
fix for the hover issue.
2024-12-12 22:47:05 +01:00
e9d343805e Merge pull request #94636 from Calinou/doc-process-delta-low-fps
Document `_process()` and `_physics_process()` delta behavior at low FPS
2024-12-11 17:35:42 -06:00
88e81ee730 Fix various typos and code style issues 2024-11-28 17:40:42 +01:00
e66d9988a6 Merge pull request #95774 from Mickeon/documentation-miscellaneous-oddities
Fix miscellaneous oddities around the class reference
2024-11-12 09:27:47 -06:00
5c65f80199 Update Node.xml: specify that normal processing happens in tree order 2024-10-20 18:41:54 +02:00
c5d147b9b5 Allow configuring which translation domain Object.tr uses 2024-09-17 13:09:44 +08:00
8ebfd89359 Merge pull request #96024 from Ryan-000/expose_get_rpc_config
Expose `get_rpc_config` and `get_node_rpc_config`
2024-09-16 13:34:34 +02:00
8835f326b1 Expose get_rpc_config and get_node_rpc_config
add documentation

Update doc/classes/Node.xml

change name of get_node_rpc_config to get_rpc_config

Co-Authored-By: moondog <159832633+dog-on-moon@users.noreply.github.com>
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
2024-09-04 15:45:22 -04:00
3e86f7b50e In Node.xml mentioned that Node::duplicate also copies children.
The list now uses the Oxford comma.
2024-08-22 18:57:05 +02:00
b8f78b14be Fix miscellaneous oddities around the class reference 2024-08-18 23:18:44 +02:00
c15633139f Document _process() and _physics_process() delta behavior at low FPS 2024-07-24 23:47:42 +02:00
160ac00bdb Update Node docs to change iOS to Android for NOTIFICATION_WM_GO_BACK_REQUEST 2024-07-17 11:41:58 +02:00
9315583af3 Fix mismatched parentheses in class reference 2024-05-30 15:54:53 +08:00
7d03b1de0b Style: Trim trailing whitespace and ensure newline at EOF
Found by apply the file_format checks again via #91597.
2024-05-08 10:12:46 +02:00
0b877a9962 Expose is_part_of_edited_scene() 2024-04-26 11:49:38 +02:00
8d1cb7e74c Add project setting for root node auto translate mode 2024-04-16 11:02:04 +08:00
248e5bfba2 Revert what needs to be reverted 2024-04-10 09:49:30 +08:00
328b00774b Use [codeblock lang=text] more often in class ref 2024-04-08 16:17:50 +02:00
ae472865d0 fix node duplication in update after external changes. 2024-04-03 12:19:38 +02:00
cff7de077b Merge pull request #89838 from Chronos-W/update-shortcut-input-method-doc
Add reference to InputEventJoypadButton in `_shortcut_input` doc
2024-03-26 13:45:35 +01:00
9a439b246a Add reference to InputEventJoypadButton in _shortcut_input doc 2024-03-25 19:38:33 -06:00
0e36df69f9 Merge pull request #89815 from KoBeWi/translates_bananas
Improve some notification and translation docs
2024-03-25 10:42:37 +01:00
83789426cc Improve some notification and translation docs 2024-03-24 15:14:02 +01:00
2ed2ccc2d8 Fixed Timestep Interpolation (2D)
Adds fixed timestep interpolation to the rendering server (2D only).
Switchable on and off with a project setting (default is off).

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-03-23 12:28:36 +01:00
9b5cd8e240 [Doc] Fix some incorrect uses of "children" 2024-02-29 11:52:55 +01:00
07254d9b1b Merge pull request #88443 from Mickeon/documentation-hunting-for-deprecated
Update many Deprecated/Experimental descriptions for consistency
2024-02-20 11:12:07 +01:00
f9a758772a Update many Deprecated/Experimental descriptions for consistency 2024-02-17 21:33:12 +01:00
92fcbe2f5c Revert "Allow configuration warnings to refer to a property"
This reverts commit bf37a9bac6.
2024-02-17 19:04:18 +01:00
7b42c24550 Make auto translation inheritable 2024-02-15 16:51:19 -03:00
af28f87791 Documentation: Add support for deprecated/experimental messages 2024-02-15 15:59:50 +03:00
3a2fb42838 Merge pull request #85100 from ztc0611/fix-ios-focus-mainloop-notifs
Enhance mobile suspend MainLoop notifications
2024-02-14 14:07:54 +01:00
679fa26a99 Merge pull request #86903 from Mickeon/Post-merge-fixes-to-Node-documentation
Post-merge fixes to Node & OS documentation
2024-02-12 13:33:47 +01:00
e26f612f38 Post-merge fixes to Node & OS documentation 2024-02-11 16:44:24 +01:00
5911a12db1 Update class reference to include some keywords
More should be added in future PRs, wherever there is demand.
2024-02-09 18:13:23 +01:00
bf37a9bac6 Allow configuration warnings to refer to a property
This is used by the inspector so it can show a warning icon on
a specific property.
2024-02-08 23:05:20 +01:00
fc7a63cbf3 Enhance mobile suspend MainLoop Notifications 2024-02-04 21:10:06 -05:00
61872e47af Improve Node's documentation on process_mode related members/methods 2024-01-31 23:25:56 +09:00
0de8a736da Allow Node.create_tween() outside SceneTree 2024-01-29 20:18:43 +01:00
f3fc35eb17 Merge pull request #81506 from twobitadder/reparent_keep_owner
Fix `reparent()` losing owner
2024-01-11 17:34:19 +01:00
3c416f3a64 Clarify Node doc: get_child returns null for invalid index 2024-01-07 00:01:03 -04:00
73c5deff76 Merge pull request #82916 from jsjtxietian/update-scene-tree-tooltip-after-editor-description-chnage
Support updating tooltip immediately after editor description change
2024-01-03 15:41:31 +01:00
9561160a6a Merge pull request #80094 from Sauermann/fix-window-sizechange-doc
Explain which nodes receive `NOTIFICATION_WM_SIZE_CHANGED`
2024-01-03 15:40:11 +01:00
4680ced5fa support updating tooltip after editor description change 2023-11-15 14:27:49 +08:00
361aa909da Explain which nodes receive NOTIFICATION_WM_SIZE_CHANGED 2023-11-13 17:32:39 +01:00
b5ca06c9ca Overhaul Node Documentation 2023-11-12 12:10:27 +01:00
ee9c8cb296 Specify the behaviour of get_tree when the node is not in the scene tree 2023-11-10 20:24:53 +01:00
623b905d2e Remove unused NOTIFICATION_NODE_RECACHE_REQUESTED notification 2023-11-06 12:16:32 +01:00
47258411da Add missing word in NOTIFICATION_POST_ENTER_TREE documentation 2023-10-31 09:07:00 +09:00
b4aa6ad36e Fix reparent losing owner if relationship to original owner is not broken 2023-10-26 13:08:05 -04:00