Commit Graph

424 Commits

Author SHA1 Message Date
Thaddeus Crews db0467cc6a Merge pull request #118895 from Infiland/fix-118826-inspector-tooltips
Fix inspector tooltips after focus changes
2026-05-14 09:06:48 -05:00
Thaddeus Crews e8a58d1343 Merge pull request #118909 from aurpine/fix-scene_tree-constr-vrs-texture
Fix SceneTree constructor not using VRS texture
2026-04-28 09:02:41 -05:00
aurpine f45497d4bd Fix SceneTree constructor not using VRS texture 2026-04-24 03:07:09 -04:00
Infiland b08d13cc41 Fix stale pressed state after focus changes
Release pressed input state whenever app or embedder focus changes so editor hover tooltips are not blocked by stale keyboard input while preserving the unfocused joypad behavior in Input.
2026-04-23 22:15:33 +02:00
Thaddeus Crews 9b4b3831d2 Merge pull request #118588 from Bromeon/feature/more-required-ptrs
Use `RequiredParam`/`RequiredResult` in several more APIs
2026-04-16 09:41:13 -05:00
Jan Haller 71d44651c4 Add RequiredParam -> RequiredResult conversion
Adds implicit conversion from `RequiredResult<T_Other>` to `RequiredParam<T>` (where
`T_Other` derives from `T`). This allows passing a `RequiredResult` directly to a
`RequiredParam` without an intermediate variable.

Also changes `SceneTree::get_root()` to return `RequiredResult<Window>`. It is used in a
conversion as described above.

Why non-null: The root window is created in the `SceneTree` constructor and only set to
null in the destructor, so it is always valid during normal use. The function is no longer
`_FORCE_INLINE_` because `RequiredResult<Window>` requires Window to be a complete type.
2026-04-15 01:23:48 +02:00
Jan Haller 773ee962ed Use RequiredParam/RequiredResult in several more APIs 2026-04-15 00:53:13 +02:00
Fredia Huya-Kouadio ef0163ba9f Add support for PiP mode 2026-03-06 23:29:16 -08:00
Rémi Verschelde 2dd1f4ef60 Decouple node.h from scene_tree.h, minimize its other includes 2026-03-05 13:54:46 +01:00
Thaddeus Crews bb1e018314 Merge pull request #115119 from Nintorch/joypad-unfocused
Add project setting to ignore joypad events if the app is unfocused
2026-03-04 11:20:39 -06: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 765362b033 Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +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
Rémi Verschelde a447ac95ec Move DisplayServer enums and typedefs to DisplayServerEnums
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
2026-03-03 12:44:02 +01:00
Nintorch d418d692b9 Project setting to ignore joypads on unfocused app
Co-Authored-By: Christoph Taucher <4498502+chtau@users.noreply.github.com>
2026-03-03 11:03:37 +05: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
Rémi Verschelde 1c12d2c36e Tidy up includes in scene/main and scene/debugger 2026-02-19 15:09:29 +01:00
Josh Jones b8389cc76b Support output to HDR monitors
Co-authored-by: Alvin Wong <alvinhochun@gmail.com>
Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
2026-02-11 22:13:26 -07:00
Rémi Verschelde 63c78e684b Merge pull request #114165 from KoBeWi/static
Use actual class names in resource type hints
2026-02-02 10:10:24 +01:00
kobewi f7b9703cbd Use actual class names in resource type hints 2026-01-29 21:07:56 +01:00
Lukas Tenbrink 1825e89787 Change copy constructors of HashMap and AHashMap from implicit to explicit. 2026-01-21 13:01:23 +01:00
David Snopek fc92ce3e7f Use RequiredParam/RequiredResult in some high value places 2025-12-02 10:44:12 -06:00
David Snopek 090a4540b7 Use RequiredParam and RequiredResult in a handful of places in order to test 2025-11-24 12:12:10 -06:00
Thaddeus Crews 7d5034c50a Merge pull request #108507 from dementive/optimize-scene-tree-groups
Optimize scene tree groups
2025-11-14 14:22:57 -06:00
Lukas Tenbrink c3747884da Add some important profiling hooks. 2025-11-08 00:08:48 +01:00
kobewi 88a5cd2fe0 Add change_scene_to_node() 2025-10-22 12:21:18 +02:00
Allen Pestaluky bd9d1bf070 Add material debanding for use in Mobile rendering method.
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2025-10-08 16:22:41 -04:00
Aaron Franke 3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Lukas Tenbrink 45a0d2a90a Make SceneTree not crash when receiving a notification without a root being set. 2025-08-28 01:38:27 +02:00
Pāvels Nadtočajevs 7b47f5e8db [Accessibility] Process non-focusable windows (popups, menus) as part of the parent window tree. 2025-08-17 12:15:08 +03:00
Mikael Hermansson 8634a8e234 Fix performance regression when rendering collision shapes 2025-07-11 20:52:58 +02:00
dementive 56fa8caef4 Optimize scene tree groups 2025-07-11 10:57:04 -05: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
Haoyu Qiu 2a7fa46110 Fix root node auto translation settings affecting editor root 2025-06-16 17:12:27 +08:00
Lukas Tenbrink e2931a5c19 Make conversions from NodePath to String explicit. 2025-06-11 16:50:27 +02:00
Thaddeus Crews e89c4b0f9f Merge pull request #102330 from RGDTAB/add_partial_smaa
Add SMAA 1x to screenspace AA options
2025-05-26 11:24:35 -05:00
Pāvels Nadtočajevs f92fd74268 Do not activate accessibility when screen reader detection failed. 2025-05-25 00:17:23 +03:00
Raymond DiDonato 6b99608950 Add SMAA 1x 2025-05-21 15:02:09 -04:00
Haoyu Qiu 51a063d6d3 Remove unused SceneTree::make_group_changed 2025-05-13 16:40:17 +08:00
kobewi 34b485d62b Remove empty constructors and destructors from scene/ 2025-05-06 14:46:54 +02:00
lawnjelly f8f350a32a Add GLOBAL_GET cached macros.
GLOBAL_GET is an expensive operation which should not be used each frame / tick.
This PR adds macros which do a cheaper revision check, and only call the expensive GLOBAL_GET when project settings have changed.

Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-04-30 15:08:50 +01:00
Thaddeus Crews ccd8816dd9 Merge pull request #105860 from timothyqiu/group-complete
Fix group name completion for `get_node_count_in_group`
2025-04-28 14:10:47 -05:00
Haoyu Qiu f7a0b6b7cf Fix group name completion for get_node_count_in_group 2025-04-28 19:42:01 +08: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
Thaddeus Crews 8f6bb119f4 Merge pull request #100602 from KoBeWi/over_100_changes_in_50_random_files_aka_the_best_kind_of_PR
Add templated version of `ObjectDB::get_instance()`
2025-03-31 12:03:47 -05:00
Michael Alexsander 5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03:00
kobewi bc9d0c7835 Add templated version of ObjectDB::get_instance() 2025-03-27 15:43:23 +01:00