Commit graph

5138 commits

Author SHA1 Message Date
Ozkan Sezer
b53f1b0644 update vulkan headers from khronos.
Some checks failed
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-06-07 02:10:50 +03:00
Sam Lantinga
55908f14f8 Added SDL_aligned_alloc_zero()
Some checks failed
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
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
7aGiven
8e6fed2cbf fix Korean caret position 2026-05-18 07:00:42 -07:00
Sam Lantinga
33e237eb67 visionos: persist all configurable window settings
Save the gaze indicator and dimmed mode setting as well as curvature
2026-05-17 11:35:30 -07:00
Sam Lantinga
ae25abeb0d Don't log game controller buttons in the keyboard handler on Android 2026-05-17 09:11:39 -07:00
Frank Praznik
9aae258aeb wayland: Adjust DnD coordinates when dragging over a mask subsurface 2026-05-17 11:52:10 -04:00
Frank Praznik
336d07c2b7 wayland: Implement Wayland_AcceptDragAndDrop()
This simply toggles a flag that rejects DnD offers if false. Events were previously dropped silently, but rejecting the offer makes some desktops display a proper icon when the drop will not work.
2026-05-17 11:52:10 -04:00
Ozkan Sezer
4aeac49311 update openxr headers from khronos. 2026-05-17 16:29:03 +03:00
Ozkan Sezer
322dfd3ada update vulkan headers from khronos. 2026-05-17 16:29:03 +03:00
Ozkan Sezer
968b0c6910 update gl/egl headers from khronos. 2026-05-17 16:29:03 +03:00
Ozkan Sezer
75c94e9b31 SDL_opengl_glext.h, src/video/directx/d3d12.h: revert unintended changes from commit d70578b9aa 2026-05-17 16:28:29 +03:00
Ozkan Sezer
b24feafaa2 cygwin: patch vulkan headers for VKAPI_CALL and enable vulkan in cmake 2026-05-17 09:55:31 +03:00
Ozkan Sezer
2cd5cd2a42 cygwin: patch egl/opengles headers for EGLAPIENTRY 2026-05-17 09:55:31 +03:00
Anonymous Maarten
2038005657 video: don't use NEON blitters when SDL_HasNEON returns false 2026-05-17 04:41:56 +02:00
Cameron Gutman
060b74a664 mouse: Restrict GCMouse to macOS Sonoma and later 2026-05-16 15:43:33 -07:00
stahta01
6586bebfec
Fix Cygwin building and add CI (#15566)
Co-authored-by: TrueCat17 <truecat17@gmail.com>
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
2026-05-15 08:48:24 -07:00
Anonymous Maarten
d5af35e3fb surface: cannot set a palette to a non-indexed surface
This fixes a UBSAN warning later in this function where it calculates
(1 << SDL_BITSPERPIXEL(surface->format)). The bpp might be >= 32 and
out of range for a bit shift.
2026-05-14 20:53:45 -07:00
Cameron Cawley
a3376acc2e Replace custom NEON cast macros with vreinterpret_*_* 2026-05-14 09:16:25 -07:00