Commit Graph

5154 Commits

Author SHA1 Message Date
Sam Lantinga
a45ef5dc64 Added RIDEV_NOLEGACY to improve performance in mouse relative mode (thanks @whrvt!)
This change also makes it so relative mode doesn't kick in until the mouse enters the window client area. This prevents relative mode from kicking in while clicking and dragging on the title bar, etc.
2026-06-23 07:10:25 -07:00
Sam Lantinga
07ecc125cf Added SDL_PIXELFORMAT_P408 and SDL_PIXELFORMAT_P416 2026-06-22 17:01:54 -05:00
Brent Page
65091012b4 Add more information for pinch gestures on mobile (#15092) 2026-06-21 20:30:50 -07:00
Semphriss
e52dbf4442 Add basic Ubuntu Touch functions #12543
This adds support for:
* System theme
* Sandbox detection
* Device form factor detection

Many things aren't properly supported yet, but changes and upgrades will happen on the Ubuntu Touch side, so SDL should automatically support more Ubuntu Touch features as time goes.
2026-06-21 11:51:15 -07:00
Semphriss
d474769878 Detect device form factor (#12584) 2026-06-21 08:33:13 -07:00
Frank Praznik
b3f8367134 wayland: Make external window reconfiguration more robust
External window surfaces can't be destroyed and recreated, so try our best to reconfigure them when switching between GL profiles, or between GL and Vulkan.
2026-06-19 13:07:16 -04:00
Frank Praznik
06795b00ad wayland: Attach EGL objects to custom and external surfaces during reconfiguration
They are required when using EGL with an external surface.
2026-06-18 10:56:20 -04:00
Frank Praznik
dbfddb6409 wayland: External windows are never hidden
Needed for the GPU renderer to function properly.
2026-06-18 10:56:20 -04:00
Sam Lantinga
c9b6581210 Added SDL_HINT_ENABLE_STEAM_SCREEN_KEYBOARD 2026-06-17 16:48:54 -07:00
ItchyTrack
a3e47fb4dc Add "/usr/local/lib/libvulkan.dylib" as a path checked when loading Vulkan on MacOS 2026-06-16 11:13:43 -07:00
Sam Lantinga
ca66808c80 Reduce log message verbosity when shutting down KMSDRM
Fixes https://github.com/libsdl-org/SDL/issues/13569
2026-06-16 09:18:13 -07:00
Ryan C. Gordon
e936ac8748 video: Removed FIXME for something we cannot fix.
Reference Issue #11992.
2026-06-16 11:50:04 -04:00
Frank Praznik
34af24276f EGL: Always pass the platform type when available
Always pass the EGL platform type for Wayland and X11, or the driver could potentially select the wrong backend if certain envvars are misconfigured.
2026-06-12 10:00:37 -04:00
Frank Praznik
8275f6e90d Add D-Bus notification driver
Use the core and portal notification implementations to dispatch system notifications.
2026-06-10 13:25:38 -04:00
expikr
ed43ec0277 don't fetch timestamp again 2026-06-10 06:26:52 -07:00
Ryan C. Gordon
de51952c2e dos: Fixed a comment typo 2026-06-08 22:35:16 -04:00
Ozkan Sezer
b53f1b0644 update vulkan headers from khronos. 2026-06-07 02:10:50 +03:00
Sam Lantinga
55908f14f8 Added SDL_aligned_alloc_zero() 2026-06-05 13:55:32 -07:00
Sam Lantinga
fa2a726cc3 Added SDL_CreateSurfaceUninitialized()
Currently this is an internal API, but we can expose it in the future.
2026-06-05 09:14:07 -07:00
Sam Lantinga
64def01534 Fixed some Wayland cursor related thread-safety warnings 2026-06-02 16:51:58 -07:00
Rachel Blackman
a7ecd5f777 OpenVR: Actually quit correctly if we get a close/quit message. 2026-05-27 17:40:30 -07:00
Sam Lantinga
76560f9e47 Revert "android: fixed a possible joystick-related deadlock on application termination"
This reverts commit 6b4ae68460.

It turns out this deadlock is possible for any joystick event delivery combined with an event watcher that locks joysticks. I'm reverting this change for now, and will be working on a better global solution for this problem.
2026-05-27 13:07:46 -07:00
Frank Praznik
6a3b0413dc x11: Fix boolean/enum comparison
This could set the pending flag even if there was no state change requested, which would cause errant sync timeouts in certain situations.
2026-05-27 12:15:21 -04:00
Ryan C. Gordon
22fb9edd5c x11: SetupWindowData shouldn't add to videodata->windowlist until success.
Fixes #15676.
2026-05-27 11:43:57 -04:00
Frank Praznik
cd0b796a6e video: Only ignore modes with a lower color depth in SDL_GetClosestFullscreenDisplayMode()
If a mode with a closer refresh was found, but it had the same color depth as the current best match, it was being dropped. Only ignore the new mode if the color depth is below the current best match.
2026-05-26 18:27:25 -04:00
Gabriel Wang
f2dba2626e SVE2: Improves SVE2 8888 swizzling performance and important fixes (#15662)
* SVE2 was actually disabled in fdfbbce, this issue is fixed
  - The macro __ARM_FEATURE_SVE  is only defined when the compilation target is set as -march=armv8-m+sve2
* Improves 8888 alpha-blending performance
  - Now, in In-Order AArch64 processors, e.g. A520, SVE2 is better than NEON with the 128bit vector width
  - For Out-of-order processors, NEON is still better than SVE2 (We could improve this in the future), the performance is improved from 3.0 to 3.6.
* The 8888 -> RGB565 performance is also improved (from 7.4 to 9.3)
2026-05-26 07:57:44 -07:00
Ozkan Sezer
15dca0766f add GLES headers from Khronos. 2026-05-26 16:56:12 +03:00
Ozkan Sezer
29f7f08261 pdate openxr headers from khronos. 2026-05-24 18:40:50 +03:00
Frank Praznik
0a96d47599 wayland: Remove focus references when a pointer capture ends on a subsurface
The core mouse code will unfocus the window when a capture ends outside the window boundaries, but the backend still needs to update the internal focus references.
2026-05-23 12:20:30 -04:00
Frank Praznik
e7b238a6ed Fix casting errors 2026-05-22 12:30:11 -04:00
Frank Praznik
5f8eb44541 wayland: Handle captured pointer movements over a subsurface
Some compositors will send pointer enter/leave event while moving between surfaces that are part of the same window while mouse capture is active. Maintain window focus in this case, and adjust the coordinates relative to the content surface by the subsurface offset, if necessary.
2026-05-22 11:47:23 -04:00
Jason Millard
290f0c831f iOS: Fix SDL_EVENT_DROP_FILE lost on cold start from URL open 2026-05-22 07:16:43 -07:00
Vittorio Romeo
7f03da9588 emscripten: dedupe keyboard event listeners across multiple windows 2026-05-22 07:11:10 -07:00
Sam Lantinga
6b4ae68460 android: fixed a possible joystick-related deadlock on application termination 2026-05-21 12:20:03 -07:00
Sam Lantinga
19d73016e8 Fixed a rare crash on Raspberry Pi when creating a window 2026-05-20 15:11:09 -07:00
Sam Lantinga
0dbd9d2a65 Fixed a rare crash on Raspberry Pi when creating a window 2026-05-20 14:56:54 -07:00
Frank Praznik
ef9a5b7040 x11: Ignore slave button presses when the window lacks keyboard focus
XInput2 can send slave button presses before FocusIn events, which can confuse the click-through suppression logic. A window must have keyboard focus to grab the mouse anyway, so ignore slave presses when lacking keyboard focus.
2026-05-20 13:05:38 -04:00
Frank Praznik
8371c09aa7 x11: Reject click-through button events based on serial
XInput2 may send mouse buttons presses on both the master and slave devices, and the click-through button event should be ignored on both if required.
2026-05-20 13:05:38 -04:00
Vittorio Romeo
35098e927c emscripten: don't dispatch user input to hidden windows 2026-05-19 21:15:22 -07:00
Sam Lantinga
f9380e15de visionOS: fixed mousewheel values
Here are the observed values using a Bluetooth mouse on visionOS 26.5

Slow scroll up:
Mouse scroll: 0,-0.017334
Mouse scroll: 0,0
Mouse scroll: 0,-0.017334
Mouse scroll: 0,0

Slow scroll down:
Mouse scroll: 0,0.017334
Mouse scroll: 0,0
Mouse scroll: 0,0.017334
Mouse scroll: 0,0

Fast scroll up:
Mouse scroll: 0,-0.017334
Mouse scroll: 0,-9.36021
Mouse scroll: 0,-100.08
Mouse scroll: 0,-75.2287
Mouse scroll: 0,-82.2284
Mouse scroll: 0,-92.0137
Mouse scroll: 0,-95.1917
Mouse scroll: 0,-101.846
Mouse scroll: 0,-203.266
Mouse scroll: 0,0

Fast scroll down:
Mouse scroll: 0,0.017334
Mouse scroll: 0,11.424
Mouse scroll: 0,59.3571
Mouse scroll: 0,68.7859
Mouse scroll: 0,267.834
Mouse scroll: 0,95.0823
Mouse scroll: 0,201.809
Mouse scroll: 0,0
2026-05-19 15:41:04 -07:00
Sam Lantinga
cfed9b3aca Allow setting NULL palette on any surface
Fixes https://github.com/libsdl-org/SDL/issues/15654
2026-05-19 14:22:32 -07:00
Sam Lantinga
0e480bee30 visionOS: re-enable dimming mode 2026-05-18 16:59:01 -07:00
Sam Lantinga
7f7c1628cb visionOS: use black instead of white for the mouse overlay
White is easier to see and people notice the overlay showing up when mouse input is enabled
2026-05-18 13:43:09 -07:00
Sam Lantinga
b4ebf70e0c visionOS: dimming doesn't seem to be reliable, so disable it for now 2026-05-18 13:43:09 -07:00
Frank Praznik
f31ca02723 video: Windows keep any position set when in fullscreen after leaving fullscreen
Adds an automated test for the behavior as well.
2026-05-18 09:09:49 -07:00
Susko3
b608108593 Properly fix cursor position in Korean IME 2026-05-18 09:01:01 -07:00
Gabriel Wang
508450e9c0 adds Blit565to565SurfaceAlphaSVE2 2026-05-18 07:10:05 -07:00
Gabriel Wang
e07cfdff2c adds sdl_sve_chn_blend_with_mask_fast for RGB565 alpha-blending 2026-05-18 07:10:05 -07:00
Gabriel Wang
8d9d6b1b2b apply simplified sve2 macro protection 2026-05-18 07:10:05 -07:00
7aGiven
296231e999 WM_IME_SETCONTEXT not set 0 2026-05-18 07:05:09 -07:00