Commit Graph

1152 Commits

Author SHA1 Message Date
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
Lukas Tenbrink e9465cd380 Move variant pools to their own compile unit. 2026-02-21 13:24:17 +01:00
Thaddeus Crews 15558cb886 Merge pull request #108111 from Repiteo/core/sanitizer-restructure
Core: Restructure sanitizers
2026-02-18 12:04:30 -06:00
Rémi Verschelde ad4b910a10 Minimize include dependencies of display_server.h
- Removes `native_menu.h` dependency from `display_server.h`.
  It's now forward-declared in all DisplayServer implementations and should
  be included in the .cpp's.
- Removes some unused `rb_set.h` and `rb_map.h` dependencies, which leads to
  having to include them explicitly in half the scene and editor codebase...
  which shows how much we depend on `display_server.h`.
- Forward-declare `input_event.h`, so now we need only `keyboard.h`.
2026-02-17 19:45:31 +01:00
Thaddeus Crews a82e210b5a Merge pull request #116376 from deralmas/wl/noope
Wayland: Skip resize request when the size is the same
2026-02-17 09:28:23 -06:00
Dery Almas 870631211f Wayland: Skip resize request when the size is the same
`DisplayServer::window_set_size` is called lots of times in the code,
with the assumption (I suppose) that it's going to be idempotent.

We had checks in _update_window_rect but we still called
`WaylandThread::window_set_size`, which did a lot of stuff. In
particular, this caused issues with HiDPI as it "overrode" the window
size before it had a time to figure out its scale.
2026-02-16 20:10:54 +01:00
Thaddeus Crews 41f4ca3247 Merge pull request #116236 from deralmas/the-chosen-one
Wayland: Only handle the current output mode
2026-02-16 10:19:35 -06:00
Thaddeus Crews b769ae2d5f Merge pull request #116309 from deralmas/wl/sdrawkcab
Wayland: Swap backward and forward mouse buttons
2026-02-16 10:19:30 -06:00
Thaddeus Crews 4106b5cdcc Merge pull request #116256 from dsnopek/monado-opengl-fix
OpenXR: Fix OpenGL initialization with Monado on X11
2026-02-16 10:19:28 -06:00
Thaddeus Crews 2762c56829 Merge pull request #112287 from Kiisu-Master/wl_pointer_warp
Add pointer warping on wayland
2026-02-16 10:19:18 -06:00
Kiisu_Master 4dceee5252 Add pointer warping on wayland 2026-02-15 18:16:27 +01:00
Dery Almas fe0acc1003 Wayland: Swap backward and forward mouse buttons
They were bound in reverse. No idea how I originally chose which was
which.

This patch also orders the switch cases by their underlying codes: left,
right, middle, side, extra.
2026-02-15 09:28:52 +01:00
David Snopek 3f5c5d969f OpenXR: Fix OpenGL initialization with Monado on X11 2026-02-13 11:58:27 -06:00
Dery Almas dc8e7ef2ce Wayland: Only handle the current output mode
Some compositors (e.g. COSMIC) can report *all* supported output modes,
not just the current mode. This is valid, albeit deprecated, so let's
add a check and ignore any non-current output events.
2026-02-13 02:52:40 +01:00
Skyth 8fbf2f1e14 Reduce includes to rendering device.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2026-02-10 16:58:50 +03:00
Thaddeus Crews 435e6c3830 CI: Enable Ruff preview options; bump version
• 1.14.7 → 1.15.0
2026-02-05 12:20:10 -06:00
Thaddeus Crews 0aa77895ac Merge pull request #114521 from mxtherfxcker/fix/ui-freezes-when-opening-file-manager-on-linux
LinuxBSD: Fix UI freeze when opening file manager
2026-02-05 09:32:38 -06:00
Thaddeus Crews 65e79f33cb Merge pull request #115823 from deralmas/what-the-fd
Wayland Embedder: Fix FD leak with inert objects
2026-02-05 09:32:34 -06:00
Thaddeus Crews 79eb6694a1 Merge pull request #112381 from Ivorforce/no-right-align
Don't right-align escaped newlines (e.g. for `#define`)
2026-02-05 09:18:36 -06:00
Lukas Tenbrink c5df0cb82b Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history. 2026-02-04 19:31:28 +01:00
Sertonix cdafcefb6b Fix missing lib with builtin_glslang=false
The `GetDefaultResource` function is in separate library file.
2026-02-03 20:45:13 +01:00
Dery Almas 6e5d1e00e0 Wayland Embedder: Fix FD leak with inert objects
Freshly deleted objects are temporarily "inert" until their destruction
is acknowledged by the compositor.

