1
0
Fork 0
Commit Graph

10872 Commits

Author SHA1 Message Date
Riteo 84d3adcf2f Wayland: Implement native sub-windows
The backend is now mature enough to not explode with multiple windows
but the `DisplayServer` API still cannot meet some guarantees required
by the various Wayland protocols we use. To meet those guarantees this
patch adds three new elements to the DisplayServer API, with relative
handling logic for `Window` and `Popup` nodes:

 - `WINDOW_EVENT_FORCE_CLOSE`, which tells a window to *forcefully*
close itself and ensure a proper cleanup of its references, as Wayland
enforces this behavior;

 - `WINDOW_FLAG_POPUP_WM_HINT`, which explicitly declares a window as a
"popup", as Wayland enforces this distinction and heuristics are not
reliable enough;

 - `FEATURE_SELF_FITTING_WINDOWS`, which signals that the compositor can
fit windows to the screen automatically and that nodes should not do
that themselves.

Given the size of this feature, this patch also includes various
`WaylandThread` reworks and fixes including:

 - Improvements to frame wait logic, with fixes to various stalls and a
configurable (through a `#define`) timeout amount;

 - A proper implementation of `window_can_draw`;

 - Complete overhaul of pointer and tablet handling. Now everything is
always accumulated and handled only on each respective `frame` event.
This makes their logic simpler and more robust.

 - Better handling of pointer leaving and pointer enter/exit event
sending;

 - Keyboard focus tracking;

 - More solid window references using IDs instead of raw pointers as
windows can be deleted at any time;

 - More aggressive messaging to window nodes to enforce rects imposed by
