1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-26 15:46:23 +00:00
Commit Graph

6841 Commits

Author SHA1 Message Date
Thaddeus Crews
427d8086f2 Merge pull request #102492 from m4gr3d/android_editor_support_game_tab
Add support for embedding game process in the Android Editor
2025-02-11 09:13:05 -06:00
Riteo
54755a27e9 Wayland: Unstuck keys with same keycode
This fixes once and for all the core issue of different Godot `keycode`s
released from the same raw XKB keycode.

The `InputEventKey` `keycode` value _should_ map to the "unmodified"
key, but unfortunately there's an ambiguity with their encoding for
"special" keys ("delete", "insert", etc.), in witch they ignore their
unicode representation. This means that a key that is special when plain
but a character when modified would never be properly picked up, so we
do indeed change its keycode. As a consequence of this exception, some
Godot keys never receive release events and get "stuck".

This patch adds an extra check through an `HashMap` to "unstuck" keys
that changed while having the same keycode.

I also could not resist simplifying a bit the regular key event
generation method but this makes things more consistent and predictable
IMO.
2025-02-11 13:16:16 +01:00
Fredia Huya-Kouadio
7495a8a02e Add support for embedding game process in the Android Editor
- Implement Android editor specific `EmbeddedGodotGame` to support embedding the game window in the Android editor
2025-02-11 02:20:18 -08:00
Rémi Verschelde
e912241f4d Merge pull request #102674 from Riteo/waiting-for-frame
Wayland: Fix engine stalls while waiting frames
2025-02-11 10:54:28 +01:00
Riteo
cbd68eb403 Wayland: Fix engine stalls wihle waiting frames
There were two edge cases in the frame waiting logic (aka manual frame
throttling or emulated vsync) which would cause the editor to stall in
one way or another:

 1. Waiting right after starting the editor would cause a deadlock
between both threads until something happened in the Wayland event
queue, in turn unblocking the Wayland thread and kickstartin the whole
thing;

 2. Starting the editor (and probably other long-loading stuff) without
low consumption mode would suspend the window and never commit its
surfaces, thus never signaling the compositor that we want frame events.
2025-02-11 01:33:36 +01:00
Adam Scott
02cc1ec95b [Web] Add library emitter to make sources dependent of compiler version 2025-02-10 16:18:35 -05:00
Rémi Verschelde
19a30bb723 Wayland: Fix build config with so_wrap disabled
We should only include the vendored headers for Wayland and libdecor-0 when
we use `so_wrap`, i.e. when we *don't* build against system libraries.

