Commit Graph

1030 Commits

Author SHA1 Message Date
Mikael Hermansson 6929823838 Fix various race conditions with capturing of script backtraces 2025-06-02 19:46:19 +02:00
kobewi b41d6ecf8c Allow to override editor settings per project 2025-06-02 17:51:26 +02:00
Pāvels Nadtočajevs 2d93e004b9 Cleanup and unify DisplayServer screen methods and documentation. 2025-06-02 08:03:48 +03:00
Thaddeus Crews de37627404 Merge pull request #102552 from DarioSamo/shader-baker
Add shader baker to project exporter.
2025-05-28 17:09:38 -05:00
Thaddeus Crews 6228c7c762 Merge pull request #105451 from bruvzg/x11_splash
Fix X11 boot splash scaling.
2025-05-28 09:47:42 -05:00
Thaddeus Crews bb47f01481 Merge pull request #106390 from akien-mga/linux-drop-ppc32
Linux: Drop `ppc32` (32-bit PowerPC) architecture support
2025-05-28 09:47:34 -05:00
Dario 5a30a7e7cd Add shader baker to project exporter.
Metal Support contributed by Migeran (https://migeran.com) and Stuart Carnie.

Co-authored-by: Stuart Carnie <stuart.carnie@gmail.com>
Co-authored-by: Gergely Kis <gergely.kis@migeran.com>
2025-05-27 12:45:27 -03:00
Riteo 67c317c58d Wayland: Add missing return in selection logic
Fixup to "Wayland: Check selection devices before using them"

This slipped under the radar... until for some reason optimized builds
started crashing, perhaps due to timing-related shenanigans, no idea.
2025-05-26 20:36:15 +02:00
Patrick Gelvin 6842a5861b Workaround X11 crash issue 2025-05-25 08:07:24 -07:00
Thaddeus Crews 202b1176a4 Merge pull request #106251 from ArchercatNEO/wayland-cursor-shape
[Wayland] Implement the cursor-shape-v1 protocol
2025-05-16 10:29:02 -05:00
Thaddeus Crews 902d2b45bb Merge pull request #106400 from RandomShaper/win_compat
Improve platform compatibility of Windows and Direct3D 12
2025-05-15 10:22:16 -05:00
ArchercatNEO 3cd7b5b9a8 [Wayland] Implement the cursor-shape-v1 protocol
Related #106229. The cursor-shape protocol allows us to not have to deal with cursor theming and instead depend on the
compositor for it.
This still does not quite solve the issue when the compositor doesn't implement the protocol
(or running under the x11 backend) but for gnome/kde and a few more this should resolve things.
2025-05-15 15:42:48 +01:00
Pedro J. Estébanez 820380817a Exclude RD creation test functions from templates 2025-05-15 10:12:38 +02:00
Riteo a3913b045d Wayland: Fix stuck pointer buttons on window leave
This issue came from the frame-based refactoring done in the multiwin
PR.

It looks like some (all?) compositors group certain events alongside
`wl_pointer::leave`, which I absolutely did not expect. The docs don't
seem to mention it either from what I can tell.

We now fall-back on the old pointed window if and only if the current
window is invalid and the old one isn't. Each state fetch is guarded
with an `ERR_FAIL_NULL` so this should still catch any potentially
corrupted window with missing data but a valid ID.

I also added the usual big comment so that this "quirk" does not get
lost to time.
2025-05-14 23:30:16 +02:00
mara d213e72866 wayland: Unbreak build with libdecor=no
In #101774, some libdecor-specific code was added, but without adding the guards. This broke the build with
`libdecor=no`.

Add `#ifdef` guard as necessary.
2025-05-14 13:36:45 +00:00
Rémi Verschelde 1de9789806 Linux: Drop ppc32 (32-bit PowerPC) architecture support
This was added together with `ppc64le` in #54490, but seemingly only for the
purpose of getting it to compile on a Linux distro that aims at maximizing
support for all CPU architectures.

I don't think anyone has ever _run_ Godot on a `ppc32` system (do those even
support OpenGL ES 3.0?) and so I don't think we should aim to support it.

