The mapping included here is for the Ultimate Atari Fight Stick
(cherry picked from commit f1099f8e70a1284c2ee3031f2ea0cfc84f22110c)
(cherry picked from commit c2ee45f5ffbba6ff6962eb24fd117586a38cce5e)
When N2935 is implemented, the enum breaks compilation. Use a #define of
the SDL booleans instead.
(cherry picked from commit 975039ce0d3587c42e11f2922240957fc8f74166)
(cherry picked from commit ed5a343d25fd12c199a1e0479e65d93cd60ccf3d)
Event names have grown in length and are occasionally truncated when being logged (e.g. SDL_EVENT_WINDOW_PIXEL_SIZE_CHA). Increase the event name buffer size to handle the longer names.
(cherry picked from commit 203a2a76fc0af2094de84d75dbf959c7db73fe72)
(cherry picked from commit c0824cd49adb185d1aa992242911467dc0bf46b1)
This lets the user to correctly detect current vsync state by reading SDL_RendererInfo.
Also fixes SetVSync's return value check (it may be positive for error too).
(cherry picked from commit d78072fcd46943288a6007cd6f4ab1f98f446b1d)
I've only tested this on windows, but I went ahead and made the same changes for linux and mac because I assumed it's the same there and that we'd want to keep the three platforms in sync.
(cherry picked from commit b8bc4a234b93efa7a28c7fd7d524d905d9b76e6d)
(cherry picked from commit cfd6b34b8f18ac7b3ea6308c020d759e172df038)
This is a mapping when using evdev, not the more advanced HIDAPI support.
(cherry picked from commit 206fa4dafb633ed074b930cbb3440a9925c532f2)
(cherry picked from commit 715749f578f8379f192c5805ec41804e1a411bf8)
Without these mappings, this controller "kinda" works out of the box:
- `SDL_GameControllerMapping()` works because it will notice "Xbox" in
the name and use the default XInput mappings
- `SDL_GameControllerMappingForGUID()` will not find any mapping
lsusb:
```
ID 2dc8:2000 8BitDo 8BitDo Pro 2 Wired Controller for Xbox
```
In Linux this controller is supported by two drivers:
- `xpad` (built-in to the kernel), exposes the controller name from the
USB descriptor and the GUID starts with 03 (0x03 = BUS_USB)
- `xone` (https://github.com/medusalix/xone), exposes a virtual
controller which is always named "Microsoft X-Box One pad" and the
GUID starts with 06 (0x06 = BUS_VIRTUAL)
This commit adds the 2 GUIDs from both drivers so mappings will always
be found and the real controller name will always be reported.
(cherry picked from commit 4266cf8504c08b17ef55be11c27f2fc7a17b6edf)
For example, the DragonRise Inc. Generic USB Joystick
See https://github.com/gabomdq/SDL_GameControllerDB/issues/202 for details
(cherry picked from commit 673bc5764942e3f645f1ff7d64f3d6a2059e3cdb)
(cherry picked from commit c4a493de973af6053ef5085d7e67587aba1a8463)
This fixes handling the 8BitDo SN30 Pro with the 2.00 firmware in PS4 mode
Fixes https://github.com/libsdl-org/SDL/issues/7270
(cherry picked from commit 3951cae4a56fddcb42ce4141a6518c97fa9125cd)
(cherry picked from commit 57ae9f466db41e32c67c5a9a03c28f7803ac02c9)
- Avoids precision loss caused by large floating point numbers.
- Adds unit test to test the signal-to-noise ratio and maximum error of resampler.
- Code cleanup
It occasionally takes a few millseconds for the GCController framework to handle the device notification and set up the device
Fixes the duplicate controller issue in https://github.com/libsdl-org/SDL/issues/6686
(cherry picked from commit 645823fc901c98b688512d3b3e70cc8922e8140c)
(cherry picked from commit 3f00fa16c656d0651c43720d8f84138ac3b998ee)
This happens on Windows 11 with fullscreen desktop windows when the desktop is brought up with the Windows+D shortcut.
Fixes https://github.com/libsdl-org/SDL/issues/7419
(cherry picked from commit 2ca727aec6f5f264620f80999beb5ef77eefec4a)
(cherry picked from commit 46d143376a55817c240a58f226ca944581d414cf)
Setting the cursor clip area to a single pixel prevents the relative mouse motion remote desktop warping from working, so the mouse is never recentered.
(cherry picked from commit daffe02b117ccd484763eadc716e4d4453c89868)
(cherry picked from commit ad09976eca7c931ef468119b4a4716ec7e07560e)
Fixes hotplug issues on Steam Deck for Proton and native games
(cherry picked from commit bcd97b36d23d08226e98a995eafd3d6aa35401b4)
(cherry picked from commit e7376b7b74026d7da041d2c848e99c9f7f4d74c0)
We are guaranteed that the lock will be held during shutdown, so if we are in InvokeRemoved(), it's because we're shutting down controllers and need to remove them from our internal list.
Fixes https://github.com/libsdl-org/SDL/issues/7016
(cherry picked from commit ac99db9fc8d528a79abb98a5641e0fd94aa20a9e)
(cherry picked from commit ebc2fb411f178c806119b57ae3c18553d7391a13)