Sam Lantinga
2a53f8315a
Fixed controllers showing up under both MFI and HIDAPI drivers
...
The Game Controller Kit doesn't show the controllers at startup, so the HIDAPI driver sees them first and therefore gets preference when a controller is supported by both drivers.
This fixes bug https://github.com/libsdl-org/SDL/issues/4209
2021-07-26 23:29:20 -07:00
Sam Lantinga
46869db01c
Fixed controller rumble on macOS
...
Needed to add a strong reference to the haptics engine
2021-07-26 23:27:13 -07:00
Sam Lantinga
a850fec733
Added missing mapping for the Xbox Elite Controller on Linux
...
This fixes https://github.com/ValveSoftware/steam-for-linux/issues/7826
2021-07-26 15:05:02 -07:00
Ozkan Sezer
d80ef3e5f5
SDL_VideoInit: silence 'may be used uninitialized' warning
...
src/video/SDL_video.c:475: warning: 'i' may be used uninitialized in this function
2021-07-26 22:51:24 +03:00
Luis Cáceres
45de0a1d13
Support comma-separated lists in SDL_AUDIODRIVER
2021-07-26 15:14:54 -04:00
Luis Cáceres
5ec69285fa
Support comma-separated lists in SDL_VIDEODRIVER
2021-07-26 15:14:54 -04:00
Sam Lantinga
ba8bc143c1
Sort joystick entries in /dev/input
...
This fixes https://github.com/libsdl-org/SDL/issues/4430
2021-07-26 12:09:33 -07:00
Sam Lantinga
8d527def81
Revert "hidapi_switch: Implement HD rumble effect ( #4538 )"
...
This reverts commit 19082b115b
, which broke rumble on the Nintendo Switch Pro controller
2021-07-26 10:18:18 -07:00
Narr the Reg
19082b115b
hidapi_switch: Implement HD rumble effect ( #4538 )
2021-07-26 10:00:53 -07:00
Christian Rauch
ac904b8e95
wayland: ignore resize in fullscreen or maximised mode
2021-07-25 14:54:12 -07:00
Christian Rauch
ee062c644a
wayland: implement toggling decorations
2021-07-25 14:54:12 -07:00
Christian Rauch
2b3cf36fd9
wayland: forward window events
2021-07-25 14:54:12 -07:00
Christian Rauch
48066984b7
wayland: enable/disable ACTION_RESIZE for fullscreen
2021-07-25 14:54:12 -07:00
Christian Rauch
9e6fcbe72c
wayland: client-side decoration
2021-07-25 14:54:12 -07:00
Christian Rauch
e5f9fae034
wayland: don't flush after setting fullscreen
2021-07-25 14:54:12 -07:00
Mathieu Eyraud
8e604a5f12
Fix error handling in X11_SetWindowTitle
...
X11_XChangeProperty return 1 on success.
2021-07-25 14:51:33 -07:00
Jaylon Gowie
bc3b98f3ed
Replace with SDL_SendKeyboardKeyAutoRelease
2021-07-25 07:41:30 -07:00
Jaylon Gowie
5cd37c0a7b
Add Enter Key support to PSVita IME keyboard
2021-07-25 07:41:30 -07:00
Sam Lantinga
10ec4c8671
Added support for the PowerA Nintendo Switch Spectra Controller
2021-07-24 22:11:22 -07:00
Sam Lantinga
3c9559f765
Don't try to rumble third-party Nintendo Switch Pro controllers
...
Sending rumble to the PowerA Spectra Nintendo Switch controller hangs input reports for a couple of seconds.
2021-07-24 19:43:56 -07:00
Sam Lantinga
cc19b13bc3
Fixed missing return statement
2021-07-24 19:21:29 -07:00
Sam Lantinga
d4ac6b5ed9
Detect buffer overflow when getting DirectInput device state
...
This fixes bug https://github.com/libsdl-org/SDL/issues/4528
2021-07-24 15:58:33 -07:00
Sam Lantinga
3b85e3fdfc
Fixed internal Windows key state when using Windows+Space or Windows+G shortcuts
...
This fixes bugs:
https://github.com/libsdl-org/SDL/issues/4369
https://github.com/libsdl-org/SDL/issues/4500
2021-07-24 15:47:11 -07:00
Sam Lantinga
03c19efbd1
Added support for multiple seats with touch input on Wayland
...
This fixes bug https://github.com/libsdl-org/SDL/issues/4517
2021-07-24 15:25:50 -07:00
Sam Lantinga
ff1b5e1bf7
Implemented the window flash operations for X11
2021-07-24 15:11:36 -07:00
Ryan C. Gordon
5ae0dd4b52
joystick: Split out Linux opening code for reuse by querying code.
...
This prevents an assertion whem LINUX_JoystickGetGamepadMapping tried to
open the stick temporarily and messed with global state by doing so. Now
the global state is only set in LINUX_JoystickOpen, but the common code
is shared by both interfaces.
Fixes #4198 .
2021-07-24 17:48:26 -04:00
Sam Lantinga
f1633127d1
Added a window flash operation to be explicit about window flash behavior
2021-07-24 13:42:19 -07:00
Joel Linn
b2c8d3e9e4
audiocvt: 5.1 to Stereo conversion utilizing AVX
2021-07-24 15:39:17 -04:00
Joel Linn
638befc1a9
audiocvt: 5.1 to Stereo conversion utilizing SSE
2021-07-24 15:39:17 -04:00
Joel Linn
db56526f14
audiocvt: Replace divisions
...
Division is expensive and the compiler can not replace it themselves.
Though we now we will be ok in terms of floating point edge behaviour.
2021-07-24 15:39:17 -04:00
Sam Lantinga
e1c3a25034
Changed SDL_FlashWindow() so it doesn't take a flash count, and added the hint SDL_HINT_WINDOW_FLASH_COUNT to control behavior on Windows
2021-07-24 12:11:27 -07:00
Sam Lantinga
09d1cea733
Use the new controller type for the Luna and Stadia controllers
2021-07-24 11:15:09 -07:00
Sam Lantinga
808c3ae612
Allow mapping Android controllers that just have a D-PAD and face buttons
...
This fixes bug https://github.com/libsdl-org/SDL/issues/4327
2021-07-24 10:37:42 -07:00
Sam Lantinga
94b7a87645
Added SDL_GameControllerType enumerations for the Amazon Luna and Google Stadia controllers
...
Fixes bug https://github.com/libsdl-org/SDL/issues/4019
2021-07-24 09:10:18 -07:00
german77
e6e8fe6d4e
hidapi_switch: Implement analog rumble
2021-07-24 01:06:05 -07:00
Sam Lantinga
669714cafe
Added the ThrustMaster T.16000M as a flightstick
2021-07-23 23:51:35 -07:00
Sam Lantinga
384d86b584
Fixed compile warnings with Visual Studio
2021-07-23 23:48:23 -07:00
Sam Lantinga
adb75d642c
Fixed hotplug detection not working on UWP or when SDL isn't pumping Windows events
...
This fixes bugs:
https://github.com/libsdl-org/SDL/issues/4321
https://github.com/libsdl-org/SDL/issues/4147
Thanks to DJm00n for the suggestion!
2021-07-23 23:45:18 -07:00
Sebastian Krzyszkowiak
7b0092db6a
vita: touch: Mark the back panel as an indirect absolute touch device
...
It's not a touchscreen, but an additional touch panel on the back of
the device.
2021-07-23 16:40:34 -07:00
Sam Lantinga
422b053b96
Added support for the full line of current PowerA Xbox Series X controllers
2021-07-23 16:32:35 -07:00
Jaylon Gowie
48bbe31bc6
Add PreSwapCallback for updating SceCommonDialog
2021-07-21 09:41:10 -07:00
Jaylon Gowie
9c1306bc5e
Add elgext.h header
2021-07-21 09:41:10 -07:00
meyraud705
4ada14a267
Replace libc functions to SDL equivalent in wayland video subsystem
...
Wayland video subsystem uses a mix of libc and SDL function.
This patch switches libc functions to SDL ones and fixes a mismatch in memory
allocation/dealoccation of SDL_Cursor in SDL_waylandmouse.c (calloc on line 201
and SDL_free on line 313) which caused memory corruption if custom memory
allocator where provided to SDL.
2021-07-21 09:28:38 -07:00
Ivan Epifanov
f806064e7e
Remove 'support' for rgb/bgr textures, that was causing issues with them
2021-07-19 10:14:13 -04:00
Niklas Haas
d6641d7123
kmsdrm: Explicitly set the surface transform and alpha mode
...
This is required by the specification. Set these to sensible defaults.
Fixes a validation layer error that occurs otherwise.
2021-07-19 10:12:54 -04:00
Niklas Haas
760074270a
kmsdrm: Properly zero-initialize CreateInfo structs
...
As written, these contain undefined stack contents, which in practice
causes crashes/hangs and/or triggers the validation layers (they
complain about `pNext` and `flags` not being NULL).
2021-07-19 10:12:54 -04:00
Ivan Epifanov
817976da69
VITA: Rewrite and fix RenderCopyEx rotation
2021-07-13 08:45:33 -07:00
Sam Lantinga
dc6f044309
Added mapping for the Xbox Series X controller on tvOS
2021-07-12 17:57:21 -07:00
Sam Lantinga
947ad6e13a
Added support for the Xbox Series X controller on iOS and tvOS
2021-07-12 17:57:21 -07:00
Brick
7fe6dbafa3
Reset rawInputEnableCount when RawInput is not supported
2021-07-11 14:51:31 -07:00
Sam Lantinga
24059a19c5
The RAWINPUT driver is no longer tied to HIDAPI in any way
2021-07-09 18:11:42 -07:00
Sam Lantinga
f93e9047eb
Implemented the timeout in hid_read_timeout() on Android
...
This fixes detecting PS5 controllers connected over USB
2021-07-08 18:44:50 -07:00
Hanseul Jun
557d0f827f
Commenting a false alarm in WIN_GLES_SetupWindow.
...
When hint SDL_HINT_OPENGL_ES_DRIVER is set to "1" (e.g. for ANGLE support), assertion due to !_this->gl_config.driver_loaded can be causes while EGL is available.
2021-07-08 14:49:40 -07:00
Sam Lantinga
d135c0762f
Added SDL_GameControllerSendEffect() and SDL_JoystickSendEffect() to allow applications to send custom effects to the PS4 and PS5 controllers
...
See testgamecontroller.c for an example of a custom PS5 trigger effect
2021-07-08 13:22:41 -07:00
Ozkan Sezer
3da6d2cdde
WIN_SetErrorFromHRESULT: kill CR/LF that FormatMessage sticks at the end
...
Fixes: https://github.com/libsdl-org/SDL_mixer/issues/320
2021-07-08 20:33:50 +03:00
Dean Herbert
8fb95034e8
Avoid warping the cursor to the center of the window when not in relative_warp_mode
...
When relative mode is enabled and not using warp mode, the cursor is
being clipped to the window. Therefore there is no reason to restore the
cursor position to the center.
Avoiding the warp to center simplifies mouse position event flow, as we
are no longer potentially receiving mouse events for the automated
movement of the cursor and can be (mostly) assured that an incoming
event from the windowing system is that of external means.
2021-07-08 09:27:09 -07:00
Dean Herbert
4359a47b3e
Simplify ClipCursor behaviour when RelativeMouseMode is enabled
...
The implementation of clip logic for relative mode seemed to
unnecessarily limit the usable area to the middle of the window, in a
2x2 pixel region. This has the adverse side effect of moving the
operating system cursor to that location, even if it is in a valid
location in the window.
While in most scenarios this is handled correctly (by storing the
original position of the cursor in the window and restoring when leaving
relative mode), there are edge cases where this clip operation can cause
WM_MOUSEMOVE to fire at a point in time where it counts as a relative
delta from SDL's perspective.
2021-07-08 09:27:09 -07:00
Dean Herbert
3720e254c4
Trim some stray whitespace
2021-07-08 09:27:09 -07:00
Austin Shafer
16e3bfe807
SetDisplayMode: Call XRRSetScreenSize before setting CRTC config
...
X11_SetDisplayMode currently calls X11_XRRSetCrtcConfig alone. This results
in the monitor's viewport getting changed, but the underlying screen dimensions
stay the same.
The spec indicates that RRSetCrtcConfig only changes the crtc mode and has no effect
on the screen dimensions, only mentioning that the new crtc must fit entirely within the
screen size. For the size to change, RRSetScreenSize also needs to be called.
This affects Metro Exodus on Linux, when changing the resolution in the in-game settings
Metro gets stuck in a loop waiting for the size of its vulkan surface to change. Because
XRRSetScreenSize is not called the screen size is never changed, the vulkan surface dimensions
do not change, and Metro hangs forever watching for a surface size update that will
never come.
This change disables the CRTC, calls XRRSetScreenSize, and then updates the
CRTC configuration. This fixes changing the resolution from the Metro settings.
Tested with:
Metro Exodus, Portal 2
2021-07-08 08:41:29 -07:00
Sam Lantinga
4a20dd3e54
Removed unnecessary comment, the mic button is in byte 16 on all firmware versions
2021-07-08 07:38:18 -07:00
Sam Lantinga
46f19c311d
Implemented mouse relative mode for iOS 14.1 and newer
2021-07-08 07:23:29 -07:00
Sam Lantinga
430bbcb87f
Added HIDAPI support for the Amazon Luna Controller connected over USB in DirectInput mode
2021-07-07 09:49:33 -07:00
Sam Lantinga
863f566941
Fixed reading thumbstick axes and mic button on the Amazon Luna Controller firmware version 305164320
2021-07-07 08:55:16 -07:00
Dimitriy Ryazantcev
17ed8d8085
Added HIDAPI backend for Amazon Luna Controller Model T28B69 connected via Bluetooth LE (VID:0171, PID:0419).
...
To enter Bluetooth pairing mode hold B and Action (button with circle) buttons for 3 seconds.
It works via usual HIDAPI if special filter driver is not installed:
https://www.amazon.com/gp/help/customer/display.html?nodeId=GZCT4CTFHXLHEB9T
With that driver installed it mimics Xbox One controller and works via XInput under Windows.
Under DInput this controller is not usable at all.
2021-07-07 08:31:12 -07:00
Sam Lantinga
00d67620da
Added the SteelSeries manufacturer to the Nimbus+ entry on macOS
2021-07-06 11:32:11 -07:00
Sam Lantinga
24e836b0db
Added controller mapping for the Nimbus+ controller on macOS when MFi support is not available
2021-07-06 10:00:09 -07:00
Ivan Epifanov
0994a75879
Don't hardcode message length
2021-07-01 15:14:49 -07:00
Ivan Epifanov
3b6e999244
Vita: remove unused variable and allow Razor perf analysis
2021-07-01 15:14:49 -07:00
Ivan Epifanov
656eb7df35
Vite: return system installed memory
2021-07-01 15:14:49 -07:00
Ivan Epifanov
b55ee12f69
Vita: fix clip rectangle
2021-07-01 15:14:49 -07:00
Ivan Epifanov
e41d3e617e
VIta: fix render clearing
2021-07-01 15:14:49 -07:00
Ivan Epifanov
6b12280510
Vita: proper syntax
2021-07-01 15:14:49 -07:00
Ivan Epifanov
32deb6f70c
Vita: fix point size
2021-07-01 15:14:49 -07:00
Ivan Epifanov
9d4527193d
Vita: append messagebox title
2021-07-01 15:14:49 -07:00
Dimitriy Ryazantcev
39302c9214
Add Steam Virtual Gamepad and Xbox 360 Wired Controller defines instead of magic values
...
See https://partner.steamgames.com/doc/features/steam_controller/steam_input_gamepad_emulation_bestpractices for details on what is Steam Virtual Gamepad.
2021-06-30 08:48:13 -07:00
Sam Lantinga
0c4ac33a09
Added support for the Razer Wolverine Tournament Edition controller
2021-06-28 14:31:27 -07:00
Joshua Ashton
ca383599b5
Fix Anne Pro II keyboard showing up as a joystick
...
Having used this for a couple years, I can definitely confirm that it is not a joystick.
2021-06-26 21:23:26 -07:00
Joshua Ashton
c90bd3bf79
Add missing PS5 DualSense GUIDs
...
Fixes my DualSense controller not being recognised as a SDL GameController which breaks Steam Input filtering causing SDL to fight for input.
2021-06-26 21:21:46 -07:00
Sam Lantinga
205b951b46
SDL_DINPUT_JoystickPresent() needs to do the full device enumeration
...
It is called from WGI before the normal joystick detection has been run, so it needs to actually enumerate currently connected devices.
We can skip the logic checking for other drivers also supporting this device, because that logic is duplicated from the call site.
2021-06-25 14:20:08 -07:00
Sam Lantinga
ae6d9e343b
Correcting the name of the Amazon Luna Controller
2021-06-25 11:09:46 -07:00
Sam Lantinga
5042ab6f24
Added Linux and macOS mappings for the DirectInput mode of the Amazon Luna Controller
2021-06-24 18:09:06 -07:00
Sam Lantinga
5b051459ed
Fixed warnings on Windows
2021-06-24 18:09:04 -07:00
Sam Lantinga
99700a5c52
SDL: add Windows mappings for Luna controllers for USB DirectInput mode and BT. Note: the triggers do not seem to work in BT mode.
2021-06-24 18:09:01 -07:00
Ozkan Sezer
33b84c8d15
s/memcmp/SDL_memcmp/ for conistency
2021-06-24 23:10:56 +03:00
Ethan Lee
56b77b12bc
cocoa: Implement FlashWindow
2021-06-24 13:08:26 -07:00
scribam
c2e8a791bb
SDL_windowsevents: add support for multiple mice
2021-06-24 12:15:54 -07:00
Cameron Gutman
7948c16df2
Pump events each time through the loop in SDL_WaitEventTimeout_Device()
...
Not only is it more efficient to batch process pending events, it is
necessary for correctness with the Win32 backend. WIN_PumpEvents() runs
periodic updates of the cursor clip region and disambiguation of
left and right shift keys in addition to standard event processing.
2021-06-24 12:14:17 -07:00
Cameron Gutman
105de64c2d
Only queue one wakeup event per wait
...
Queuing more than one can lead to a spurious wakeup on the next wait.
2021-06-24 12:14:17 -07:00
Anthony Pesch
c262569cd8
kmsdrm: fix KMSDRM_SetDisplayMode being called for the default desktop mode doing nothing
2021-06-24 12:12:29 -07:00
Anthony Pesch
98bda39186
kmsdrm: sync the display's current mode with what's set in KMSDRM_CreateSurfaces
2021-06-24 12:12:29 -07:00
Anthony Pesch
d031a24e00
kmsdrm: defer surface recreation inside of KMSDRM_SetWindowSize and
...
KMSDRM_SetWindowFullscreen as is done in KMSDRM_SetWindowDisplayMode
2021-06-24 12:12:29 -07:00
Anthony Pesch
5a296e2589
kmsdrm: avoid overriding the mode requested by SDL_SetWindowDisplayMode
...
when recreating surfaces
2021-06-24 12:12:29 -07:00
Sam Lantinga
814285d6e3
Workaround for crash on Apple Mac M1 hardware
2021-06-23 09:19:02 -07:00
Sam Lantinga
41fab8532d
ControllerList: set the default deadzone for Ps5 controller back to same one as Xbox controllers. Too many users complained about drift.
2021-06-18 18:10:24 -07:00
Sam Lantinga
a8b28939a6
ControllerList: add more Xbox controllers from minidumps
2021-06-18 18:10:23 -07:00
Sam Lantinga
08eff56a5b
ControllerList: add Brooks Mars controller to PS4 controller list
2021-06-18 18:10:22 -07:00
Sam Lantinga
afd100f02b
Added support for the PowerA Fusion Pro 2 and the PDP Xbox Series X Afterglow and Blue controllers
2021-06-18 17:37:46 -07:00
Ryan C. Gordon
839387ed0a
video/dummy: Don't zero out the fake display mode before adding it.
...
The SDL_zero call was in the wrong place as a historical accident, I think.
2021-06-17 22:11:10 -04:00
Sam Lantinga
268fbcd460
Fixed compiler warning on Visual Studio
2021-06-17 11:23:47 -07:00
Sam Lantinga
d8dba5bcf3
Added support for the Logitech G923 racing wheel
2021-06-17 11:22:08 -07:00