Commit Graph

5918 Commits

Author SHA1 Message Date
Thaddeus Crews 4d5f455cf7 Merge pull request #105037 from clayjohn/RD-instance-index-crash
Avoid using a global variable to store instance index in canvas items shader in RD renderer
2025-04-07 08:43:27 -05:00
Thaddeus Crews 45a64319e1 Merge pull request #104771 from Repiteo/ci/pre-commit-bump
CI: Bump various pre-commit hooks
2025-04-07 08:43:27 -05:00
Thaddeus Crews 1b9f269700 Merge pull request #105015 from syntaxerror247/improve-touchActionsPanel
Android Editor: Add an editor setting to enable/disable `TouchActionsPanel`
2025-04-07 08:43:24 -05:00
Thaddeus Crews 5edb235018 CI: Bump various pre-commit hooks 2025-04-07 08:23:35 -05:00
Anish Mishra b462db5adb Android: Hardware keyboard connection status callback
Adds a DisplayServer method to register hardware keyboard connection change callback.
2025-04-05 08:14:29 +05:30
clayjohn bef26b8861 Avoid using a global variable to store instance index in canvas items shader in RD renderer 2025-04-04 16:32:15 -07:00
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 6bd249a4c2 Merge pull request #104850 from Repiteo/core/warning-macros
Core: Integrate warning suppression macro helpers
2025-04-03 16:50:22 -05:00
Thaddeus Crews 207a2b6472 Core: Integrate warning suppression macro helpers 2025-04-03 10:13:46 -05:00
Aaron Franke 2800948d61 Organize ifdefs for disabling navigation, physics, and XR 2025-04-02 08:24:24 -07:00
Thaddeus Crews 1f56d96cf2 Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
Thaddeus Crews c9c8556a47 Merge pull request #104862 from smix8/navserver_process
Prepare NavigationServer for `process()` and `physics_process()` split
2025-04-02 07:37:32 -05:00
Thaddeus Crews f25fc34439 SCons: Add CPPEXTPATH for external includes 2025-04-02 07:29:08 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
smix8 16fd7b6ae1 Prepare NavigationServer for process() and physics_process() split
Prepares the NavigationServer API for a split of its functionality between frame process() and stepped physics_process().
2025-04-02 11:01:08 +02:00
Thaddeus Crews b69e92cbd3 Merge pull request #104880 from beicause/shader-fix-bvec-to-variant
Shader: Fix `bvec` to variant conversion
2025-04-01 19:53:30 -05:00
Michael Alexsander 556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
LuoZhihao 9e0798ed36 Shader: Fix bvec to variant conversion 2025-04-01 19:03:15 +08:00
Pāvels Nadtočajevs 19f360d65a Add font import flag to toggle modulation of colored glyphs. 2025-04-01 13:36:10 +03:00
Hugo Locurcio 5cdd612c54 Fix time display in MovieWriter window title and console output
Following the change to `String::num()`, decimals were added even when
numbers were being rounded to whole integers beforehand. Additionally,
the frame remainder is displayed as a timecode to the window title and
console output.

This also fixes a floating-point division by zero that occurred when
the movie was recorded in less than 1 second of real time.
2025-03-31 20:38:18 +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 780cf03051 Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -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 e8bc75f056 Merge pull request #103373 from YeldhamDev/build_remove_physics
Allow to compile templates without physics servers
2025-03-28 17:30:03 +01:00
Rémi Verschelde 3b90bb56ad Merge pull request #89782 from KoBeWi/stdArrayList
Use initializer list in Arrays
2025-03-28 17:29:40 +01:00
Michael Alexsander 5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03: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 e81eb3f1e9 Merge pull request #102354 from YYF233333/style_iterator
Use iterator pattern instead of manually traverse `List::Element *`
2025-03-28 14:31:40 +01:00
Rémi Verschelde 408d07109b Merge pull request #99551 from DarioSamo/fragment-density-map
Implement Fragment density map support.
2025-03-28 14:31:19 +01:00
Yyf2333 22b5ec17fb Using iterator pattern instead of List::Element *.
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
2025-03-28 13:29:15 +08:00
Lukas Tenbrink ffa6ef220b Use append_ instead of parse_ for String methods. 2025-03-27 17:51:02 +01:00
kobewi 75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
Dario 76d709be74 Implement support for fragment density maps.
Co-Authored-By: Bastiaan Olij <mux213@gmail.com>
2025-03-24 11:50:04 -05: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
Rémi Verschelde b7632687f4 Merge pull request #104334 from ztc0611/fix-movie-writer-viewport
Fix Movie Writer behavior with Viewport Display Mode + Window Size Override
2025-03-21 13:03:45 +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
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
Thaddeus Crews 97241ffea6 Merge pull request #99555 from Meorge/mute-game
Add "Mute Game" toggle in Game view
2025-03-19 17:46:11 -05:00
Malcolm Anderson 6858607e74 Add "Mute Audio" button to Game view in editor
Update servers/audio_server.cpp

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Apply suggestions from code review

Co-authored-by: Adam Scott <ascott.ca@gmail.com>

Fix a few lines for new member names

Add command-line argument `--debug-mute-audio`, and pass it to game if started with mute enabled

Apply suggestions from code review

Co-authored-by: arkology <43543909+arkology@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

Fix icon for svgo
2025-03-19 08:20:17 -07:00
kobewi 10f6c01b9c Remove ABS in favor of Math::abs 2025-03-19 13:52:40 +01:00
Stuart Carnie e2066298d9 Renderer: Fix Metal handling of cube textures; assert equal dimensions 2025-03-19 11:52:59 +11:00
Zach Coleman c57c2445d8 Update movie_writer.cpp 2025-03-18 15:00:40 -07:00
Thaddeus Crews b7eda9dbc1 Merge pull request #104230 from bruvzg/start_clip
Add properties to configure space trimming on line break.
2025-03-18 14:42:44 -05:00
Thaddeus Crews 49fcd4ce46 Merge pull request #101546 from bruvzg/portal_color_picker
[Linux] Implement native color picker.
2025-03-17 10:52:29 -05:00
Thaddeus Crews 70d37274aa Merge pull request #60178 from Calinou/directional-shadow-normal-bias-split
Use lower shadow normal bias for distant directional shadow splits
2025-03-17 10:52:13 -05:00
Pāvels Nadtočajevs 2bbf0f2317 Add properties to configure space trimming on line break. 2025-03-16 16:15:37 +02:00
clayjohn 16b9667c62 Error when draw list is not active in draw_list_switch_to_next_pass
This fixes a mistake made when refactoring the draw list
2025-03-14 18:04:47 -07:00
Lukas Tenbrink f4de2cd22a Use resize_zeroed instead of resize then fill(0) in several places. 2025-03-14 12:09:39 +01:00
Julian f7bb2c8b11 Copy audio data to dest when bypassing pitch effect 2025-03-13 18:08:11 -04:00