Sam Lantinga
37d1ab83c5
Make sure the mouse and keyboard focus is cleared when a window is hidden
...
(cherry picked from commit a16b241b89 )
2023-07-25 11:50:54 -07:00
Sam Lantinga
ba0c270c7a
Removed invalid assert in testatomic
...
(cherry picked from commit 8adab0b88a )
2023-07-22 18:40:31 -07:00
Sam Lantinga
c4c034ca4b
Don't fail to create a window if it's too large, just clamp it to the max instead
...
Some window is better than no window...
(cherry picked from commit 4a18893c73 )
2023-07-17 17:48:56 -07:00
Sam Lantinga
f7dc8c0eaa
Fixed LED pending check failing when the controller timestamp is very large
...
In this case we know the controller has been on for a while and the Bluetooth connection LED cycle is complete.
Also fixed the timestamp being zero the first time it is checked
(cherry picked from commit bd4f155bbb )
2023-07-17 17:40:17 -07:00
Sam Lantinga
bb036ef544
Don't send k_EPS5FeatureReportIdCapabilities to Sony PS5 controllers
...
This report is for third party controllers only.
(cherry picked from commit 16dd5f0da4 )
2023-07-17 17:39:33 -07:00
Sam Lantinga
910dad505a
Don't tickle Bluetooth PS5 controllers in simple mode with an effects packet
...
That will put the PS5 controller into enhanced mode, which breaks DirectInput games
(cherry picked from commit 2fef0be2f6 )
2023-07-17 17:36:41 -07:00
Sam Lantinga
a4ad293d4a
Relicensed testutils to match other test code
...
Permission granted in https://github.com/libsdl-org/SDL/commit/76a7b629bfc4869df7659c2f2e47d9253c73696f#commitcomment-121408342
(cherry picked from commit 6c2472d459 )
2023-07-16 04:37:15 -07:00
Sam Lantinga
6089b35706
Fixed getting the CRC of virtual joysticks without a VID/PID
...
(cherry picked from commit b40fb5c51e )
2023-07-16 04:36:06 -07:00
Sam Lantinga
e8b6edd5a0
RAWINPUT_RegisterNotifications() should return int, for consistency
...
(cherry picked from commit 1903d7b1bf )
2023-07-11 10:52:57 -07:00
Sam Lantinga
34c5bde355
Improved RAWINPUT <-> XInput/WGI device correlation
...
If there is only one controller slot available, assume that's the one matching new RAWINPUt devices. This will be right most of the time, and uncorrelation will fix any bad guesses.
(cherry picked from commit 41882a1acb )
2023-07-11 10:46:37 -07:00
Sam Lantinga
9117b2e300
Fixed crash if RAWINPUT is not initialized
...
We shouldn't be doing any of this work in that case
(cherry picked from commit dfc5e6964e )
2023-07-11 10:46:37 -07:00
Sam Lantinga
6bf5f5a221
Don't send k_ePS4FeatureReportIdCapabilities to Sony PS4 controllers
...
This report is for third party controllers only, and might be causing issues with fake PS4 controllers.
Reference https://github.com/libsdl-org/SDL/issues/7960
(cherry picked from commit 092a4b780c )
2023-07-10 09:48:43 -07:00
Sam Lantinga
92fd2938e7
Minor cleanup
2023-07-10 09:42:12 -07:00
Sam Lantinga
156c7badf5
Re-added mappings for older Xbox One controllers on Linux
...
The xpad kernel driver doesn't know about these controllers and ends up using BTN_C and BTN_Z and the automatic mapping doesn't work correctly.
It turns out VID 0x045e and PID 0x02e0 is used by the 8BitDo SN30 Pro when connecting via Bluetooth in XInput mode.
Fixes https://github.com/libsdl-org/SDL/issues/7925
(cherry picked from commit 80e1c75e1c )
2023-07-09 09:50:46 -07:00
Sam Lantinga
4b1dd54a56
Fixed mapping BTN_TR2 to right trigger
...
(cherry picked from commit ea60da5b94 )
2023-07-08 18:18:48 -07:00
Sam Lantinga
f8a0135edf
Added WGI gamepad added/removed listeners for RAWINPUT
...
This fixes WGI correlation on startup when the WGI gamepad list isn't populated yet
(cherry picked from commit f047e178b6 )
2023-07-08 10:40:12 -07:00
Sam Lantinga
1f7bc08884
Don't tickle Bluetooth PS4 controllers in simple mode with an effects packet
...
That will put the PS4 controller into enhanced mode, which breaks DirectInput games
(cherry picked from commit efed24850a )
2023-07-08 10:30:31 -07:00
Sam Lantinga
de849d5e6f
Lazily initialize the WGI gamepad support
...
Initializing "Windows.Gaming.Input.Gamepad" will put Bluetooth PS4 controllers into enhanced report mode, which breaks any game using DirectInput. Let's wait to do this until absolutely necessary.
(cherry picked from commit 785f57eb91 )
2023-07-08 10:30:14 -07:00
Sam Lantinga
a6228e7aaf
Added the hint SDL_HINT_JOYSTICK_WGI to control whether to use Windows.Gaming.Input for controllers
2023-07-08 09:34:58 -07:00
Sam Lantinga
e16a83d393
Prefer using XInput for rumble over WGI, as it allows rumble in the background
2023-07-07 09:47:49 -07:00
Sam Lantinga
a0a3957eb6
Continue running XInput detection while RAWINPUT is active
...
This allows us to re-enable XInput correlation for RAWINPUT devices without reintroducing the controller shutdown bug for controllers using the wireless adapter in https://github.com/libsdl-org/SDL/issues/3468 .
Fixes https://github.com/libsdl-org/SDL/issues/7940
2023-07-07 09:47:48 -07:00
Sam Lantinga
3054c0dc50
Fixed %p formatting when there is following text
...
(cherry picked from commit f4bd17deee )
2023-07-06 08:37:27 -07:00
Sam Lantinga
52d63ba26c
Do a full UCS4 zero termination on iconv converted strings
...
We don't necessarily know the size of the output characters, so do a full 32-bit zero termination on the output string.
This fixes garbage at the end of Windows clipboard text
(cherry picked from commit ecbbac7c72 )
2023-07-05 22:25:49 -07:00
Sam Lantinga
bad5431a14
Fixed wayland clipboard not always updating in response to Ctrl-C
...
(cherry picked from commit cc254d885d )
2023-07-05 22:18:16 -07:00
Sam Lantinga
1ab452fc57
Fixed printf formatting for "%p" and added a unit test to check it
...
(cherry picked from commit c63aa9545e )
2023-07-05 22:17:15 -07:00
Sam Lantinga
2a946832ba
Added GetClientScreenRect() and fixed build for C89 compilers
...
(cherry picked from commit 61ff86617a )
2023-07-05 11:06:28 -07:00
Sam Lantinga
488a91eb40
Fixed crash if mutex functions are used before any mutex has been created
...
(cherry picked from commit cc49f1e279 )
2023-07-05 10:17:19 -07:00
Sam Lantinga
4d4c81d438
Revert "Update SDL_windowswindow.c"
...
This reverts commit d0fdf6207b .
(cherry picked from commit f49f1434b9 )
2023-07-05 09:22:56 -07:00
Sam Lantinga
61808b03b5
Fixed resource leak and crash at exit in the D3D11 renderer
...
Also, for some reason ID3D11DeviceContext_OMGetRenderTargets() was failing in the second read pixels call in the "testautomation --filter render_testViewport" test.
We already know the target view, so just use that.
(cherry picked from commit 619f65af0c )
2023-07-03 17:42:16 -07:00
Sam Lantinga
d65185a6a7
Made error handling more consistent in D3D12_RenderReadPixels()
...
(cherry picked from commit 90262f274a )
2023-07-03 17:42:07 -07:00
Sam Lantinga
bf277eb808
The clip rect is defined in terms of the current viewport
...
Don't use the viewport offset when setting the clip rect in the D3D12 renderer.
This fixes "testautomation --filter render_testViewport" on Windows
(cherry picked from commit 304d425f99 )
2023-07-03 17:15:30 -07:00
Sam Lantinga
7e8be3f280
Retry to open the clipboard in case another application has it open
...
This fixes 'testautomation --filter clipboard_testClipboardTextFunctions' on Windows
(cherry picked from commit c24496727cdd40d5c0ffdf7b6a61085ec3a2766d)
2023-07-03 16:11:07 -07:00
Sam Lantinga
a6ba8a1585
Removed spurious casts
...
(cherry picked from commit f73419e122ab0c2c7920b9de0921f5d6a464115d)
2023-07-03 16:11:02 -07:00
Sam Lantinga
fc0854651b
Added Linux mapping for the Logitech Chillstream
...
Fixes https://github.com/libsdl-org/SDL/issues/7829
(cherry picked from commit 675fc8c38f )
2023-06-29 16:15:00 -07:00
Sam Lantinga
099e53f3a5
Fixed build
2023-06-29 11:25:54 -07:00
Sam Lantinga
0f940cb6ce
Added support for the Nintendo Online Famicom controllers
...
(cherry picked from commit baa9c57581 )
2023-06-29 11:18:09 -07:00
Sam Lantinga
0ba93e4aac
Don't crash if SDL_MapRGB() and SDL_MapRGBA() are passed a NULL format
...
(cherry picked from commit fadc4916a9bcc410c2148a91bf0adf742410a4ba)
2023-06-27 16:08:53 -07:00
Sam Lantinga
170428b107
Fixed Nintendo Switch Pro controllers that don't have readable user calibration
...
(cherry picked from commit 9ee1200e6f )
2023-06-27 07:50:00 -07:00
Sam Lantinga
38619bb28d
SDL_FindFreePlayerIndex() will always return the next available player index
...
Fixes https://github.com/libsdl-org/SDL/issues/7868
(cherry picked from commit 87e916dd21 )
2023-06-24 15:40:09 -07:00
Sam Lantinga
c6660afe44
Corrected the Victrix FS Pro as a PS4 controller instead of a PS3 controller
...
(cherry picked from commit 44bae1e8a9 )
2023-06-23 15:44:15 -07:00
Sam Lantinga
8acf729650
Removed 100 ms hitch when querying third party Nintendo Switch controllers that don't respond to request for info
2023-06-21 14:11:41 -07:00
Sam Lantinga
dfbdaca2b8
Use default sensor calibration if we can't read it from the Nintendo Switch controller
...
Fixes https://github.com/libsdl-org/SDL/issues/7830
(cherry picked from commit 3694dabe7c )
2023-06-21 10:40:02 -07:00
Sam Lantinga
657c346556
Apply DPI scale to mouse coordinates in SDL_WarpMouseInWindow()
...
Fixes https://github.com/libsdl-org/SDL/issues/7855
2023-06-21 08:44:19 -07:00
Sam Lantinga
ceece918e4
Updated to version 2.29.0 for development
2023-06-20 11:50:19 -07:00
Sam Lantinga
ffa78e6bea
Updated to version 2.28.0 for release
2023-06-20 11:00:20 -07:00
Sam Lantinga
a3d4fd71c3
Added support for blitting SDL_PIXELFORMAT_INDEX1LSB
...
Fixes https://github.com/libsdl-org/SDL/issues/7844
2023-06-19 08:36:30 -07:00
Sam Lantinga
d97423ebab
Fixed DualSense controllers not being picked up by the HIDAPI driver
...
The hidraw device may take additional time to get the correct permissions for us to open it. In my tests on Steam Deck hardware, this ranges between 5-8ms.
(cherry picked from commit c6ee9780df )
2023-06-18 12:22:06 -07:00
Sam Lantinga
333a03f1ec
We don't know in advance whether a device is connected over Bluetooth in SDL2
2023-06-17 13:15:07 -07:00
Sam Lantinga
5b8fc907df
Added support for the GameSir G4 Pro
...
We can't read device info or IMU calibration from this controller, and it has no gyro or accelerometer, but is otherwise perfectly functional.
(cherry picked from commit f168f9c813 )
2023-06-17 13:07:03 -07:00
Sam Lantinga
3a5abee512
Removed unused function
...
(cherry picked from commit 73927b0948 )
2023-06-14 15:16:44 -07:00
Sam Lantinga
e7ee375f22
Fixed third-party Nintendo Switch Pro controllers shutting down when we try to set the home LED.
...
This fixes the PDP Afterglow Wireless Deluxe Controller.
(cherry picked from commit 0c16f4faf0 )
2023-06-14 15:15:27 -07:00
Sam Lantinga
4aec54988c
Allow switching licensed Nintendo Switch Pro controllers into gyro input mode
...
(cherry picked from commit 8c95bd814b )
2023-06-14 15:13:11 -07:00
Sam Lantinga
271e03f0d7
Added support for the PowerA Fusion Pro Wireless Controller in Bluetooth mode
...
This controller shows up with a VID/PID of 0, but has full functionality over Bluetooth
(cherry picked from commit cdfc0c5a33 )
2023-06-14 15:12:56 -07:00
Sam Lantinga
d4f9be4416
Updated to version 2.27.1 for release candidate
2023-06-13 19:44:26 -07:00
Sam Lantinga
1f5b21ead5
Removed more Linux Xbox mappings in favor of the automatic mapping
...
This fixes the Xbox Series X share button on Linux 5.x kernels.
(cherry picked from commit 0f4b15e16b )
2023-06-13 17:06:24 -07:00
Sam Lantinga
35c7884929
Use the automatic mapping instead of a hardcoded one for Xbox controllers on Linux
...
This is much more robust and able to dynamically create a mapping for Xbox One S, Xbox Series X, and Xbox Elite 2 controllers.
(cherry picked from commit 9567989eb3 )
2023-06-13 17:06:21 -07:00
Sam Lantinga
3f6c4ec6d0
Cleanup for previous change, fixing typos, etc.
...
(cherry picked from commit 883b0f4071 )
2023-06-13 17:04:54 -07:00
Sam Lantinga
fc72f12e7f
Added automatic mapping support for Xbox controllers on the 6.x Linux kernels
...
This automatically adds support for the share button and paddles when present.
(cherry picked from commit db1d4d3d76 )
2023-06-13 17:04:17 -07:00
Sam Lantinga
d2372c8538
Added automatic mapping for Xbox Elite paddles using the xpadneo driver
...
We can't actually tell yet whether a controller has paddles, so this code isn't effective, but I'll file an upstream issue and see if we can get that resolved.
(cherry picked from commit b0677f476f )
2023-06-13 10:12:07 -07:00
Sam Lantinga
7db23f4ef1
Fixed joystick vendor detection in Linux automatic gamepad mapping
...
(cherry picked from commit 071d1e29dd )
2023-06-13 10:11:55 -07:00
Sam Lantinga
b3e1fd97b8
Fixed enumerating Steam Controllers on iOS
...
(cherry picked from commit dec0dbff13 )
2023-06-13 05:44:34 -07:00
Sam Lantinga
c77aaa5d99
Fixed n3ds build
...
(cherry picked from commit d95dbe78bb )
2023-06-12 15:41:09 -07:00
Sam Lantinga
e4e0a12901
Reduce the chance of destroying the joystick mutex while it's in use
...
Fixes https://github.com/libsdl-org/SDL/issues/7811
(cherry picked from commit 6390165fd4c193631d6780758a4aeec0d02b90eb)
2023-06-12 15:31:16 -07:00
Sam Lantinga
2aa8525ecb
Fixed build
2023-06-10 09:29:09 -07:00
Sam Lantinga
36033e3832
Make it clear that you can't mix 2D rendering and the window surface API
...
Also added functions to query and destroy the window surface so you can switch between modes if you want.
See https://github.com/pygame-community/pygame-ce/issues/2190 for more details.
2023-06-10 08:54:36 -07:00
Sam Lantinga
320f3fffbe
Fixed querying device info on the MOBAPAD M073
...
The query packet needs to contain valid rumble data in order to be accepted by the controller.
Fixes https://github.com/libsdl-org/SDL/issues/7788
(cherry picked from commit 5490873daa )
2023-06-09 18:43:14 -07:00
Sam Lantinga
30b4d90f1c
Only update the serial number if it hasn't already been set
...
This fixes the serial number for Nintendo Switch Pro, which is queried from the hardware in device initialization, and was later clobbered by the USB string which isn't correct.
(cherry picked from commit 2042e9c4e3 )
2023-06-09 17:36:06 -07:00
Sam Lantinga
1cdd6dc829
Fixed reading input from the Razer Atrox Arcade Stick using Windows Gaming Input
...
(cherry picked from commit 172cfca51332a845abf9c141ae56aa121fe4ada5)
2023-06-09 14:36:12 -07:00
Sam Lantinga
4700fbcbdf
Don't bother re-encoding Latin1 characters in the ASCII range
...
(cherry picked from commit 6150b5b3cb )
2023-06-04 05:40:07 -07:00
Sam Lantinga
7c86d96e86
Fixed SDL_iconv_string() truncation when handling SDL_ICONV_E2BIG
...
(cherry picked from commit c369b90019 )
2023-06-04 05:14:44 -07:00
Sam Lantinga
bfef7c302c
Only convert the result of XLookupString() if it's not already UTF-8
...
Fixes https://github.com/libsdl-org/SDL/issues/7766
(cherry picked from commit 491ae20d96 )
2023-06-04 02:54:21 -07:00
Sam Lantinga
b9d1c483b9
Fixed building with the 16.1.4479499 Android toolchain
2023-06-03 23:55:56 -07:00
Sam Lantinga
dc94cca8dd
Fixed typo in cherry-pick (thanks @HadesD!)
2023-06-03 11:57:08 -07:00
Sam Lantinga
97fe777ab4
Steam uses a different VID/PID for the Steam Virtual Gamepad on Windows
...
(cherry picked from commit 6815e75caf )
2023-06-03 11:40:58 -07:00
Sam Lantinga
f1bad83a21
Revert "Fixed detection of the Steam Virtual Gamepad on macOS"
...
This reverts commit 7aa28ce279 .
Steam has been updated to send a version of 1 to avoid conflicts with controllers that report a version of 0.
2023-06-03 11:36:38 -07:00
Sam Lantinga
7aa28ce279
Fixed detection of the Steam Virtual Gamepad on macOS
...
(cherry picked from commit 5fcd70578b )
2023-06-02 18:39:22 -07:00
Sam Lantinga
c89a460672
Fixed build if SDL_JOYSTICK_RAWINPUT_MATCHING isn't enabled
...
(cherry picked from commit 7c55845c80 )
2023-06-02 11:20:55 -07:00
Sam Lantinga
e3bfacde3e
Don't use raw input while Remote Desktop is active
...
Raw input will not send game controller events while Remote Desktop is active, so dynamically switch between XInput and raw input when Remote Desktop state changes.
Fixes https://github.com/libsdl-org/SDL/issues/7759
(cherry picked from commit 767507fcf6 )
2023-06-02 11:19:44 -07:00
Sam Lantinga
9c05098ed9
Fixed WGI immediately being correlated with raw input devices with no input
...
The at rest match state is 0x0000008800000000, not 0
(cherry picked from commit e8b5b4881c )
2023-06-02 09:39:57 -07:00
Sam Lantinga
5007b96363
Fixed build warning
2023-05-28 19:23:56 -07:00
Sam Lantinga
b2e88ecfeb
Disable SDL_JOYSTICK_RAWINPUT_XINPUT
...
Apparently when using the Xbox One Wireless Adapter, using XInput at the same time as raw input will cause the controller to turn off immediately after connecting. This appears to be a bug in the Windows 11 driver stack, but since WGI provides all the extended functionality we need, this can be turned off for now.
Fixes https://github.com/libsdl-org/SDL/issues/3468
2023-05-28 18:41:21 -07:00
Sam Lantinga
7308325559
Added support for printing wide strings using "%ls" syntax
...
(cherry picked from commit 128ca70160 )
2023-05-26 14:59:30 -07:00
Sam Lantinga and Ozkan Sezer
63b8af3558
Disable unused local typedefs warning
...
This triggers on gcc 4.8.4 for compile time asserts inside of functions
Fixes https://github.com/libsdl-org/SDL/issues/7732
Co-authored-by: Ozkan Sezer <sezeroz@gmail.com >
2023-05-24 04:45:40 +03:00
Sam Lantinga
3f1fd5abff
Updated source to match SDL function prototype style
2023-05-23 10:59:03 -07:00
Sam Lantinga
92f72682e7
Document the Android SDK versions checked in Java code
...
(cherry picked from commit b48b1ce500 )
2023-05-23 08:45:43 -07:00
Sam Lantinga
78a92b4f9d
Fixed duplicate Joy-Con controllers on macOS
...
If both Apple and HIDAPI drivers see the controller, HIDAPI will be preferred.
Fixes https://github.com/libsdl-org/SDL/issues/7479
(cherry picked from commit 61ef4efdfa )
2023-05-22 14:52:05 -07:00
Sam Lantinga
7b2b99a996
Fixed handling the Saitek P3600, which doesn't use the Xbox 360 controller protocol
...
(cherry picked from commit cf0abf9911 )
2023-05-22 12:42:05 -07:00
Sam Lantinga
b6d051e226
Fixed reporting backspace key if there is no text in the edit buffer (thanks @312937!)
...
This workaround isn't necessary at API 30 and above.
Fixes https://github.com/libsdl-org/SDL/issues/7039
(cherry picked from commit c971795954 )
2023-05-22 12:01:52 -07:00
Sam Lantinga
0ad0347acb
Use numeric codes for Android versions, to avoid SDK dependencies
...
(cherry picked from commit 3f6b2d1a61 )
2023-05-22 12:01:52 -07:00
Sam Lantinga
a2f4783e75
Don't map the top keyboard row to numbers when using the one-handed DVORAK layouts (thanks @tormol!)
...
Fixes https://github.com/libsdl-org/SDL/pull/5127
2023-05-22 11:30:42 -07:00
Sam Lantinga
69644346ac
Added the hint SDL_HINT_ENABLE_SCREEN_KEYBOARD to control whether the on-screen keyboard should be shown when text input is active
...
Fixes https://github.com/libsdl-org/SDL/issues/7160
2023-05-20 11:09:36 -07:00
Sam Lantinga
00b87f1ded
Make sure the sentinel is at the end of the current event pump cycle
...
If we're waiting, it's possible to not get any events, then add the sentinel, then pump again and then add another sentinel. We want to make sure we only have one sentinel and that it's at the end of the currently pumped events.
Testing:
* Verified test case in https://github.com/libsdl-org/SDL/issues/6539
* Verified test case in https://github.com/libsdl-org/SDL/issues/5350
Fixes https://github.com/libsdl-org/SDL/issues/6539
2023-05-20 10:27:48 -07:00
Sam Lantinga
beca41480d
Undo name change for the controller list
...
(cherry picked from commit f60622c510 )
2023-05-19 14:27:06 -07:00
Sam Lantinga
43b12fd9bc
Moved the controller list out so it can be included elsewhere
...
(cherry picked from commit 24007b00b2 )
2023-05-19 14:23:57 -07:00
Sam Lantinga
e8ec8ba1d4
Added support for the Astro C40 in Xbox 360 mode
...
(cherry picked from commit a4b4dff4a2 )
2023-05-19 14:23:57 -07:00
Sam Lantinga
d42c303b24
Check to make sure the Windows joystick device has buttons and axes
...
This fixes incorrectly detecting the ROG CHAKRAM X mouse as a game controller on Windows 10
(cherry picked from commit 642504bc59 )
2023-05-15 21:44:20 -07:00
Sam Lantinga
237348c772
Changed all variadic macros into fixed (thanks @Wohlstand!)
2023-05-10 06:29:35 -07:00
Sam Lantinga
de93728674
Removed redundant __powerpc__ check
...
(cherry picked from commit b6df25c334 )
2023-05-06 08:44:48 -07:00
Sam Lantinga
707e9397ca
Removed memset_pattern4() from SDL headers
...
This requires including string.h, which isn't always done, so this commit simplifies dependencies on macOS
Fixes https://github.com/libsdl-org/SDL/issues/3657
2023-04-30 21:38:29 -07:00
Sam Lantinga
f72213c4ac
By default, OpenBSD uses Linux controller mappings
...
Fixes https://github.com/libsdl-org/SDL/issues/7609
(cherry picked from commit 255c3b7c82 )
2023-04-29 17:10:46 -07:00