Inert objects are ignored. By doing so, we mistakenly returned too
early and missed some FD cleanup logic. This patch ensures that any
outstanding FDs are always closed by moving its logic outside of the
message handling routine.
2026-02-03 16:26:56 +01:00
Thaddeus Crews 5853d99984 Merge pull request #114930 from KoBeWi/if_it's_runnable_can_it_run_doom
Move runnable out of export preset
2026-01-28 17:58:25 -06:00
Thaddeus Crews beda8dd027 Core: Restructure sanitizers 2026-01-28 09:13:16 -06:00
Nintorch eb019511ed Optimize files that #include input.h header 2026-01-28 14:21:00 +05:00
Thaddeus Crews ed0ae97d98 Merge pull request #114922 from DarioSamo/android-platform-gl3-fallback-fix
Fix fallback to OpenGL3 from Vulkan initialization on Android.
2026-01-27 09:04:14 -06:00
Thaddeus Crews 47b1b9ef69 Merge pull request #114947 from AThousandShips/fix_debugsymbols_linux
[Linux] Handle debug symbols with renamed executable
2026-01-27 09:04:08 -06:00
Dery Almas 27b1916465 Wayland: Update popup scale information on creation
Popups start with their size and position already scaled based on the parent.
We forgot to update the popup's scale itself, leading to a double-scale.
2026-01-22 06:28:27 +01:00
Rémi Verschelde a1e209b7fe Merge pull request #115090 from deralmas/wayland-ime-bruh-moment
Wayland: Fix IME
2026-01-19 10:46:13 +01:00
Dery Almas 3a2a53f901 Wayland: Fix IME
The spec tells us to ignore certain events if we didn't get an `enter`
event first. Certainly we need to at least acknowledge the `enter` event
itself 😅
2026-01-18 09:47:23 +01:00
Dario 542f8ddf22 Fix fallback to OpenGL3 from Vulkan initialization on Android. 2026-01-14 23:55:21 -03:00
A Thousand Ships 4e8cba2d22 [Linux] Handle debug symbols with renamed executable
GNU debug link expects the file to have the same name as when compiled,
same solution as on Windows.
2026-01-14 14:23:51 +01:00
Dery Almas 8a448032c2 Wayland: Allow non-interactive window resizing
Despite what I thought in the past, it is allowed, as long as we follow
certain limitations depending on the toplevel's state.

As usual I peppered the code with comments expaining what those
limitations are.

Regarding popups, AFAICT there are no major limitations, although we
should eventually use the new `reposition` method, which autoadjusts the
popup to follow the screen's borders and whatnot. I didn't do that in
this patch as it requires some elbow grease, especially if we want to do
it synchronously.
2026-01-14 11:20:06 +01:00
kobewi 91cc70f280 Move runnable out of export preset 2026-01-13 19:32:33 +01:00
Rémi Verschelde 38293c4d39 Merge pull request #114820 from AR-DEV-1/114652
X11: Allow moving a fullscreen/maximized window to another screen/display
2026-01-13 11:06:34 +01:00
Rémi Verschelde 571c574f96 Merge pull request #113950 from deralmas/wl-misc-fixes/not-listening
Wayland: Ignore IME events without a valid window
2026-01-13 11:06:00 +01:00
Rémi Verschelde 865dbfc2fb Merge pull request #113949 from deralmas/wl-misc-fixes/too-much-debugging
Wayland: Remove `GODOT_DEBUG_EMBEDDER_SINGLE_INSTANCE` debug option
2026-01-13 11:05:54 +01:00
AR cc71d5a2be X11: Allow moving a fullscreen/maximized window to another screen/display 2026-01-13 09:52:07 +01:00
Ville Baillie e02b117af7 wayland_embedder.cpp: fix duplicated-branches error 2026-01-08 19:01:33 +00:00
Riteo Siuga 33a48f1387 Wayland: Track popup menu mouse mask properly
We were updating `last_mouse_monitor_mask` only if there were popup
menus open, which is obviously wrong.
2026-01-03 21:48:18 +01:00
mxtherfxcker d78857b53e LinuxBSD: Fix UI freeze when opening file manager 2026-01-02 16:42:24 +03:00
Chestnut45 3be85a8614 Lower timeout in X11 event thread to fix input delay issue 2025-12-18 15:01:48 -04:00
Rémi Verschelde 0509500a9f Merge pull request #114081 from deralmas/thirdparty/libdecor/0.2.5
libdecor: Regenerate dynamic wrapper
2025-12-17 13:58:46 +01:00
Dery Almas bea572fc00 libdecor: Regenerate dynamic wrapper 2025-12-17 13:17:14 +01:00
Riteo 0e21840973 Wayland: Add environment variable to disable libdecor loading
Libdecor has some quirks and depending on the setup it might be useful
to switch to the xdg-shell branch. Recompiling the whole engine without
libdecor is not an acceptable way to do that.
2025-12-16 19:12:49 +01:00
Rémi Verschelde 3e2f769ddf Merge pull request #113947 from deralmas/wl-misc-fixes/cleanup-forgor
Wayland: Add missing destroy calls for text input and tablet
2025-12-16 11:26:53 +01:00
Rémi Verschelde d84a8a63fa Merge pull request #113946 from deralmas/wl-misc-fixes/mfw-mutating-a-copy
Wayland: Fix accidental copy during global remove
2025-12-16 11:26:47 +01:00
Rémi Verschelde 5d5db072f3 Merge pull request #113656 from deralmas/gray-goo-scenario
Wayland: Work around window scale ambiguity
2025-12-16 11:26:42 +01:00
Rémi Verschelde 61b5f80a50 Merge pull request #113256 from deralmas/wl-keyboard-stuff
Wayland: Misc keyboard touchups
2025-12-16 11:26:31 +01:00
Thaddeus Crews 206f1b5a7c Merge pull request #113977 from deralmas/wl-misc-fixes/shhhhh
Wayland: Silence `window_get_wl_surface` on invalid window
2025-12-15 08:01:05 -06:00