Sam Lantinga
4478ad67d2
Lock joysticks when they are connected/disconnected on emscripten
...
Fixes https://github.com/libsdl-org/SDL/issues/11499
(cherry picked from commit 0281071243 )
(cherry picked from commit d9836d15e7 )
2025-12-08 21:01:47 -08:00
Sam Lantinga
385e995790
Check for wine_get_version() to detect Wine/Proton
...
If this application is being run under Wine but Steam doesn't know that, Steam won't set STEAM_COMPAT_PROTON. So we'll use wine_get_version() to detect that we're running under Wine instead.
(cherry picked from commit e2e8f86076 )
(cherry picked from commit f36d683b61 )
2025-11-12 23:09:35 -08:00
Sam Lantinga
a069ac41e5
Don't check SteamVirtualGamepadInfo when running as Wine
...
Wine will ignore the Steam Virtual Gamepad if it looks like it has the original (blocked) controller VID/PID.
Fixes https://github.com/libsdl-org/SDL/issues/14410
(cherry picked from commit 493bc621e4 )
(cherry picked from commit 5bdf7bc625 )
2025-11-12 23:09:35 -08:00
Sam Lantinga
e458305c43
Clamp the audio drain delay to 100 ms
...
Fixes https://github.com/libsdl-org/SDL/issues/9829
(cherry picked from commit 0882623092 )
(cherry picked from commit 6db23faa44 )
2025-11-02 11:20:55 -08:00
Sam Lantinga
3ff58bf062
Don't consider USB devices which have already been skipped
...
Fixes https://github.com/libsdl-org/SDL/issues/14367
(cherry picked from commit 6570d9e23f )
2025-11-02 09:25:43 -08:00
Sam Lantinga
7eb78c5070
Fixed the right touchpad calculation for the BLE Steam Controller
...
Fixes https://github.com/libsdl-org/SDL/issues/14368
(cherry picked from commit eb87a36940 )
(cherry picked from commit 2bb0eb4641 )
2025-11-02 08:34:41 -08:00
Sam Lantinga
80cbc908a1
Perform full rectangle intersection for empty rects
...
If we don't do that, we leave the x and y values uninitialized.
Fixes https://github.com/libsdl-org/sdl12-compat/issues/365
(cherry picked from commit ffd0ca4391 )
(cherry picked from commit 1c19bee000 )
2025-10-25 13:52:34 -07:00
Sam Lantinga
7fe49da380
Removed UWP workflow from CI
...
The GitHub runners no longer have the needed SDK for this
(cherry picked from commit ecb72142fd )
2025-09-19 08:34:09 -07:00
Sam Lantinga
394d9bfa1a
Remove Windows 32-bit ARM build from CI
...
This architecture is deprecated and is now failing with:
Windows SDK 10.0.22621.0 : 'C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um' not found or was incomplete
Fixes https://github.com/libsdl-org/SDL/issues/13949
(cherry picked from commit cc3274b6f1 )
(cherry picked from commit b55059b487 )
2025-09-14 18:03:32 -07:00
Sam Lantinga
ecc71c02ea
Only use a transparent cursor on Windows when connected via RDP
...
VMware relies on the cursor being set to NULL to optimize relative mouse motion for games.
We should also revisit whether current RDP works better with a NULL cursor or a transparent cursor.
Fixes https://github.com/libsdl-org/SDL/issues/13700
(cherry picked from commit dac6af4ba6 )
(cherry picked from commit 55b599d693 )
2025-09-14 17:32:38 -07:00
Sam Lantinga
2db8436d8c
Updated to version 2.32.11 for development
2025-09-01 15:12:02 -07:00
Sam Lantinga
5d24957039
Updated to version 2.32.10 for release
2025-09-01 14:33:27 -07:00
Sam Lantinga
54772f345a
Support the "ambient" value for SDL_HINT_AUDIO_CATEGORY
...
Fixes https://github.com/libsdl-org/SDL/issues/13732
(cherry picked from commit 4725213eef )
(cherry picked from commit 5e85a29e75 )
2025-08-12 09:55:27 -07:00
Sam Lantinga
e257904eb3
Revert "autotools, android: Support Google Play 16 KB Page Size Requirement"
...
This reverts commit 9f1cc301a7 .
If you need to support the Google Play 16 kiB page size requirement, the recommendation is to use NDK r28c or newer, which automatically aligns binaries correctly.
2025-08-07 11:37:57 -07:00
Sam Lantinga
cc7a73e727
Revert "Support Google Play 16 KB Page Size Requirement ( #13470 )"
...
This reverts commit e321995244 .
If you need to support the Google Play 16 kiB page size requirement, the recommendation is to use NDK r28c or newer, which automatically aligns binaries correctly.
2025-08-07 11:37:44 -07:00
Sam Lantinga
c1b8ac9764
Fixed Nintendo Switch Pro thumbstick calibration
...
Fixes https://github.com/libsdl-org/SDL/issues/13246
(cherry picked from commit 038a3806eb )
(cherry picked from commit 6a71328638 )
2025-06-21 20:06:37 -07:00
Sam Lantinga
98d1f3a45a
Updated to version 2.32.8 for release
2025-06-02 16:00:39 -07:00
Sam Lantinga
4177e06c09
Fixed rare crash trying to interrupt SDL_WaitEvent()
...
Fixes https://github.com/libsdl-org/SDL/issues/12797
(cherry picked from commit 992e4c59bd )
(cherry picked from commit 33eb167da8 )
2025-05-19 14:24:41 -07:00
Sam Lantinga
3364486f56
Define illegal_instruction() when it will be actually used
...
(cherry picked from commit 29d2116495 )
(cherry picked from commit 2163887f29 )
2025-05-08 13:10:28 -07:00
Sam Lantinga
a5fad8b0cb
Updated to version 2.32.7 for development
2025-05-04 09:18:06 -07:00
Sam Lantinga
6510d6ccbf
Updated to version 2.32.6 for release
2025-05-04 08:52:05 -07:00
Sam Lantinga
8b7a088efc
Call IOHIDDeviceClose() if needed in hid_close() on macOS
...
Unregistering the input report callback marks the device as disconnected, so IOHIDDeviceClose() would never be called if the device wasn't already disconnected when hid_close() was called.
Fixes https://github.com/libsdl-org/SDL/issues/12255
(cherry picked from commit 2442c85cb8 )
2025-04-29 11:24:27 -07:00
Sam Lantinga
7fc5edab8e
Revert "Don't leak device handle in macOS 10.10 or newer"
...
This reverts commit 5925c27efb .
Fixes https://github.com/libsdl-org/SDL/issues/12807
(cherry picked from commit 5b951141d2 )
2025-04-29 11:24:27 -07:00
Sam Lantinga
f46ef5d76d
Fixed reliability of initializing Switch controllers on macOS
...
It looks like both macOS (15.1.1) and SDL are trying to talk to the controller at the same time, which can cause interleaved replies or even locking up the controller. Waiting a bit before talking to the controller seems to take care of this.
(cherry picked from commit 45b01d16b1 )
2025-04-28 20:23:37 -07:00
Sam Lantinga
64ad33884d
Updated to version 2.32.5 for development
2025-03-31 12:58:50 -07:00
Sam Lantinga
2359383fc1
Updated to version 2.32.4 for release
2025-03-31 09:12:51 -07:00
Sam Lantinga
b2a95b2482
Default SDL_HINT_ACCELEROMETER_AS_JOYSTICK to 0 on Linux
...
The Linux joystick driver supports associating sensor devices with the related controller device, so enable that by default.
Fixes https://github.com/libsdl-org/SDL/issues/12043
(cherry picked from commit 3e47181800 )
2025-03-25 09:09:59 -07:00
Sam Lantinga
9b048e73a2
Fixed raw input device GUIDs changing randomly between runs
...
On Windows 11, apparently HidD_GetManufacturerString() and HidD_GetProductString() can return TRUE without actually filling in any string data.
Fixes https://github.com/libsdl-org/SDL/issues/12566
(cherry picked from commit 4fc9509ab7 )
(cherry picked from commit 52146cf067 )
2025-03-17 13:57:58 -07:00
Sam Lantinga
d3bb91522f
Fixed crash if info->path is NULL
...
(cherry picked from commit 715301cef5 )
(cherry picked from commit 46a51b4298 )
2025-03-17 09:48:13 -07:00
Sam Lantinga
f08a5cfcab
Fixed sscanf("026", "%1x%1x%1x", &r, &g, &b)
...
Fixes https://github.com/libsdl-org/SDL/issues/12510
(cherry picked from commit be6ed6e9c4 )
(cherry picked from commit 1caae3e9e4 )
2025-03-10 15:45:43 -07:00
Sam Lantinga
53c022c880
Updated to version 2.32.3 for development
2025-03-01 18:13:50 -08:00
Sam Lantinga
e11183ea6c
Updated to version 2.32.2 for release
2025-03-01 18:03:11 -08:00
Sam Lantinga
024c27645a
Added support for the "%n" sscanf format specifier
...
(cherry picked from commit 6980325310 )
(cherry picked from commit ab44451578 )
2025-02-25 08:08:55 -08:00
Sam Lantinga
8b0c9e1dce
Don't leak device handle in macOS 10.10 or newer
...
Merged upstream fix for macOS:
https://github.com/libusb/hidapi/commit/cdc473dfe43f6432dda7ad53d7656b8ae8ff968b
In one of the early versions of macOS, when you try to close the device
with IOHIDDeviceClose() that is being physically disconnected.
Starting with some version of macOS, this crash bug was fixed,
and starting with macSO 10.15 the opposite effect took place:
in some environments crash happens if IOHIDDeviceClose() is _not_ called.
This patch is to keep a workaround for old versions of macOS,
and don't have a leak in new/tested environments.
Fixes https://github.com/libsdl-org/SDL/issues/12255
(cherry picked from commit 5925c27efb )
2025-02-19 17:00:05 -08:00
Sam Lantinga
7a44b1ab00
Updated to version 2.32.0 for release
2025-02-08 09:10:22 -08:00
Sam Lantinga
3e97d41da4
Updated to version 2.31.1 for RC build
2025-02-08 08:56:53 -08:00
Sam Lantinga
ed7e7edb70
Don't use the HIDAPI driver for Thrustmaster wheels
...
Closes https://github.com/libsdl-org/SDL/pull/12173
(cherry picked from commit 6782cfe2c5 )
2025-02-05 17:21:48 -08:00
Sam Lantinga
2847273885
Fixed mis-cherry-pick
2025-02-01 11:03:33 -08:00
Sam Lantinga
482d964733
Don't filter out controllers when launched by Steam under Proton
...
Fixes https://github.com/libsdl-org/SDL/issues/11579
Fixes https://github.com/libsdl-org/SDL/issues/12106
(cherry picked from commit 3060105cfa )
2025-01-31 15:40:21 -08:00
Sam Lantinga
da0cf3f634
Fixed detecting Steam Deck controller on Proton 9.04
...
Newer versions of Proton properly pass through the Steam virtual gamepad VID/PID, but older Proton (9.x and older) don't, so we have to rely on Steam and Proton hiding controllers we shouldn't have access to.
Fixes https://github.com/libsdl-org/SDL/issues/12106
2025-01-31 15:32:33 -08:00
Sam Lantinga
55a75875f0
Improved XInput controller detection
...
Sometimes we'll get a Windows.Gaming.Input callback before the raw input device is even in the list, so try some other methods to better detect XInput devices.
2025-01-31 08:45:20 -08:00
Sam Lantinga
0efe8892d6
Skip IsRegularFileOrPipe() check on Emscripten
...
The sandbox guarantees that this will be true.
Fixes https://github.com/libsdl-org/SDL/issues/12108
(backported from from commit 1c7cc60286 )
2025-01-28 10:47:10 +03:00
Sam Lantinga
4b19f7e012
Added support for the 8BitDo Ultimate 2C Wireless in Bluetooth mode
...
Closes https://github.com/libsdl-org/SDL/pull/11415
(cherry picked from commit c7d1fd90ea )
2025-01-18 07:07:12 -08:00
Sam Lantinga
9f25821ffd
Fixed detection of function keys on Emscripten
...
Fixes https://github.com/libsdl-org/SDL/issues/11973
(cherry picked from commit 67382e9c83 )
2025-01-16 07:32:38 -08:00
Sam Lantinga
91b76f5c29
Fixed potentially overlapping memcpy() to use memmove()
2025-01-14 14:34:29 -08:00
Sam Lantinga
adb51845af
Fixed N3DS_TOUCH_ID, 0 is an invalid touch ID
2025-01-01 09:06:23 -08:00
Sam Lantinga
5a25183b39
Revert "Backed out Vita touch ID change for SDL2"
...
This reverts commit a326ebce61 .
It turns out that 0 is an invalid touch ID for SDL2, per the documentation for SDL_GetTouchDevice()
2025-01-01 09:03:24 -08:00
Sam Lantinga
a326ebce61
Backed out Vita touch ID change for SDL2
...
0 is still a valid touch ID in SDL2 and shouldn't be changed at this point
2025-01-01 08:24:31 -08:00
Sam Lantinga
2b5b8fdbd5
Updated copyright for 2025
2025-01-01 07:47:53 -08:00
Sam Lantinga
0efb7c7829
Fixed spacing
2024-12-30 10:05:40 -08:00
Sam Lantinga
ddfdb0ca7b
Don't overwrite non-CRC gamepad mapping with a new mapping that specifies a CRC
...
Fixes https://github.com/libsdl-org/SDL/issues/11723
(cherry picked from commit 1413bfb185 )
2024-12-26 20:20:39 -08:00
Sam Lantinga
348bb53cc1
Corrected CoreAudio surround sound channel layouts
...
Fixes https://github.com/libsdl-org/SDL/issues/11709
(cherry picked from commit b2178857dc )
2024-12-24 15:10:35 -08:00
Sam Lantinga
884c8b684a
Allow rendering during the modal resize loop on macOS
...
Fixes https://github.com/libsdl-org/SDL/issues/11508
(cherry picked from commit 9a43c08146 )
2024-12-23 11:55:49 -08:00
Sam Lantinga
974098464f
Enable high refresh rates on iOS
...
Fixes https://github.com/libsdl-org/SDL/issues/7518
(cherry picked from commit 835b6e0c1a )
2024-12-18 14:43:33 -08:00
Sam Lantinga
7f880c9121
Fixed crash if the controller product name is NULL
...
This happens when the Razer Synapse software emulates a controller with a keyboard
(cherry picked from commit 7117d545a3 )
2024-12-17 16:54:55 -08:00
Sam Lantinga
9791069d78
Fixed Chinese locales on PSP (thanks @ccawley2011!)
...
(cherry picked from commit 962268ca21 )
2024-12-10 14:48:14 -08:00
Sam Lantinga
e539135104
Fixed potential buffer overflow
...
(cherry picked from commit 6aab5a089d )
2024-12-03 08:34:34 -08:00
Sam Lantinga
a5da9be5e6
Fixed build
2024-11-24 17:54:55 -08:00
Sam Lantinga
f1a3a18c1e
Removed SDL_HINT_ENABLE_STEAM_CONTROLLERS
...
This was only respected on Steam Link hardware, which now uses SDL3 where it has been replaced by SDL_HINT_JOYSTICK_HIDAPI_STEAM.
2024-11-08 15:23:31 -08:00
Sam Lantinga
74ff82f4a2
Support multiple joystick buttons bound to the same gamepad button
...
(cherry picked from commit ed943318e2 )
2024-11-05 11:50:18 -08:00
Sam Lantinga
3b7a45853c
Fixed the PS5 controller face buttons on Amazon Fire TV, Android 11
...
(cherry picked from commit 09495059df )
2024-10-30 05:23:54 -07:00
Sam Lantinga
d2b9ecd281
Revert "aaudio: Set low-latency audio mode."
...
This reverts commit 1e016fd5ea .
In order to use low latency mode, you need to set low latency callbacks. This has always been recommended and is apparently required on Android 15. SDL3 has these implemented correctly but SDL2 does not, so we should revert this for now.
Fixes https://github.com/libsdl-org/SDL/issues/11376
2024-10-29 22:32:59 -07:00
Sam Lantinga
b6fa4dc794
Only use Steam Virtual Gamepads if we're running under Steam
...
Fixes https://github.com/libsdl-org/SDL/issues/11214
Fixes https://github.com/libsdl-org/SDL/issues/11215
(cherry picked from commit 8a30def5f2 )
2024-10-16 17:51:50 -07:00
Sam Lantinga
cfb3db01dc
Added support for the Steam Virtual Gamepad on macOS Sequoia
...
(cherry picked from commit d7b1ba1bfc )
2024-10-16 17:51:50 -07:00
Sam Lantinga
da4608ed03
Fixed typo in SDL_audio.h
2024-10-10 08:49:41 -07:00
Sam Lantinga
da19244f7f
Added support for wired XBox controllers on macOS 15.0 Sequoia
...
Fixes https://github.com/libsdl-org/SDL/issues/11002
(cherry picked from commit 7da728a642 )
2024-10-07 16:41:34 -07:00
Sam Lantinga
bb33eb409e
Fixed detecting the Steam Virtual Gamepad on macOS
2024-10-07 16:21:44 -07:00
Sam Lantinga
c9f3cbe02f
Don't use BlitARGBto555PixelAlpha() for SDL_PIXELFORMAT_ARGB1555
...
This didn't properly take into account destination alpha.
Fixes https://github.com/libsdl-org/SDL/issues/8401
(cherry picked from commit 1aea43846e )
2024-09-25 21:58:20 -07:00
Sam Lantinga
1b26b54402
Verify that the subsystems were successfully initialized
...
(cherry picked from commit 0548050fc5 )
2024-09-15 12:05:31 -07:00
Sam Lantinga
f5ed158d1f
SDL_XINPUT_Enabled() returns false until XInput DLL is successfully loaded
...
We make sure we initialize XInput first, so that anything checking whether it's enabled gets a valid result based on whether we were able to load it or not.
(cherry picked from commit 8f46cb771c )
2024-09-06 11:24:43 -07:00
Sam Lantinga
5aadfd4eaf
Fixed race condition at startup that could cause a crash in the XInput driver
...
(cherry picked from commit 6d7c211faf )
2024-09-06 10:17:37 -07:00
Sam Lantinga
224a37faab
Fixed memory leak in testthread
...
(cherry picked from commit dfe6efcd2d )
2024-09-05 07:11:56 -07:00
Sam Lantinga
a75227aaeb
Use atomic variables for thread communication
...
Fixes https://github.com/libsdl-org/SDL/issues/10711
(cherry picked from commit a0f36fb85b )
2024-09-05 07:09:27 -07:00
Sam Lantinga
2834d8b3b7
Revert "Sync SDL2 wiki -> header"
...
This reverts commit f23cc950f5 .
This edit was incorrect.
2024-09-04 09:15:20 -07:00
Sam Lantinga
10b4a79379
Make newer DRM and GBM functions optional
...
Fixes https://github.com/libsdl-org/SDL/issues/10675
(cherry picked from commit d501f6db07 )
2024-09-02 11:11:02 -07:00
Sam Lantinga
0de601dc64
Added support for the Retro-bit Controller in PS3 mode
...
Fixes https://github.com/libsdl-org/SDL/issues/10557
(cherry picked from commit e75175129f )
2024-08-19 16:47:54 -07:00
Sam Lantinga
a3546e5069
PSP: Throw SDL_EVENT_QUIT event upon exit (thanks @sharkwouter!)
...
Closes https://github.com/libsdl-org/SDL/pull/10565
(cherry picked from commit 59ac561062 )
2024-08-18 08:30:03 -07:00
Sam Lantinga
4bd07ea9a4
Revert "PSP: Throw SDL_Quit event upon exit"
...
This reverts commit e52e68d160 .
2024-08-18 08:27:29 -07:00
Sam Lantinga
b360214950
Use drmModeAddFB() if drmModeAddFB2WithModifiers() fails
...
Fixes https://github.com/libsdl-org/SDL/issues/10276
(cherry picked from commit 8e99ec34bb )
2024-08-15 11:53:02 -07:00
Sam Lantinga
70890b175e
Fixed build
2024-08-13 07:39:43 -07:00
Sam Lantinga
a5bff78d81
kmsdrm: free the connector when looking for available devices
...
Fixes https://github.com/libsdl-org/SDL/issues/10499
(cherry picked from commit 1a57ea7fba )
2024-08-08 09:29:38 -07:00
Sam Lantinga
5ca0639a42
Fixed crash when the current mouse capture window is destroyed
...
Fixes https://github.com/libsdl-org/SDL/issues/10494
(cherry picked from commit 91d97a367e )
2024-08-07 12:28:53 -07:00
Sam Lantinga
1512013320
Added detail about why a file couldn't be opened (thanks mgerhardy!)
...
Fixes https://github.com/libsdl-org/SDL/issues/10484
2024-08-06 05:45:48 -07:00
Sam Lantinga
8f5d3ca57d
Added SDL_CreateRenderer to the "see also" for SDL_RenderPresent()
2024-08-05 07:58:02 -07:00
Sam Lantinga
2efbe7fa3f
Implemented left-justification in SDL_PrintString()
...
Fixes https://github.com/libsdl-org/SDL/issues/10310
(cherry picked from commit f59d66f4b1 )
2024-08-04 20:05:41 -07:00
Sam Lantinga
230f1debd0
Fixed macOS build
2024-08-01 14:11:06 -07:00
Sam Lantinga
0b6eff4167
Fixed building on macOS with OpenGL disabled
...
Fixes https://github.com/libsdl-org/SDL/issues/6226
2024-08-01 13:57:26 -07:00
Sam Lantinga
7fdf794377
Fixed crash with joystick rumble after disconnection
...
This prevents continuing a rumble after the first one fails, and fixes a long standing crash issue if rumble is started immediately before the controller is disconnected.
Thanks to @AntTheAlchemist for the key bug report that showed what was happening here.
Fixes https://github.com/libsdl-org/SDL/issues/10422
(cherry picked from commit 0a924b185d )
2024-07-29 13:50:55 -07:00
Sam Lantinga
15c73f5bfe
Fixed whitespace
...
(cherry picked from commit 67b973b5fa )
2024-07-29 12:52:40 -07:00
Sam Lantinga
b057159db7
Make sure SDL subsystems are initialized before starting threads
2024-07-12 09:09:57 -07:00
Sam Lantinga
b378bc5c83
Make sure timers are initialized before any threads start
...
This prevents race conditions and divide by zero if multiple threads start using the time functions simultaneously.
2024-07-12 08:00:04 -07:00
Sam Lantinga
b13dcf24d6
Fixed OS/2 build
2024-07-11 13:55:24 -07:00
Sam Lantinga
551164812a
Added TLS initialization and shutdown functions
...
Fixes https://github.com/libsdl-org/SDL/issues/8576
(cherry picked from commit b517043936 )
2024-07-11 13:10:15 -07:00
Sam Lantinga
3899cb1696
Revert "Fixed build"
...
This reverts commit 026dfc6305 .
Fixed build again!
2024-07-08 14:46:15 -07:00
Sam Lantinga
026dfc6305
Fixed build
2024-07-08 11:39:08 -07:00
Sam Lantinga
e22c89536a
Make sure we're actually running on Windows before using D3D renderers
2024-07-08 11:28:29 -07:00
Sam Lantinga
4c44450258
Improved detection of Nintendo Switch Pro controller report mode
...
Fixes https://github.com/libsdl-org/SDL/issues/10182
(cherry picked from commit 4ba2e9f4f4 )
2024-07-06 05:30:08 -07:00
Sam Lantinga
a4cbba1276
Try to create an accelerated renderer for the window surface even if SDL_HINT_RENDER_DRIVER is "software"
...
This case is properly handled inside SDL_CreateWindowTexture()
Fixes https://github.com/libsdl-org/SDL/issues/10155
(cherry picked from commit c7ed78a9ef )
2024-07-05 08:23:17 -07:00
Sam Lantinga
845ebbbe96
Added support for the ROG RAIKIRI
...
(cherry picked from commit a04596c9a7 )
2024-07-03 13:54:31 -07:00
Sam Lantinga
cd8ea5e3f1
Only use the default gamepad mapping if an automatic mapping isn't available
...
Fixes https://github.com/libsdl-org/SDL/issues/10162
(cherry picked from commit 0f8054cf87 )
2024-07-03 11:47:20 -07:00