Debian dropped support for its PowerPC (`ppc32`) arch in Debian 9, released
in 2017.
2025-05-14 10:22:12 +02:00
Pāvels Nadtočajevs a12503b88c [X11] Fix GL init memory leak when transparency is enabled. 2025-05-13 13:20:02 +03:00
Rémi Verschelde 8b93b67e14 Merge pull request #106315 from Riteo/popping-up-everywhere
Wayland: Fix error spam when closing popup
2025-05-13 01:05:49 +02:00
Riteo c3b04e6e1e Wayland: fix error spam when closing popup
Previously we did not check whether the value actually changed or not
and thus would get constant errors for no reason.
2025-05-12 05:11:24 +02:00
Pāvels Nadtočajevs 5441a82cfb Do not call accessibility_set_window_rect on Wayland, fix main windows accessibility context creation. 2025-05-11 12:51:46 +03:00
Rémi Verschelde e9e8ddc5be Linux: Fix build with dbus=no or threads=no 2025-05-09 15:26:13 +02:00
Rémi Verschelde a6398d71a3 Improve script backtrace print in crash handlers
Also fix the editor crash handler message for bug reports not properly
using the `.editor` override.
2025-05-07 09:52:50 +02:00
Thaddeus Crews 4cb030d6bf Merge pull request #106089 from mihe/rogue-newlines
Fix empty lines being added for errors with no script backtrace
2025-05-06 08:38:04 -05:00
Mikael Hermansson 31b90246e7 Fix empty lines being added for errors with no script backtrace 2025-05-05 13:27:21 +02:00
Riteo Siuga d4dabd15aa Wayland: Ensure pointed window's existence in mouse_get_position
Should fix a crash with certain compositors.
2025-05-03 20:24:44 +02:00
Thaddeus Crews 01fc9aee6c Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
tthhr e7a3729175 fix:Compile error in wayland display server when compiling linuxbsd platform after disabling dbus 2025-04-30 14:22:52 +08:00
Adam Scott 1fbc0c5631 [Buildsystem] Add EnumVariable(ignorecase=2) 2025-04-29 13:35:40 -04:00
Thaddeus Crews 3947cbe3b2 Merge pull request #104386 from Repiteo/core/cpp-math
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
Thaddeus Crews 2bf7184ed9 Merge pull request #103865 from Repiteo/scons/__has_include
SCons: Remove `check_c_headers`
2025-04-25 11:36:06 -05:00
Thaddeus Crews 041c69db2f Merge pull request #101454 from Riteo/fifo_ftw
Wayland: Handle `fifo_v1` and clean up suspension logic
2025-04-25 11:36:04 -05:00
Thaddeus Crews 007717faf9 SCons: Remove check_c_headers
• Can instead check for headers directly with `__has_include`, a C++17 feature
2025-04-25 11:30:39 -05:00
Pāvels Nadtočajevs e61edcadb8 Print script backtrace in the crash handler. 2025-04-25 09:15:20 +03:00
Riteo Siuga 48882f3ca4 Wayland: Handle fifo_v1 and clean up suspension logic
Before, the WSI was unfortunately quite broken and we had work around it
by manually pacing frames. Needless to say it was not an ideal solution.

Now, the WSI can make use of the new fifo_v1 protocol to work properly.
If it's available, we'll trust the WSI by disabling manual frame pacing.

While we're at it, let's clean up the suspension code a bit by removing
some duplicated stuff and handling the suspension state through a switch
case.
2025-04-20 18:05:35 +02:00
Riteo 2e41412ee4 Wayland: Emulate frame event for old wl_seat versions
Multiwindow support simplified input handling by processing all data
only during a `wl_seat::frame` event, which got introduced in wl_seat
version 5. If the compositor reports an older version, we manually call
the frame event handler.
2025-04-20 17:11:08 +02:00
Thaddeus Crews ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
Pāvels Nadtočajevs 5ddaaa93e6 Fix X11 boot splash scaling. 2025-04-16 10:45:43 +03:00
Thaddeus Crews 0d267e7b1e Core: Add dedicated BitField template 2025-04-11 11:53:26 -05:00
Thaddeus Crews cad0cd94ef Merge pull request #105225 from bruvzg/ds_gdsoft
Change `DisplayServerMacOS` from `GDCLASS` to `GDSOFTCLASS`. Add `GDSOFTCLASS` to other display servers.
2025-04-10 16:53:42 -05:00
Thaddeus Crews cade15a163 Merge pull request #92475 from AThousandShips/string_replace_char
Add `String::replace_char(s)` methods for performance and convenience
2025-04-10 10:18:16 -05:00
Thaddeus Crews 722ddf6e6f Merge pull request #103802 from Rindbee/set-unsupported-to-true-on-error-in-FreeDesktopScreenSaver
Set `unsupported` to true on error in `FreeDesktopScreenSaver`
2025-04-10 10:18:14 -05:00
A Thousand Ships 889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
Pāvels Nadtočajevs 0497522933 Change DisplayServerMacOS from GDCLASS to GDSOFTCLASS. Add GDSOFTCLASS to other display servers. 2025-04-10 09:18:58 +03:00
Thaddeus Crews 7a6c3b309f Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
Thaddeus Crews a8598cd8e2 Merge pull request #71542 from bruvzg/export_project_settings
[Export] Use project settings overrides with the target preset features instead of current platform features.
2025-04-09 08:51:47 -05:00
Thaddeus Crews 4362b11557 Merge pull request #103405 from van800/shakhov/macosx
Fix `.sln` project generation logic for Rider to support all OS and all C++ toolchains
2025-04-09 08:51:45 -05:00
bruvzg c6739f64df [Export] Use project settings overrides with the target preset features instead of current platform features. 2025-04-08 21:22:37 +03:00
Thaddeus Crews 295c0f5bd2 Merge pull request #105129 from Riteo/soft-serve
Wayland: Fix error spam for closed windows
2025-04-08 12:32:48 -05:00
Thaddeus Crews e6a61b1ecc Merge pull request #76829 from bruvzg/ac_kit_direct
Implement screen reader support using AccessKit library.
2025-04-08 12:32:47 -05:00
Pāvels Nadtočajevs 4310cb82b8 AccessKit integration for macOS, Linux, and Windows. 2025-04-08 20:25:47 +03:00