The libdecor-0 pkg-config file includes the `libdecor-0/` prefix already,
so its header should be included without it, and likewise in our so wrappers.
Fixes #102671.
2025-02-10 21:42:25 +01:00
Thaddeus Crews
4b644ed1f5 Merge pull request #102341 from SheepYhangCN/rendering-driver-fallback-moltenvk
Implement Fallback to Vulkan for MoltenVK
2025-02-10 12:21:33 -06:00
Thaddeus Crews
c90fd7f3da Merge pull request #98066 from TCROC/fix-android-mono-export
Fix Android mono export with 2 or more cpu architectures fails
2025-02-10 12:21:32 -06:00
Thaddeus Crews
0b9fd7e190 Merge pull request #102627 from raulsntos/dotnet/android-export-validate-tfm
C#: Validate project TFM for Android template exports
2025-02-10 12:21:30 -06:00
Raul Santos
70ff213de5 C#: Validate project TFM for Android template exports
The C# Android export template includes `.jar` dependencies from .NET 8.0, so other TFMs are not supported.
2025-02-10 17:19:05 +01:00
Travis Lange
5e2fd7b1d7 fix android mono export causing conflicts 2025-02-10 10:09:52 -05:00
SheepYhangCN
c0eec97e98 macOS: Implement fallback from Metal to Vulkan for x86_64 2025-02-10 13:23:46 +01:00
Rémi Verschelde
82e66ac1f4 Merge pull request #102602 from adamscott/fix-fr+oss-layout-mk2
Fix `fr+oss` layout issues with KP period
2025-02-10 10:49:46 +01:00
Rémi Verschelde
eb4538b8a2 Merge pull request #102590 from syntaxerror247/custom-snackbar
Android: Add Snackbar UI component
2025-02-10 10:49:38 +01:00
Rémi Verschelde
e01ab79249 Merge pull request #102494 from dsnopek/java-class-wrapper-error-non-static-methods
JavaClassWrapper: Give additional error when trying to call non-static method directly on the class
2025-02-10 10:49:19 +01:00
Adam Scott
1376828ef6 Fix fr+oss layout issues with KP period
Co-authored-by: Riteo Siuga <riteo@posteo.net>
2025-02-08 17:17:11 -05:00
Anish Mishra
b89957efce Android: Add Snackbar UI component 2025-02-08 22:09:46 +05:30
Lukas Tenbrink
e34f1f504c Use std::size instead of sizeof(a) / sizeof(a[0]) pattern throughout the codebase. 2025-02-07 14:57:48 +01:00
Rémi Verschelde
06acfccf89 Merge pull request #102506 from akien-mga/mingw-gcc-lto-one-the-rocks
Workaround mingw-gcc LTO ICE by re-adding some dead code...
2025-02-07 01:40:08 +01:00
Rémi Verschelde
00d806a9ae Merge pull request #102470 from Hilderin/fix-floating-window-close-opened-dialog
Fix Floating Window request close when a dialog is opened
2025-02-07 01:39:38 +01:00
Rémi Verschelde
e12a424bc5 Workaround mingw-gcc LTO ICE by re-adding some dead code...
Not my finest work, but without that code removed in #102179, mingw-gcc 14.2.1 on Fedora 41
(but also confirmed with versions on macOS and WSL) crashes when linking with LTO.

We need to dig deeper to understand the bug, report it upstream and work it around in a
cleaner way. But for now this unblocks building Windows binaries with LTO, and should be
harmless.
2025-02-07 01:16:38 +01:00
David Snopek
96bde8f221 JavaClassWrapper: Give additional error when trying to call non-static method directly on the class 2025-02-06 12:45:29 -06:00
Hilderin
a9e06b8f64 Fix Modal Dialog with Embedded Game 2025-02-05 21:14:34 -05:00
Hilderin
a3d03717c0 Fix Floating Window request close when a dialog is opened 2025-02-05 20:34:32 -05:00
Rémi Verschelde
91907a89f7 Thirdparty: Harmonize patches to document downstream changes 2025-02-06 01:40:03 +01:00
Thaddeus Crews
a63a8b430b Merge pull request #102104 from Hilderin/fix-embedded-game-disappear-when-not-focused
Fix Embedded Game disappear when not focused on KDE 5
2025-02-05 10:27:38 -06:00
Thaddeus Crews
202fa8e503 Merge pull request #102446 from m4gr3d/export_renderer_project_setting_to_manifest
Export the `rendering/renderer/rendering_method.mobile` project setting to the AndroidManifest
2025-02-05 10:27:31 -06:00
Thaddeus Crews
a2d6e2e138 Merge pull request #102448 from adamscott/a-miserable-little-pile-of-secrets
Add `XK_KP_{Decimal,Enter}` to `KeyMappingX11::is_sym_numpad()`
2025-02-05 10:27:30 -06:00
Thaddeus Crews
2687833dec Merge pull request #102454 from DarioSamo/rd-async-fixes
Fix erroneous logic when flushes are involved on RD async methods.
2025-02-05 10:27:27 -06:00
Thaddeus Crews
ca3e268dfe Merge pull request #101754 from bruvzg/vk_oem_only
[Windows] Override key codes with Unicode values for OEM keys only.
2025-02-05 10:27:16 -06:00
Adam Scott
e34e127062 Add XK_KP_{Decimal,Enter} to KeyMappingX11::is_sym_numpad() 2025-02-05 10:54:46 -05:00
Hilderin
f7d1558bc0 Fix Embedded Game disappear when not focused on KDE 5
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-02-05 12:01:40 +01:00
Rémi Verschelde
b4e16b4520 Merge pull request #102314 from Hilderin/fix-floating-window-overlapping
Fix Floating Window overlapping when on screen edge on KDE
2025-02-05 11:34:05 +01:00
Rémi Verschelde
ab0c712bf5 Merge pull request #102311 from Hilderin/fix-floating-window-not-visible-after-restore
Fix Floating Window not visible after restore on KDE
2025-02-05 11:34:01 +01:00
Fredia Huya-Kouadio
9e4365f1a7 Export the rendering/renderer/rendering_method.mobile project setting to the AndroidManifest
The AndroidManifest already stores the Godot editor and library versions. The addition of this meta-data allows to identify Godot Android apps that may be subject to renderer specific issues addressed in future versions of the engine.
2025-02-04 21:11:56 -08:00
Thaddeus Crews
92ebcd2343 Merge pull request #102079 from bruvzg/emb_nmenu
Fix native popup menus position in embedded windows.
2025-02-04 09:04:09 -06:00
Pāvels Nadtočajevs
05ca80632d [Linux] Implement native color picker. 2025-02-03 16:30:44 +02:00
Thaddeus Crews
dfedfe7ac7 Merge pull request #102179 from bruvzg/remove_sim
Disable Metal and Vulkan renderers in simulator builds. Remove simulator support from editor/exporter.
2025-02-03 08:16:14 -06:00
Thaddeus Crews
480843cf2b Merge pull request #101812 from bruvzg/portal_chk
[FreeDesktop portal] Check for `FileChooser` and `Settings` interface availability instead of assuming it's always available.
2025-02-03 08:16:10 -06:00
Thaddeus Crews
d2995dcfe8 Merge pull request #102169 from Riteo/what-is-even-a-keypad
Linux/BSD: Modify only keypad keys
2025-02-03 08:16:08 -06:00
Riteo
140a63be25 Linux/BSD: Modify only keypad keys
The `keycode` field of `InputEventKey` is supposed to be "unshifted";
That is, what the key would output if no modifier keys were pressed.
This should match what's written on the key label, but `Key` enumerates
also all keypad keys, which require a modifier. We thus require some
extra checks for them.