the compositor.
2025-04-04 20:23:25 +02:00
Thaddeus Crews 8bd9cdeea6
Merge pull request #104890 from HolonProduction/json-rpc-manual-bind
JSONRPC: Require manual method registration
2025-04-03 16:50:24 -05:00
HolonProduction e2c3731cdd JSONRPC: Require manual method registration 2025-04-03 17:51:03 +02:00
Silc Lizard (Tokage) Renew 96200abb97 Add p_delta argument to _process_modification() and expose advance() 2025-04-03 23:58:54 +09:00
Thaddeus Crews b6c8155439
Merge pull request #104958 from bruvzg/ok_cancel_swap
Make `swap_cancel_ok` setting 3-state instead of boolean.
2025-04-03 09:27:55 -05:00
Thaddeus Crews 2e9a99864f
Merge pull request #99631 from Mickeon/documentation-duplicate-signals-oopsie
Mention `DUPLICATE_SIGNALS` only affects `CONNECT_PERSIST` signals
2025-04-03 09:27:51 -05:00
Pāvels Nadtočajevs 2f8b96e8a2
Make `swap_cancel_ok` setting 3-state instead of boolean. 2025-04-03 13:08:11 +03:00
Thaddeus Crews 673ae98d64
Merge pull request #104918 from bruvzg/do_note_stdin
[Docs] Add note about console wrapper to `get_stdin_type`.
2025-04-02 07:37:30 -05:00
Pāvels Nadtočajevs ce2d0ac62f
[Docs] Add note about console wrapper to `get_stdin_type`. 2025-04-02 13:55:06 +03:00
smix8 f2197a1013 Expose TriangleMesh api functions wrapped for scripting
Adds script wrapped TriangleMesh api functions to create and query the triangle BVH tree.
2025-04-02 09:52:35 +02:00
Thaddeus Crews b9b3c3fe14
Merge pull request #104889 from MJacred/patch-1
Clarify that `Window.dpi_changed` signal is supported on Linux (Wayland)
2025-04-01 19:53:36 -05:00
Thaddeus Crews 314f3fe6bb
Merge pull request #103507 from Eole211/fix-min-wall-slide-doc
Fix CharacterBody's `wall_min_slide_angle` doc
2025-04-01 19:53:31 -05:00
Thaddeus Crews 9637894c59
Merge pull request #104873 from bruvzg/tts_on_demand
Enable TTS on demand, instead of fully disabling it when project setting is not set.
2025-04-01 19:53:28 -05:00
MJacred 179ce63dbf Update class docs: `dpi_changed` signal is supported on Linux (Wayland) 2025-04-01 19:40:36 +02:00
Thaddeus Crews c23832b265
Merge pull request #104878 from bruvzg/color_mod_f
Add font import flag to toggle modulation of colored glyphs.
2025-04-01 08:01:33 -05:00
Thaddeus Crews 03d460ff4a
Merge pull request #102283 from matmas/fix-docs-log-multiplayer
Fix `LogMultiplayer` example in documentation
2025-04-01 08:01:32 -05:00
Pāvels Nadtočajevs 4638ade13f
Enable TTS on demand, instead of fully disabling it when project setting is not set. 2025-04-01 15:24:46 +03:00
Pāvels Nadtočajevs 19f360d65a
Add font import flag to toggle modulation of colored glyphs. 2025-04-01 13:36:10 +03:00
Thaddeus Crews cc7217970d
Merge pull request #104762 from smix8/depr_map_force_update
Deprecate NavigationServer `map_force_update()`
2025-03-31 19:02:09 -05:00
smix8 5e83618183 Deprecate NavigationServer map_force_update()
Deprecates map_force_update() function as it is incompatible with async updates.
2025-03-30 17:18:33 +02:00
Thaddeus Crews 8b2952a71c
Merge pull request #101504 from AThousandShips/nav_split_new
[Navigation] Create a dedicated 2D navigation server
2025-03-30 09:05:43 -05:00
Thaddeus Crews 152c14b053
Merge pull request #104597 from bruvzg/path_check
Implement `DirAccess.is_equivalent` method.
2025-03-29 10:16:34 -05:00
A Thousand Ships 5cc0539961
[Navigation] Create a dedicated 2D navigation server
* Add a dedicated 2D server
* Create dedicated tests
* Split performance metrics between 2D and 3D
* Rename the 3D only server module
2025-03-29 12:10:50 +01:00
Rémi Verschelde ddae331c79
Merge pull request #103853 from aaronfranke/gltf-fix-light-color-space
GLTF: Fix wrong color space for GLTFLight on export
2025-03-28 17:30:09 +01:00
Rémi Verschelde 05c207039f
Merge pull request #100849 from ColinSORourke/string-docs-clarify
Clarify ambiguous String comparison methods documentation
2025-03-28 17:29:55 +01:00
Rémi Verschelde b12258bd22
Merge pull request #99897 from aaronfranke/editor-top-nodes
Clarify API for top selected nodes in EditorSelection and make public
2025-03-28 17:29:51 +01:00
bruvzg 48bfe13e4f
Add methods to decode/encode multibyte encodings. 2025-03-28 17:32:34 +02:00
Rémi Verschelde b0ede90786
Merge pull request #104525 from lawnjelly/fti_fix_proj_setting_doc
Physics Interpolation - Fix project setting tooltip
2025-03-28 14:33:07 +01:00
Rémi Verschelde 81425f1ebd
Merge pull request #104103 from lodetrick/xr-controller-docs
Clarify `XRController3D` `get_input` name corresponds to actions in the action set
2025-03-28 14:32:31 +01:00
Rémi Verschelde 46a5940950
Merge pull request #103643 from dsnopek/openxr-alternative-reference-spaces
OpenXR: Support alternative reference spaces from extensions
2025-03-28 14:32:00 +01:00
Rémi Verschelde e9d827b440
Merge pull request #103173 from m4gr3d/fix_prebuilt_manifest_config
Updates and fixes to the Android prebuilt export logic
2025-03-28 14:31:57 +01:00
Aaron Franke 17db92b8b8
Clarify API for top selected nodes in EditorSelection and make public 2025-03-27 16:09:08 -07:00
Colin O'Rourke f8582ac5c3 Clarify Ambiguous Documentation
Clarifying Ambiguous wording in the description of multiple String Compare To functions.
2025-03-26 10:08:52 -07:00
Thaddeus Crews c5e36a973c
Merge pull request #104115 from mihe/scene-state-binds
Bind `SceneState` methods `get_path` and `get_base_scene_state`
2025-03-25 11:09:00 -05:00
Pāvels Nadtočajevs d5cea9bb2e
Implement `DirAccess.is_equivalent` method. 2025-03-25 17:52:15 +02:00
Logan Detrick 503b8892af Clarify XRController input name is defined by XRInterface and explain for OpenXR 2025-03-24 16:14:51 -07:00
David Snopek 3f27351f2b OpenXR: Support alternative reference spaces from extensions
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
2025-03-24 11:33:30 -05:00
Thaddeus Crews 6bbccdb317
Merge pull request #102561 from Dowsley/docs/update-tilemap-references
Replace references from TileMap to TileMapLayer in documentation
2025-03-24 10:01:00 -05:00
Thaddeus Crews 777c6637e9
Merge pull request #103214 from aaronjyoder/master
Add tab spacing modifier for tabs in TabBar and TabContainer
2025-03-24 10:00:54 -05:00
lawnjelly 407ab8768c Physics Interpolation - Fix project setting tooltip
Corrects a confusing documentation which refers to physics objects, whereas FTI applies to all rendered objects.
2025-03-24 11:23:32 +00:00
J. F. Dowsley 77e661a60c Replace references from TileMap to TileMapLayer in documentation
Correct sentence

