Commit Graph

13392 Commits

Author SHA1 Message Date
Sam Lantinga
63d2635719 Added SDL_HINT_AUDIO_DUCK_OTHERS
Previously default audio on Apple platforms would duck other audio streams. This is unexpected, so by default we won't do that and you can use the hint SDL_HINT_AUDIO_DUCK_OTHERS to re-enable that behavior.
2026-05-17 08:47:36 -07:00
ceski
5b98c1cc2f Add capacitive sense gamepad events (#15627) 2026-05-17 08:26:29 -07:00
Sam Lantinga
34c3fdd350 Added extended internal controller types 2026-05-17 06:52:47 -07: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
Tap
1f7a42a7b9 Correct steam triton haptic commands
The listed report IDs are incorrect - there is no skipped ID
2026-05-17 06:23:47 -07: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
Christian Semmler
db7ac820f9 emscripten: Fix crash on Safari when probing gamepad rumble support
Safari's older Gamepad API exposes `vibrationActuator` with `playEffect`
and `reset` but no `effects` enumeration array. The probe added in
651136ac7 dereferences `vibrationActuator['effects']['includes']`
unconditionally, throwing `TypeError: undefined is not an object` on
every Safari client that opens a connected gamepad. Add the missing
`['effects']` null check so the probe returns false on Safari instead
of aborting.
2026-05-16 15:47:41 -07:00
Cameron Gutman
060b74a664 mouse: Restrict GCMouse to macOS Sonoma and later 2026-05-16 15:43:33 -07:00
Ryan C. Gordon
5e483dc166 android: Build the APK asset tree in the same order its listed in the file.
This tends to get you enumerations in alphabetical order, instead of them
being reverse-alphabetical.

Reference Issue #15587.
2026-05-16 15:29:46 -04:00
Ryan C. Gordon
497b2118ba android: Don't forbid paths of "" in the APK assets tree.
This would make `SDL_EnumerateDirectory("assets://")` fail.

We check for empty strings at the higher level already, before we strip out
the "assets://" prefix to pass through the tree.
2026-05-16 15:26:47 -04:00
ceski
2ebf23014f Add Steam Deck capacitive touch sticks, trackpad clicks, and mapping (#15612) 2026-05-16 09:04:20 -07:00
A1029384756
072b2b74c7 fix tooltips not showing on KDE 2026-05-16 07:49:55 -07:00
Ozkan Sezer
3ba4b6b28e SDL_gpu_d3d12.c: fix cygwin -Wformat-warnings 2026-05-16 14:55:50 +03:00
Ozkan Sezer
880ddb9ca3 SDL_dinputhaptic.c, SDL_dinputjoystick.c: replace %lu usage with new cygwin-friendly macros. 2026-05-16 09:24:33 +03:00
Ozkan Sezer
e972e6a01b core/android/SDL_android.c (AddAPKDirs): add missing opening brace
fixes build errors
2026-05-16 09:08:08 +03:00
Ryan C. Gordon
4910498820 android: EnumerateDirectory and GetPathInfo should fail for a path of "".
Otherwise, this will get appended to the internal storage path, etc, making a
real directory when it shouldn't.

Reference Issue #15587.
2026-05-16 01:16:23 -04:00
Ryan C. Gordon
37af10db4d android: Support "." and ".." in asset tree paths.
Reference Issue #15587.
2026-05-16 01:16:22 -04:00
Ryan C. Gordon
e1d623505e android: Remove call to mktime() in APK entry parsing. 2026-05-16 01:16:22 -04:00
ceski
c00d7b4bf5 Add Steam Controller mapping (#15601)
Also fixed Hori QAM button mapping
2026-05-15 19:18:38 -07:00
John Schoenick
0ffb0bdd87 unix: Fix infinite looping in SDL_FriBidi_Process if len > 127
start/end should be FriBidiStrIndex here -- using FriBidiLevel makes
them `signed char` and the loop here will become infinite if `end` is
> 127.
2026-05-15 15:40:29 -07:00
Rachel Blackman
d83e7bf79e Add Gamesir Supernova in Xinput mode to controller list 2026-05-15 13:25:41 -07:00
Evan Hemsley
86296ac8f0 GPU: Set missing fields on Vulkan swapchain texture (#15606) 2026-05-15 11:43:57 -07:00
Sam Lantinga
aeacf42e06 gameinput: only add the share button for known Xbox Series X controllers
The HID descriptor for the latest firmware always includes the share button, and GameInput will report it as always available, so double check against our list of classic Xbox One controllers and don't include the button on controllers that don't have it.
2026-05-15 11:01:31 -07:00
Sam Lantinga
a95ce7e734 Detect the GameSir Super Nova in Xbox 360 mode 2026-05-15 10:13:15 -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
Ryan C. Gordon
be97a18d82 android: Don't allow access to the asset tree with a path of "".
Reference Issue #15587.
2026-05-15 10:34:30 -04:00
Ryan C. Gordon
e1fa336ac4 android: Don't ever enumerate absolute paths from the assets tree.
This could happen if opendir() failed for a reason other than the directory
missing (for example, `opendir("/")` fails with EACCES.

Reference Issue #15587.
2026-05-15 10:29:42 -04: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
Rachel Blackman
eb340388fc Fix HIDAPI support for Flydigi Vader 5 Pro (#15594) 2026-05-14 17:32:25 -07:00
Evan Hemsley
f286e420af GPU: Refactor Vulkan barriers to fix defrag segfault (#15593) 2026-05-14 17:01:13 -07:00
Sam Lantinga
c9bb41bd9c Fixed build when GameInput is enabled 2026-05-14 16:52:40 -07:00
ceski
f3faf67c64 Add Steam Controller touchpads, capacitive touch for sticks, and grip sense (#15528) 2026-05-14 16:26:26 -07:00
Ozkan Sezer
4d95a63fe3 fix build after commit 2c4e6ed358:
move SDL_UsingGameInputForXInputControllers() to core/windows/SDL_gameinput.cpp
because joystick/gdk/SDL_gameinputjoystick.cpp isn't always added to build.
2026-05-14 23:11:22 +03:00
Ryan C. Gordon
0e07b7c5e2 android: Comment out debug logging.
Reference Issue #15587.
2026-05-14 15:58:15 -04:00
crudelios
439ffd13eb Android: Add support for folder dialogs 2026-05-14 11:50:52 -07:00
Sam Lantinga
2c4e6ed358 Enable GameInput v3 by default if it's available
GameInput is now the most functional Windows API for handling XInput controllers.
2026-05-14 10:18:58 -07:00
Anonymous Maarten
d57c3b685c gameinputjoystick: %02hhX emits a -Wformat warning 2026-05-14 18:42:46 +02:00
Anonymous Maarten
8122b8f2ac gameinput.h emits a few Wundef warnings (WINAPI_PARTITION_* macros) 2026-05-14 18:42:46 +02:00
Cameron Cawley
a3376acc2e Replace custom NEON cast macros with vreinterpret_*_* 2026-05-14 09:16:25 -07:00
Sam Lantinga
0defb4ddfc Added controller sensor support for GameInput v3
Verified working with the DualSense controller
2026-05-13 23:41:29 -07:00
Vlad-Florin Ilie
b333c04ccc Fix Steam Controller 2026 (triton) rumble (#15558) 2026-05-13 23:40:55 -07:00
Gabriel Wang
0f175891a6 Add SVE2 SIMD Alpha-Blending Blitter (#15504)
SVE/SVE2 is a new SIMD extension for AArch64. Compared to NEON, SVE/SVE2 brings the following benefits that are good for SDL projects:

- Lane prediction: we don't have to treat the tail part of a stride separately when the width is n times the hardware vector size
- Although the performance is almost no difference from NEON when the hardware vector size is 128bits, when the hardware provides a longer vector size, e.g. 256, 512, ... 2048, we can enjoy the large performance gain without modifying the source code or recompiling a library.

The functional correctness is validated in a dedicated [qemu project](https://github.com/GorgonMeducer/aarch64_qemu_mac_template/tree/SDL-SVE2-Acceleration-Validation).

The performance is tested on [Radxa Orion 6 N](https://radxa.com/products/orion/o6n/), which provides 4x A720 and 4x A520 processors. Since the vector size is 128 bits, which is the same as NEON, the performance is almost the same (or no worse than) the NEON acceleration.
2026-05-13 23:37:46 -07:00
Sam Lantinga
0e5e772ba9 Fixed windows getting the wrong size when setting size and aspect ratio back to back 2026-05-13 20:39:38 -07:00
Cameron Cawley
e50faf4e6a Support the full set of standard CSS cursors 2026-05-13 20:24:44 -07:00
Sam Lantinga
4884dbbe56 Added SDL_SendGamepadEffect() support for the new Steam Controller 2026-05-13 20:14:50 -07:00