Note that this can still allow "stuck keys", but that's an even deeper
problem.
2025-02-02 19:19:15 +01:00
Hilderin
bc0efb86a9 Fix Floating Window overlapping when on screen edge 2025-02-01 22:27:57 -05:00
Hilderin
150191353f Fix Floating Window not visible after restore on KDE 2025-02-01 21:08:39 -05:00
Pāvels Nadtočajevs
4b8cfc3040 Fix native popup menus position in embedded windows. 2025-02-01 21:31:03 +02:00
Thaddeus Crews
4f3dddbbff Merge pull request #101987 from Riteo/imagine-using-rids
Wayland: Check custom cursor resource reference for cache invalidation
2025-01-31 09:15:52 -06:00
Thaddeus Crews
295a1dd5f7 Merge pull request #102067 from Eddy-Rogers/102008-TempDirSlashes
Windows: Normalize slashes in return of `OS.get_temp_dir()`
2025-01-31 09:15:51 -06:00
Thaddeus Crews
a7e5469155 Merge pull request #102163 from adamscott/fix-glitched-audio-web
[Web] Fix audio issues with samples and GodotPositionReportingProcessor
2025-01-31 09:15:49 -06:00
Thaddeus Crews
81e17d879d Merge pull request #102109 from bruvzg/export_res
[Export] Respect icon/splash screen import settings.
2025-01-31 09:15:45 -06:00
Janis Kirsteins
e77a011188 Fix a crash in Joypad initialization on iOS
Creating a JoypadApple can trigger a notification to add a joypad (if
a device is already connected before the game is started). Observed
on iOS 18.2.1 with a Nimbus SteelSeries.

However at this point the Input singleton is not available yet, so
it will crash.

This commit moves JoypadApple initialization to `initialize_joypad()`
which is called explicitly after the Input singleton is available.

This is consistent with other platform joypad initialization.
2025-01-31 12:57:52 +01:00