Commit Graph

142 Commits

Author SHA1 Message Date
Rémi Verschelde 18edfa5245 Explicitly include scene_tree.h where used
Pre-requisite before removing `scene_tree.h` from `node.h`
which has cascading consequences on most of the codebase.
2026-03-05 10:43:25 +01:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde 8c0f175c94 Decouple RenderingServer from as much of the codebase as possible
Notably decouples it from:
- AccessibilityServer
- DisplayServer
- Viewport
- Window
2026-03-03 12:48:07 +01:00
Pāvels Nadtočajevs 1306221592 Move accessibility methods/enums from DisplayServer to the AccessibilityServer dedicated singleton. 2026-03-02 13:48:29 +02:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
Rémi Verschelde f5a290ac46 Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.

With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.

On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
kobewi 6f86914f55 Cleanup _validate_property() implementations 2026-02-23 15:05:25 +01:00
X23 44fa4a4cde Fix transform notification in threaded processing. 2026-02-07 17:51:30 +08:00
David Snopek fc92ce3e7f Use RequiredParam/RequiredResult in some high value places 2025-12-02 10:44:12 -06:00
kleonc 396ca1fa7f Get Node3D.global_rotation from orthonormalized global basis 2025-10-11 16:01:44 +02:00
Michael Alexsander f16ff829f0 Allow to use sliders for integers in EditorSpinSlider 2025-09-22 11:23:15 -03:00
Thaddeus Crews 149a4b4ca1 Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
Thaddeus Crews 1c056c7c86 Merge pull request #107481 from lawnjelly/localvector_children
Use `LocalVector` for `Node3D` and `CanvasItem` children
2025-09-18 12:42:28 -05:00
Thaddeus Crews 84c0ec04f3 Core: Integrate semantic constants in math structs
- Excludes self-explanatory constants (ZERO, ONE, etc)
2025-08-19 10:15:08 -05:00
AeioMuch f92af51cae Fix missing 3d gizmos 2025-07-29 15:26:42 +02:00
Thaddeus Crews 62538143e8 Merge pull request #106070 from IphStich/fix-duplicate-gizmos
Fix for Node3D request gizmos multiple times
2025-07-22 11:20:09 -05:00
Elise 1aa4c04895 Fix for Node3D request gizmos multiple times
This can result in multiple gizmos being created for the same nodes in some circumstances
2025-07-22 08:47:39 +10:00
lawnjelly 2d3dedb12d FTI - Add reset on setting top_level 2025-06-29 17:01:51 +01:00
lawnjelly 583c72f999 FTI - Change SceneTree global setting to static
Also fixup FTI configuration warnings so that they only output when the project is using FTI.
2025-06-23 10:19:24 +01:00
lawnjelly 14a814586a Provide quick access to Object ancestry 2025-06-23 07:11:11 +01:00
lawnjelly 55978b5024 Revert "FTI - Reduce VisualInstance3D xform notifications"
This reverts commit e10003ce33.
2025-06-22 15:44:52 +01:00
lawnjelly af2b9be356 Node3D and CanvasItem children change to LocalVector 2025-06-18 13:32:30 +01:00
Rémi Verschelde 0e9a59b16b Merge pull request #105901 from lawnjelly/fti_reduce_xform_notifications4
FTI - Reduce `VisualInstance3D` xform notifications
2025-06-13 01:30:31 +02:00
Rémi Verschelde ae484828bb Merge pull request #107408 from Ivorforce/node-path-string-explicit
Make conversions from `NodePath` to `String` explicit.
2025-06-12 22:49:03 +02:00
Lukas Tenbrink e2931a5c19 Make conversions from NodePath to String explicit. 2025-06-11 16:50:27 +02:00
lawnjelly 2674ffe1b7 FTI - global_transform_interpolated() on demand for invisible nodes 2025-06-09 09:34:09 +01:00
lawnjelly e729fa7c54 SceneTreeFTI - fix identity_xform flag getting out of sync
This could cause incorrect rendered xform for one frame.
2025-06-02 11:17:23 +01:00
lawnjelly e10003ce33 FTI - Reduce VisualInstance3D xform notifications 2025-05-30 06:32:07 +01:00
lawnjelly c7764ef26b FTI - Optimize SceneTree traversal 2025-05-24 17:38:33 +01:00
lawnjelly ae04a3a5dd Physics Interpolation - Move 3D FTI to SceneTree
Moves 3D interpolation from server to the client code (`SceneTree`).
Complete rework of 3D physics interpolation, but using the same user API.
2025-04-26 14:13:30 +01:00
Pāvels Nadtočajevs b106dfd4f9 Base accessibility API. 2025-04-08 20:14:28 +03:00
Rémi Verschelde 194894d937 Merge pull request #100597 from Zshandi/position-follow-editor-default-float-step
Node2D/3D: Make position follow default float step
2025-01-12 18:07:07 +01:00
Silc Lizard (Tokage) Renew d0c421976c Fix looking at with 180 degree arc
Co-authored-by: Fruitsalad <949631+fruitsalad@users.noreply.github.com>
2025-01-02 15:47:01 +09:00
Zshandi Krahn 0d40fe46e3 Node2D/3D: Make position follow default float step 2024-12-19 00:11:39 -08:00
Silc Lizard (Tokage) Renew f5b49af99f Add RetargetModifier3D for realtime retarget to keep original rest 2024-11-18 22:44:55 +09:00
kobewi b9d25580ce Fix implementation of property_can_revert() in various classes 2024-10-04 23:02:04 +02:00
Ricardo Buring 2f8ab4a654 Fixed Timestep Interpolation (3D)
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
kobewi 59f05ed31a Cleanup unused/underused singleton StringNames 2024-05-14 18:18:29 +02:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
kobewi 0b877a9962 Expose is_part_of_edited_scene() 2024-04-26 11:49:38 +02:00
Rémi Verschelde 42e6f9a9d8 Merge pull request #76140 from jeronimo-schreyer/add_secondary_light_to_3d_resource_importer
Added secondary light to 3D Advanced Import Settings
2024-04-19 16:26:42 +02:00
Jeronimo Schreyer c3bc768d64 Make Advanced Import lights more like the mesh and material editors
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2024-04-16 10:15:25 -07:00
Birk Magnussen dd97ff44ab Fixes the issue where setting global rotation would reset scale.
This was caused because the basis for the target global transform was entirely recreated. This process did not account for the scale of the basis of the current global transform.
This PR amends this by scaling the recreated basis for the global transform by the current global scale of the Node3D.
Note that this scaling has to be done from the current global scale and not from the local scale of the Node3D, otherwise issues would arise if parents of this Node3D would be scaled.
2024-04-16 13:43:00 +02:00
Rémi Verschelde 810a0dbff1 Don't access Node3D/Node2D/Control global transform in reparent unless needed
Fixes #89002.

Co-authored-by: Tamás Gálffy <ezittgtx@gmail.com>
2024-02-29 14:07:48 +01:00
Rémi Verschelde 7de27ea56a Merge pull request #84643 from rsburke4/top-level-problem-fix
Fix `Node3D` children using `top_level` in different position in-editor versus runtime
2024-02-02 12:01:25 +01:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
rsburke4 f191330968 Node3D children using top_level in different position in-editor vs. runtime 2023-11-09 05:10:35 -05:00
bitsawer 12a2177967 Fix notification thread guards 2023-10-02 19:31:54 +03:00
A Thousand Ships e45927b2f2 Replace radians range hint with radians_as_degrees 2023-09-25 08:50:19 +02:00