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
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
Caleb Cornett
2001a891c4
Fix Xbox link error from IsRectEmpty
...
(cherry picked from commit 376a3cd100 )
2023-05-21 19:11:25 -07:00
M. P. Halpin
1ee9a437f9
Stop beep when running iOS apps on ARM-based Macs
...
(cherry picked from commit bbf38bbbc3 )
2023-05-20 11:21:13 -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
Ozkan Sezer
92a487f2e4
style fixes for SDL_PROC macros.
2023-05-19 14:10:02 +03:00
Ryan C. Gordon
df9d0fb332
power: On Linux, compare status strings as case-insensitive.
...
In case something reports "Device" when we expected "device", etc.
Reference Issue #6835 .
2023-05-18 13:26:55 -04:00
Ryan C. Gordon
4a0b9522b6
audio: Load .WAV files with format->blockalign==0.
...
In theory this is illegal, but legit wavefiles in the field do it, and
it's easy to bump it to 1 for general purposes.
Formats with more specific alignment requirements already check for them
separately.
Fixes #7714 .
(cherry picked from commit 2e646c7141 )
2023-05-17 20:09:28 -04:00
Ryan C. Gordon
32999798e0
dynapi: Accept a comma-separated list of libraries to attempt to load.
...
First one to load and have the necessary symbol is the one we accept,
if any. Once we accept one, we won't try loading others.
Fixes #7613 .
2023-05-17 20:03:17 -04:00
valid-ptr
424bc4bcf7
SDL emscripten port: preventDefault should not be called on mousedown. Otherwise mouseup will not be fired outside iframe in Chrome-based browsers
2023-05-17 12:30:32 -07:00
Ryan C. Gordon
0eea92c8fc
blit: Add a case for 8-bit blits that sdl12-compat exposed.
...
sdl12-compat can get into a state where a color-keyed surface is
marked for blending, but wants to blend with full alpha (which
is the same as _not_ blending), so rather than fail to find a
blitter in that case, it just selects the colorkey blitter.
Reference https://github.com/libsdl-org/sdl12-compat/issues/233
2023-05-16 14:38:44 -04: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
Ryan C. Gordon
86786ed544
coreaudio: Flush/stop the AudioQueue before disposing of it.
...
Otherwise, a CoreAudio thread lingers forever, and coreaudiod eats CPU
until the SDL process terminates.
Fixes #7689 .
2023-05-08 14:25:01 -04:00
Sam Lantinga
de93728674
Removed redundant __powerpc__ check
...
(cherry picked from commit b6df25c334 )
2023-05-06 08:44:48 -07:00
Jeremy Rand
5e74365e55
SDL_blit_N.c: Move ppc64le swizzle outside of loop
...
An in-place swizzle mutation was erroneously inside of a loop, which
caused each consecutive 4-pixel vector to alternate between correct and
incorrect endianness.
The bug was introduced in 715e070d29 .
Thanks to RobbieAB for reporting the bug.
Fixes https://github.com/libsdl-org/SDL/issues/3428
(cherry picked from commit 9142292f4a )
2023-05-06 08:39:59 -07:00
Loc(Elliot)
3e64fec9f4
Fix bug memory acess
...
Bitmap is not initialized before use, that cause segmentation fault on function use it. Fix by allocate memory before use.
2023-05-04 07:01:25 -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
Frank Praznik
132b88749c
wayland: Destroy proxy wrappers and callbacks before event queues
...
Destroy any proxy wrappers and callbacks before the associated event queues to silence libwayland warnings about destroying the queues while proxies are still attached.
2023-04-27 13:08:59 -04:00
Linus Probert
8b39eb9b1f
wayland: Fixes a memory leak wheere primary selection isn't freed
...
(cherry picked from commit 43f65a6ef0 )
2023-04-24 12:00:16 -07:00
Ozkan Sezer
0f2322acfc
hidapi/mac: replace sprintf uses with snprintf.
...
Reference issues:
- https://github.com/libusb/hidapi/pull/509
- https://github.com/libusb/hidapi/pull/511
(cherry picked from commit ae9119c36b )
2023-04-24 10:46:49 -07:00
Ozkan Sezer
5f344c17c2
hidapi/mac: import mainstream commit c1b9d2ad
...
c1b9d2ad98
Properly handle the close of run loop on macOS
(https://github.com/libusb/hidapi/pull/522 )
- as per documentation `kCFRunLoopRunStopped` should be handled once the runloop is closed via `CFRunLoopStop`;
- if it is not handled - a race condition/crash may happen on the latest macOS when a device gets disconnected while being open;
(cherry picked from commit 62d1a2c836 )
2023-04-24 10:46:49 -07:00
Mingjie Shen
a688ecd6fa
Check return value of SDL_malloc()
...
(cherry picked from commit a4604cb0d6 )
2023-04-23 12:28:54 -04:00
Sam Lantinga
120bc77e91
Report PS3 accelerometer values in m/s2 instead of Gs
...
(cherry picked from commit 0467301baf )
2023-04-19 13:12:38 -07:00
Sam Lantinga
7ec9a4385a
More defensive coding against dangling device pointers
...
(cherry picked from commit acadb6f873 )
2023-04-06 13:21:44 -07:00
Sam Lantinga
cb0cf14155
The latest Armor-X Pro firmware update fixes the sign on the Z axis of the sensors
...
(cherry picked from commit 558bbbb07a )
2023-04-06 09:55:39 -07:00
Cyril Dubet
7914234b26
Fix key code names for ISO keyboard layouts
...
(cherry picked from commit 60dcaff7eb )
2023-04-05 17:03:42 -07:00
Sam Lantinga
f6363fde9a
Fixed crash if joystick->hwdata != NULL && device->driver == NULL
...
This should never happen, but we're seeing it in the wild, so make sure that we can never call into a NULL device driver.
(cherry picked from commit e13b74ccf0 )
2023-04-05 11:24:55 -07:00
Ozkan Sezer
f633915443
fix build after commit 22685556e5.
2023-04-05 02:10:56 +03:00
Sam Lantinga
57043825ba
Fixed crash if dbus can't be initialized
...
(cherry picked from commit cf2c6fa58d )
2023-04-04 12:35:30 -07:00
Sam Lantinga
22685556e5
Don't probe for PlayStation controllers when we already know the controller type
...
Fixes https://github.com/libsdl-org/SDL/issues/7556
(cherry picked from commit 655a07bdd8 )
2023-04-04 12:35:20 -07:00
Sam Lantinga
f444eac557
Fixed analog triggers on the DualSense controller
...
(cherry picked from commit a67d410501 )
2023-04-04 12:35:20 -07:00
Jerome Duval
eb0d214c17
Haiku: use a BLooper for events.
...
only create a BApplication when it doesn't already exist.
2023-03-30 10:20:11 -07:00
Frank Praznik
55f74c3285
x11: Don't allow the changing of certain scancodes
...
The X11 driver uses scancodes derived from keysyms to map the scancodes for extended keys to the physical keyboard, however, this can be incorrect when using certain XKB options (e.g. caps:swapescape), which changes the keysyms emitted by certain keys, but does not imply that their scancodes or positions should be altered. Mark selected scancodes as being non-remappable so that their scancodes aren't changed by toggling XKB mapping options.
2023-03-30 11:20:28 -04:00
Sam Lantinga
c2ee45f5ff
The Xinmotek Controller is used in multiple products with different mappings
...
The mapping included here is for the Ultimate Atari Fight Stick
(cherry picked from commit f1099f8e70 )
2023-03-28 15:16:07 -07:00
Sam Lantinga
0bf63175ab
Fixed gyro values for the Armor-X Pro controller
...
(cherry picked from commit 8df7b4d853 )
2023-03-28 14:44:59 -07:00
Sam Lantinga
d043c8535b
Fixed the accelerometer and gyro axes for the Armor-X Pro controller
...
(cherry picked from commit 37517557ae )
2023-03-28 12:29:33 -07:00
Anonymous Maarten
85fecbb10b
video: fix warnings about unused variables when building without duff's loop
...
(cherry picked from commit 0c3777d566 )
2023-03-28 10:21:36 -07:00
Anonymous Maarten
1402d13556
video/blit: fix -Wimplicit-fallthrough warnings
...
(cherry picked from commit f7961b7c9a )
2023-03-28 10:21:35 -07:00
Sylvain
16c9bad786
Safety fix: clear "_this->wakeup_window" when destroying the window
...
(cherry picked from commit c838ccf0e3 )
2023-03-28 08:29:24 -07:00
Sylvain
6574e5eb57
Safety fix: clear "_this->current_glwin" when destroying the window
...
(cherry picked from commit 0c048d98af )
2023-03-28 08:29:23 -07:00
Sylvain
4fa21ee5ed
Fixed bug #7515 - Window still grabbed after destroying
2023-03-28 09:43:34 +02:00
Sam Lantinga
8bfbda1eab
Fixed the accelerometer sensitivity for the Armor-X Pro controller
...
(cherry picked from commit 8029a767ee )
2023-03-27 14:33:59 -07:00
Sam Lantinga
93c289b475
Increased precision for PS4 sensor data conversion
...
(cherry picked from commit 3340864786 )
2023-03-27 14:33:56 -07:00
Pierre Wendling
ed5a343d25
SDL_hidapi_steam.c: Fix compilation under c2x.
...
When N2935 is implemented, the enum breaks compilation. Use a #define of
the SDL booleans instead.
(cherry picked from commit 975039ce0d )
2023-03-27 09:02:46 -07:00
Anonymous Maarten
cd64e0b6e3
SDL_blit_copy: Don't call potentially FPU using SDL_memcpy in SDL_memcpyMMX
2023-03-27 06:13:28 +00:00
Anonymous Maarten
d1dc195208
Implement _intel_fast_(memcpy|memset)
...
The classic Intel compiler generates calls to these functions when
building the SDL library with SDL_LIBC=OFF.
2023-03-27 06:13:28 +00:00
Anonymous Maarten
5aa76de35f
cpuinfo: use __cpuidex instead of __cpuid
...
The classic Intel Compiler does not clear the ecx register prior
to executing the cpuid opcode.
2023-03-27 06:13:28 +00:00
Frank Praznik
c0824cd49a
events: Increase the size of the name buffer when logging events
...
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 203a2a76fc )
2023-03-26 22:01:17 -07:00
Bartłomiej Dach
b970dd1beb
Android: Fix mismatching JNI method signature
...
Another regression from commit dca3fd8307 ,
which was a backport of commit de3909a190
from SDL3 to SDL2. This time the regression is much less apparent,
however, due to two reasons:
- It only appears when the SDL project is ran on an actual device
due to magic stringage.
- More importantly, the regression was partially hidden due to
the nature of de3909a190 .
The commit which was backported added a single `I` to the JNI method
signature in `SDL_android.c`, representing the added `int axis_mask`
parameter. The parameter was added to both SDL2 and SDL3.
However, notably, that `I` was added *after* commit
fcafe40948 , which removed the
`int nballs` parameter from the joystick API, but only from the SDL3
branch.
Therefore, in totality, what should really have been a merge conflict,
was obscured by the fact that the SDL3 branch ended up having
a net-identical JNI signature to the SDL2 branch, due to having
one bool param removed and one added - while, in fact, the SDL2 branch
needed one bool param added and none removed.
2023-03-25 15:08:33 -07:00
Sylvain
2dddaa7dc9
backport x11/sdl2 fixes
...
4b1378f
X11: fix size/position (test video_setWindowCenteredOnDisplay)
this fix x11 backend to correctly pass video_setWindowCenteredOnDisplay()
get border values early (eg status bar)
wait for size/position change to get valid values
d4d26e0
testautomation_video: if SDL_SetWindowSize/Position isn't honored, we should check there is an event
x11: send the events if various occasions
2023-03-25 10:27:17 +01:00
Sam Lantinga
b57a6a1adf
Added gamepad mapping for Flydigi Vader 2 with the latest firmware (6.0.4.9)
...
(cherry picked from commit ed0937598e )
2023-03-18 11:36:50 -07:00
Ivan Mogilko
d78072fcd4
Fixed SDL_RenderSetVSync does not update flags if simulated vsync is on
...
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).
2023-03-17 14:55:04 -07:00
Ryan C. Gordon
446e0943da
wasapi: Force WIN_CoInitialize duing device open.
...
Otherwise this won't work if you open a device on a background thread.
Fixes #7478 .
2023-03-17 08:44:19 -07:00
Sylvain
23bce27b26
Change SDL_BLENDMODE_MUL for gl renderers
...
Add FIXME for PSP and DirectFB
2023-03-16 20:27:09 +01:00
Sylvain
c078dfcf6b
Refresh generation of SDL_blit_auto.c after simplifying sdlgenblit.pl
2023-03-16 20:27:09 +01:00
Sylvain
18c4db678b
Simplify SDL_BLENDMODE_MUL in sdlgenblit.pl
2023-03-16 20:27:09 +01:00
Sylvain
7d26ba754a
Simplify SDL_BLENDMODE_MUL
2023-03-16 20:27:09 +01:00
Sylvain
bd70ce7f94
Refresh generation of SDL_blit_auto.c
2023-03-16 20:27:09 +01:00
Sam Lantinga
57ae9f466d
Ignore the PS4 packet CRC if it's not being set correctly
...
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 3951cae4a5 )
2023-03-13 20:00:19 -07:00
Rudolf Polzer
dca3fd8307
Android: indicate gamepaddb entries where axis order changed.
...
Axis order was changed in 6f1f586086 to improve
default mappings.
(cherry picked from commit de3909a190 )
2023-03-11 13:01:50 -08:00
Sam Lantinga
ab1670386f
Added support for the trigger buttons on the Victrix Pro FS for PS5
...
(cherry picked from commit 8d7e61ea42364c256b76e7f6f2b6d6f90742bcb7)
2023-03-10 15:46:22 -08:00
Sam Lantinga
76e9d64b36
Removed space between sizeof and parentheses
2023-03-10 08:13:51 -08:00
Sam Lantinga
e9f9cb29fc
Fixed build warning on Android
...
(cherry picked from commit 2af6f4a3e4 )
2023-03-10 08:12:28 -08:00
Qrox
ef347776c2
Uses integer arithmetics in SDL_ResampleAudio
...
- 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
(cherry-picked from commit 20e17559e5 )
2023-03-10 18:37:00 +03:00
Sam Lantinga
71dc7169d9
Added header for SDL_Delay()
2023-03-09 17:18:40 -08:00
Sam Lantinga
1e6ffc6294
Removed a duplicate delay accidentally added during code refactor
...
(cherry picked from commit 926db1bd54 )
2023-03-09 16:13:19 -08:00
Sam Lantinga
3f00fa16c6
Wait for the GCController framework to see IOKit devices
...
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 645823fc90 )
2023-03-09 16:13:19 -08:00
Sam Lantinga
0d76380042
Code style: changed "sizeof foo" to "sizeof(foo)" (thanks @sezero!)
...
(cherry picked from commit c6443d86c9 )
2023-03-09 15:23:59 -08:00
Sam Lantinga
46d143376a
If the client rect is empty, use the last known window size
...
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 2ca727aec6 )
2023-03-09 10:39:43 -08:00
Deve
1c2f825230
Fixed incorrect modifier keys handling on macOS
...
(cherry-picked from commit 45a58b7882 )
2023-03-09 20:28:51 +03:00
Frank Praznik
8f7427c158
tests: Always set valid dimensions for the fullscreen mode
2023-03-08 19:46:37 -05:00
Frank Praznik
6a999d16fa
wayland: Always use a scale factor of 1 for exclusive fullscreen emulation
2023-03-08 19:46:37 -05:00
Lokathor
cfd6b34b8f
Make mappings for "Retrolink SNES Controller" with `SDL_GAMECONTROLLER_USE_BUTTON_LABELS` both on and off
...
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 b8bc4a234b )
2023-03-08 16:44:30 -08:00
Ozkan Sezer
a70964aaf4
fix SDL_FindFreePlayerIndex so it can really return -1.
2023-03-08 20:00:50 +03:00
Sam Lantinga
35c13196f0
Fixed uninitialized variable
2023-03-08 08:40:38 -08:00
Sam Lantinga
f5c0760c6b
Disassociate the SDLOpenGLContext from the view before deleting it
...
If we don't do this, the view will be blanked even if another context is current and rendering from that context won't be visible.
Fixes https://github.com/libsdl-org/SDL/issues/4986
2023-03-08 01:15:21 -08:00
Sam Lantinga
63e6c19b7d
Use SDL_GL_DeleteContext instead of Cocoa_GL_DeleteContext for context cleanup
...
That will make the current context NULL before deleting the context.
2023-03-08 01:13:00 -08:00
Sam Lantinga
1bd9ebf533
If we're not the current fullscreen window and we don't want to be fullscreen, don't touch the current video mode
...
Fixes an assertion in qemu on macOS, which creates multiple hidden windows:
2023-03-07 09:56:55.304 qemu-system-i386[9931:2984587] *** Terminating app due to uncaught exception 'NSGenericException', reason: 'NSWindowStyleMaskFullScreen cleared on a window outside of a full screen transition. Called from (
0 AppKit 0x00000001968f77ac __25-[NSWindow setStyleMask:]_block_invoke + 140
1 AppKit 0x00000001968f76cc NSPerformVisuallyAtomicChange + 108
2 AppKit 0x00000001968f7580 -[NSWindow setStyleMask:] + 188
3 libSDL2-2.0.0.dylib 0x0000000106531328 Cocoa_SetWindowFullscreen + 568
4 libSDL2-2.0.0.dylib 0x0000000106501700 SDL_UpdateFullscreenMode + 1316
5 libSDL2-2.0.0.dylib 0x0000000106504270 SDL_SetWindowFullscreen_REAL + 328
6 libSDL2-2.0.0.dylib 0x000000010650117c SDL_FinishWindowCreation + 100
7 libSDL2-2.0.0.dylib 0x0000000106500998 SDL_CreateWindow_REAL + 1812
8 libSDL2-2.0.0.dylib 0x00000001063efd54 SDL_CreateWindow + 76
9 qemu-system-i386 0x00000001050aa600 sdl2_window_create + 192
10 qemu-system-i386 0x00000001050a9fa0 sdl2_2d_switch + 196
11 qemu-system-i386 0x0000000104e9c784 displaychangelistener_display_console + 524
12 qemu-system-i386 0x0000000104e9e36c register_displaychangelistener + 264
13 qemu-system-i386 0x00000001050ab6d0 sdl2_display_init + 304
14 qemu-system-i386 0x000000010505c870 qemu_init + 13380
2023-03-07 10:10:43 -08:00
Sam Lantinga
e0e79419b6
Fixed which window we check flags for when updating fullscreen mode
2023-03-07 10:08:55 -08:00
Sam Lantinga
8fc10ac95c
Added mapping for the Xbox Elite Core controller connected via Bluetooth on Android
...
(cherry picked from commit d08338ddc5 )
2023-03-06 15:37:52 -08:00
divVerent
91ad208d18
Fix Xbox One gamepad axis assignment on SDL_JOYSTICK_ANDROID API ( #7405 )
...
(cherry picked from commit 6f1f586086 )
2023-03-06 15:37:41 -08:00
Michal Suchanek
96a2a6b945
evdev_kbd: Use current keymap
...
keymap can change over time, caching the keymap causes wrong keys
returned when user changes keymap during runtime
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2023-03-03 14:30:02 -08:00
Ozkan Sezer
fd4bb4154b
dynapi: replace uses of deprecated SDL_assert_state and SDL_assert_data
2023-03-03 03:01:02 +03:00
Ryan C. Gordon
46945354cc
dataqueue: Make thread safe.
...
Each data queue gets its own mutex and each function obtains it.
Fixes #7390 .
(cherry picked from commit 8b9a938413 )
2023-03-02 16:43:44 -05:00
Ryan C. Gordon
f5bb286b76
dataqueue: Removed non-public SDL_ReserveSpaceInDataQueue function
...
This wasn't used, and it was just asking for trouble.
(cherry picked from commit f833e005e1 )
2023-03-02 16:41:58 -05:00
Sam Lantinga
f47a08ab84
Fixed typo in previous cherry-pick
2023-03-01 16:47:48 -08:00
Sam Lantinga
660fc89967
Don't clobber an existing entry with a different version when adding a gamepad mapping
...
(cherry picked from commit 727c7d4e2f )
2023-03-01 16:41:44 -08:00
Sam Lantinga
6ff3e49b6f
Follow the same pattern for releasing the window data in the UIKit driver
...
Possible fix for https://github.com/libsdl-org/SDL/issues/7361
(cherry picked from commit ebdb320651 )
2023-02-28 16:15:01 -08:00
Sam Lantinga
031348d377
Fixed SDL windows getting the maximized state after leaving fullscreen on macOS
...
(cherry picked from commit 2df08fb1b27b721998a1380a2acdbe1494b5591e)
2023-02-28 09:03:10 -08:00
Sam Lantinga
c0fb092425
Fixed locking up the Logitech F310 with the PlayStation controller detection
...
(cherry picked from commit da134a3039 )
2023-02-28 08:37:18 -08:00
Sam Lantinga
715749f578
Added mapping for DualSense Edge Wireless Controller on Linux
...
This is a mapping when using evdev, not the more advanced HIDAPI support.
(cherry picked from commit 206fa4dafb )
2023-02-27 15:21:04 -08:00
David Carlier
0c7346ec3e
USE_DEV_RANDOM close the file descriptor even in the rare case it can't read it
2023-02-26 14:00:32 +03:00
Torge Matthies
711a458be5
x11: Fix duplicate Xinput2 event reception
...
Passing True for owner_events in the XGrabPointer call makes all
XI_RawMotion events appear in the queue twice, with the only difference
between them being the value of XGenericEventCookie::cookie. These have
always been filtered out by a check in the XI_RawMotion handler,
however with a mouse that polls at more than 1 kHz frequency, there
also exist legitimate events that appear indistinguishable from these
duplicated events. These must not be filtered out, otherwise the
pointer may move at an inconsistent speed, appearing like a bad pointer
acceleration implementation.
Change owner_events to False in the XGrabPointer and remove the
duplicate event detection code to fix this.
Signed-off-by: Torge Matthies <openglfreak@googlemail.com>
(cherry picked from commit f18b5656f6 )
2023-02-25 10:05:43 -08:00
Sam Lantinga
ad09976eca
Fixed relative mouse motion over remote desktop
...
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 daffe02b11 )
2023-02-24 09:23:23 -08:00
Sam Lantinga
3bf9c70a7c
Changed the VID/PID used for the Backbone One controller on iOS
...
(cherry picked from commit 516e48515e )
2023-02-23 12:24:49 -08:00
Sam Lantinga
ea7103088f
Added support for the Backbone One PlayStation Edition
...
(cherry picked from commit 59bf1c2853 )
2023-02-23 11:59:10 -08:00
Sam Lantinga
a3a45f6709
Fixed view frame from flipping back and forth between landscape and portrait on iOS
...
(cherry picked from commit b2d913883c )
2023-02-23 11:59:00 -08:00
Ozkan Sezer
5a7ea76ed3
fix MSVC build failures in CI after commit 1e5e8e2f
...
(cherry picked from commit a2f8cf8fc0 )
2023-02-22 13:31:44 -05:00
Ryan C. Gordon
9403c9e95a
resampler: Work at double precision on x86-64 machines.
...
We get audio artifacts if we don't work at the higher precision, but
this is painful on CPUs that have to use a software fallback for this,
so for now (that is, until we have a better solution), get better output
on amd64 chips, where the cost is less painful.
(cherry picked from commit 1e5e8e2fda )
2023-02-22 13:29:31 -05:00
Sam Lantinga
13969f8567
De-duplicate Google Stadia controllers on macOS
...
(cherry picked from commit 87a83787a3 )
2023-02-21 15:35:25 -08:00
Sam Lantinga
9be85b846b
Rumbling the Google Stadia Controller over Bluetooth works on Linux and macOS
...
(cherry picked from commit 4aeec9d8c2 )
2023-02-21 15:07:24 -08:00
Sam Lantinga
35c9b1042f
Fixed the packet size for Xbox One controllers
...
(cherry picked from commit 021a7cfa13 )
2023-02-21 12:48:10 -08:00
Sam Lantinga
31a57c05dc
Fixed the share button on the ThrustMaster eSwap PRO Controller Xbox
...
(cherry picked from commit e4face7c1d )
2023-02-21 12:43:20 -08:00
Sam Lantinga
3dff5d3cbe
Added support for the Turtle Beach REACT-R and Recon Xbox controllers
...
(cherry picked from commit 5fded632d6 )
2023-02-21 11:29:45 -08:00
Sam Lantinga
4c9a79dddb
Removed duplicated conditional
...
(cherry picked from commit 1a15d506a6 )
2023-02-20 18:26:07 -08:00
Sam Lantinga
7c4f5e1def
Fixed rumble caps for the Nintendo Joy-Con controllers
...
(cherry picked from commit 02cea5fca1 )
2023-02-20 18:25:57 -08:00
Sam Lantinga
abe8dbbf1c
Added support for the Razer Wolverine V2 controllers
...
(cherry picked from commit 4994654d4f )
2023-02-20 18:25:38 -08:00
Sam Lantinga
0efb31ef32
cocoa/gles: do not unload EGL when context is destroyed
...
(cherry picked from commit e8091b8983 )
2023-02-20 10:43:15 -08:00
Marc-André Lureau
eb22fbc894
windows/gles: do not unload EGL when context is destroyed
...
It's legitimate to have multiple contexts.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
(cherry picked from commit 93861e1de0 )
2023-02-20 10:42:18 -08:00
Marc-André Lureau
479bc2d5ed
windows/gles: correct indentation
...
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
(cherry picked from commit 654965a628 )
2023-02-20 10:41:45 -08:00
Sam Lantinga
7b06007266
Fixed typo (thanks @Iniquitatis!)
...
(cherry picked from commit ced02319a6 )
2023-02-19 09:58:07 -08:00
Lauri Kasanen
7d55ccb8b0
Fix GetGlobalMouseState when xi2 is not available at runtime
...
(cherry picked from commit 0123d6311d )
2023-02-19 09:56:39 -08:00
Ozkan Sezer
da6bce4f76
SDL_x11dyn.h: include XInput2.h also for Xfixes
...
Fixes https://github.com/libsdl-org/SDL/issues/7343
2023-02-11 23:51:28 +03:00
Le Philousophe
74e8a6451b
Fix window size in X11 when window manager refuses to resize
...
(cherry picked from commit a67ae8eed5 )
2023-02-18 12:33:18 -08:00
Sam Lantinga
f741adc86c
Added other names for the DragonRise Inc. Wired Wheel (thanks @felimwhiteley!)
...
(cherry picked from commit eede2066fb )
2023-02-17 11:30:49 -08:00
Sam Lantinga
e86f494317
Hold the joystick lock while opening the HID device on non-Android platforms
...
On Windows the main thread can be enumerating DirectInput devices while the Windows.Gaming.Input thread is calling back with a new controller available, and in this case HIDAPI_IsDevicePresent() returned false since the controller initialization hadn't completed yet, creating a duplicate controller.
Fixes https://github.com/libsdl-org/SDL/issues/7304
(cherry picked from commit ece8a7bb8e )
2023-02-16 09:53:33 -08:00
Sylvain
d948e6c3c5
Fix potential de-referencing null pointer in SDL_EVDEV_kbd_keycode()
2023-02-16 08:23:22 +01:00
Sam Lantinga
e7376b7b74
Fixed Steam Runtime sandbox detection
...
Fixes hotplug issues on Steam Deck for Proton and native games
(cherry picked from commit bcd97b36d2 )
2023-02-15 13:54:50 -08:00
Sam Lantinga
69b2baec5c
Map the Android MENU button back to the SDL MENU key
...
Thanks to @AntTheAlchemist for the investigation!
Fixes https://github.com/libsdl-org/SDL/issues/7318
(cherry picked from commit beb6a2afdc )
2023-02-14 18:04:30 -08:00
Sam Lantinga
2c6995778e
Fixed handling simple mode PS4 reports
...
Fixes https://github.com/libsdl-org/SDL/issues/7270
(cherry picked from commit 5925cd4ef3 )
2023-02-14 17:53:37 -08:00
Sylvain
45e5f0f10b
Fixed bug #7302 - Memory 'leak' in SDL_SetMouseSystemScale()
2023-02-13 09:43:13 +01:00
Francisco Javier Trujillo Mata
2b66ef0df4
Fixed audio
2023-02-11 13:22:47 -08:00
Sam Lantinga
7285f0d441
Sorted controller list
...
(cherry picked from commit 68e2f23066 )
2023-02-10 17:18:32 -08:00
Alfredo Escobar
ca3468cb55
Add Hori Pokken Tournament DX Pro Pad
...
(cherry picked from commit 76552e4780 )
2023-02-10 17:17:00 -08:00
Bruce Mitchener
7d2012af87
emscripten: Update deprecated calls to EM_ASM*.
...
`EM_ASM_` and `EM_ASM_INT_V` are calls that have been deprecated
for a long time.
Since the return value isn't used for the call to `EM_ASM_`, it
can be replaced with `EM_ASM`.
`EM_ASM_INT_V` is now (for the last few years) `EM_ASM_INT`.
(cherry picked from commit a8e89f2567 )
2023-02-10 07:11:31 -08:00
Sylvain
17515f4aef
Backport simplify flags PR #7220
2023-02-09 17:19:46 -08:00
Sam Lantinga
f71178a16f
Fixed MFI controller being opened while HIDAPI controller was being opened
...
This was the callstack:
frame #3 : 0x00000001004e1930 libSDL3.1.0.0.dylib`IOS_AddJoystickDevice(controller=0x0000600003b0c000, accelerometer=SDL_FALSE) at SDL_mfijoystick.m:528:14
frame #4 : 0x00000001004e1a54 libSDL3.1.0.0.dylib`__IOS_JoystickInit_block_invoke(.block_descriptor=0x0000000100547760, note=@"GCControllerDidConnectNotification") at SDL_mfijoystick.m:673:45
frame #5 : 0x000000018601e578 CoreFoundation`__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 128
frame #6 : 0x00000001860bc074 CoreFoundation`___CFXRegistrationPost_block_invoke + 88
frame #7 : 0x00000001860bbfbc CoreFoundation`_CFXRegistrationPost + 440
frame #8 : 0x0000000185fefbac CoreFoundation`_CFXNotificationPost + 708
frame #9 : 0x0000000186edc72c Foundation`-[NSNotificationCenter postNotificationName:object:userInfo:] + 88
frame #10 : 0x000000019b054a18 GameController`__60-[_GCControllerManagerAppClient _onqueue_publishController:]_block_invoke + 156
frame #11 : 0x0000000185dc19dc libdispatch.dylib`_dispatch_call_block_and_release + 32
frame #12 : 0x0000000185dc3504 libdispatch.dylib`_dispatch_client_callout + 20
frame #13 : 0x0000000185dd1d1c libdispatch.dylib`_dispatch_main_queue_drain + 928
frame #14 : 0x0000000185dd196c libdispatch.dylib`_dispatch_main_queue_callback_4CF + 44
frame #15 : 0x000000018606ad6c CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16
frame #16 : 0x00000001860287ec CoreFoundation`__CFRunLoopRun + 2036
frame #17 : 0x00000001860278a4 CoreFoundation`CFRunLoopRunSpecific + 612
frame #18 : 0x00000001003b1194 libSDL3.1.0.0.dylib`process_pending_events at hid.c:509:9
frame #19 : 0x00000001003aebe8 libSDL3.1.0.0.dylib`PLATFORM_hid_open_path(path="USB_054c_05c4_0x11a104290", bExclusive=0) at hid.c:823:2
frame #20 : 0x00000001003b051c libSDL3.1.0.0.dylib`SDL_hid_open_path_REAL(path="USB_054c_05c4_0x11a104290", bExclusive=0) at SDL_hidapi.c:1419:19
frame #21 : 0x00000001004dabdc libSDL3.1.0.0.dylib`HIDAPI_SetupDeviceDriver(device=0x0000600003518000, removed=0x000000016fdfee3c) at SDL_hidapijoystick.c:399:19
frame #22 : 0x00000001004da890 libSDL3.1.0.0.dylib`HIDAPI_AddDevice(info=0x000060000212c2d0, num_children=0, children=0x0000000000000000) at SDL_hidapijoystick.c:843:5
frame #23 : 0x00000001004d9148 libSDL3.1.0.0.dylib`HIDAPI_UpdateDeviceList at SDL_hidapijoystick.c:1000:21
frame #24 : 0x00000001004d9940 libSDL3.1.0.0.dylib`HIDAPI_JoystickDetect at SDL_hidapijoystick.c:1205:13
frame #25 : 0x00000001003bc6d8 libSDL3.1.0.0.dylib`SDL_UpdateJoysticks_REAL at SDL_joystick.c:1703:9
frame #26 : 0x00000001003a13a8 libSDL3.1.0.0.dylib`SDL_PumpEventsInternal(push_sentinel=SDL_FALSE) at SDL_events.c:855:9
frame #27 : 0x00000001003a1340 libSDL3.1.0.0.dylib`SDL_PumpEvents_REAL at SDL_events.c:879:5
frame #28 : 0x000000010038b380 libSDL3.1.0.0.dylib`SDL_PumpEvents at SDL_dynapi_procs.h:572:1
frame #29 : 0x0000000100004524 testgamepad`loop + 40
frame #30 : 0x00000001000063d8 testgamepad`main + 2140
(cherry picked from commit a9650d440a )
2023-02-09 12:07:42 -08:00
Sam Lantinga
d77eb8a8d5
Make sure we synchronously re-enable USB reporting mode for Switch controllers (thanks @SortaCore!)
...
Fixes https://github.com/libsdl-org/SDL/issues/3450
(cherry picked from commit b7c6fec10a )
2023-02-08 14:31:05 -08:00
Sam Lantinga
3fb9118cb6
Note the Google Stadia controller doesn't support rumble over Bluetooth
...
(cherry picked from commit 50575ed223 )
2023-02-08 14:31:05 -08:00
Sam Lantinga
71fb4e3d76
Fixed mis-detecting the share button on the Xbox controller over NDIS
...
(cherry picked from commit 00e02de77b )
2023-02-08 14:31:05 -08:00
Sam Lantinga
2518e32de8
Dynamically update the serial number if it isn't available at first
...
This happens for Xbox One controllers using newer firmware connected over NDIS
(cherry picked from commit d1c72bb0bc )
2023-02-08 14:31:01 -08:00
Sam Lantinga
e8938fc66a
Enable paddles on the Xbox Elite controller when connected over USB
...
(cherry picked from commit c4db0725e4 )
2023-02-08 14:27:05 -08:00
Ozkan Sezer
fde6323662
fix build after the Logitech ChillStream patch.
2023-02-07 01:11:02 +03:00
Sam Lantinga
7154605982
Added support for the Logitech ChillStream
...
(cherry picked from commit 6f7edaf8920c504ebd3e797bd04ec1d2e46c4aa9)
2023-02-06 13:28:44 -08:00
Ozkan Sezer
7bf3e28dc6
windows/SDL_systhread.c: remove some dead code.
2023-02-07 00:21:40 +03:00
Sam Lantinga
3fa5a2f794
Fixed warning running a command queue without any vertex operations
...
(cherry picked from commit f8b41919da )
2023-02-06 11:25:35 -08:00
Sean Ridenour
af5efadd9f
Setting the same mouse cursor twice is a no-op
...
This fixes extremely poor event polling performance on MacOS when using
Dear ImGui, which sets the mouse cursor every frame.
2023-02-05 14:14:54 -05:00
Sam Lantinga
5b5a72e33c
Sorted controller list
...
(cherry picked from commit 1c03ddefc3 )
2023-02-05 08:44:46 -08:00
Antonis Geralis
58fa43e7c3
Added Elecom 8button gamepad
...
(cherry picked from commit 52cd9fcbb0 )
2023-02-05 08:44:46 -08:00
Leonardo Brondani Schenkel
4266cf8504
Add Linux mapping for 8BitDo Pro 2 Wired Controller for Xbox
...
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.
2023-02-05 08:44:37 -08:00
Alynne
92779a5bd8
Adds Stadia BT mapping
...
(cherry picked from commit 4dea13e02f )
2023-02-03 15:02:47 -08:00
Ozkan Sezer
06b305d232
dynapi: cast GetProcAddress() result to void*
2023-02-03 17:40:40 +03:00
Sam Lantinga
c4a493de97
Don't accept official mappings for controllers that aren't unique
...
For example, the DragonRise Inc. Generic USB Joystick
See https://github.com/gabomdq/SDL_GameControllerDB/issues/202 for details
(cherry picked from commit 673bc57649 )
2023-02-02 08:41:57 -08:00
Sam Lantinga
4a87abc966
Fixed sort_controllers.py and resorted game controller database
...
(cherry picked from commit 917607c335 )
2023-02-02 08:41:36 -08:00
Sam Lantinga
2290d71338
Added gamepad mappings for the Xin-Mo Dual Arcade Fightstick
...
(cherry picked from commit d29e1f3632 )
2023-02-01 23:07:47 -08:00
Sasha Szpakowski
17ecb11ed6
macOS: fix initial Metal drawable size in certain multi-display setups
...
(cherry picked from commit baca26d727 )
2023-02-01 22:42:12 -08:00