Corrections

Corrections

Update doc/classes/TileSet.xml

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>

Update doc/classes/TileSetScenesCollectionSource.xml

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>

Remove undesired line in TileSet

More clarity on Node2D mention
2025-03-21 10:42:15 -03:00
Rémi Verschelde 0f5668b140
Merge pull request #104361 from timothyqiu/node-note
Fix typos in `ProjectSettings` class reference
2025-03-21 13:04:01 +01:00
Rémi Verschelde 5595d8246e
Merge pull request #104258 from Monochrome-debug/documentation_change
Improve documentation for return value of `Packed*Array.resize`
2025-03-21 13:03:41 +01:00
Rémi Verschelde f51ea67fb5
Merge pull request #104232 from Ivorforce/camera-server-shutdown
Deactivate the `CameraServer` by default.
2025-03-21 13:03:32 +01:00
Rémi Verschelde 92fb04c6cc
Merge pull request #103941 from stuartcarnie/metal_fx_features
Renderer: Expose and document `Features` enum for MetalFX
2025-03-21 13:03:19 +01:00
Rémi Verschelde 55cb380c3f
Merge pull request #100874 from Lazy-Rabbit-2001/visible-on-screen-rect
Optimize usability of VisibleOnScreenNotifier2D
2025-03-21 13:03:14 +01:00
Rémi Verschelde e50ac32d5a
Merge pull request #82321 from ywmaa/custom_debug_color_curve3D
Allow customizing debug color of Path3D.
2025-03-21 13:02:57 +01:00
Lukas Tenbrink 54685c3037 Deactivate the `CameraServer` by default.
Add `monitoring_feeds` property to `CameraServer`.
This saves resources for games that don't use a physical camera.
2025-03-21 07:58:57 +01:00
Max Chacon 44d10c576e
Improve documentation for return value of `Packed*Array.resize`
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-03-20 16:21:01 +01:00
Haoyu Qiu 3300f669b4 Fix typos in ProjectSettings class reference
- `[b]Node:[/b]` should be `[b]Note:[/b]`
- `max FPS` should be used instead of unquoted `max_fps` when not referring to the property
- Some minor capitalization and markup fixes.
2025-03-20 15:21:17 +08:00