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 f60622c5103e37f221aa8252acfa9073cfbafbc7)
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 24007b00b2a5e9d09d953db79a24dd51b78e598b)
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 a4b4dff4a2998699757f12d29fdd4c632db884fe)
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 2e646c7141b3009628abda2a964ba5f9d1702e1a)
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 642504bc5993a6acd4d9c1d4c1314c6b1cf6e4e1)
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 b6df25c33497388f16a4ed2af896ef14277c8865)
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 9142292f4ad6d9bc8a2bc7c874e2fde54befeb9b)
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 255c3b7c82968def667da860cbda01f267b4edf1)
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 43f65a6ef08a502485c6107b255a9b22c890acd5)
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 ae9119c36bdcf2214d83c6d35c436d22b5fd03cb)
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 62d1a2c836c6176a6c76d54229eafa7d011bb9fb)
2023-04-24 10:46:49 -07:00
Mingjie Shen
a688ecd6fa
Check return value of SDL_malloc()
...
(cherry picked from commit a4604cb0d616db97921a2674a63b45f3fdfb81bc)
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 0467301baf57389d96fafbe169fb07f4c10169bc)
2023-04-19 13:12:38 -07:00
Sam Lantinga
7ec9a4385a
More defensive coding against dangling device pointers
...
(cherry picked from commit acadb6f873acaa0de094ad10a88f877d540ce0ec)
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 558bbbb07ae0afa0108c1560915351cfa13442b7)
2023-04-06 09:55:39 -07:00
Cyril Dubet
7914234b26
Fix key code names for ISO keyboard layouts
...
(cherry picked from commit 60dcaff7eb25a01c9c87a5fed335b29a5625b95b)
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 e13b74ccf0b20a20bd4baf1617bdc4f84c13feb7)
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 cf2c6fa58dea02edb870cff7090fd69f3dfbd081)
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 655a07bdd88d6bd19fe97c3abd39a2e2eef252ec)
2023-04-04 12:35:20 -07:00
Sam Lantinga
f444eac557
Fixed analog triggers on the DualSense controller
...
(cherry picked from commit a67d41050164e447048fa55179cc31b23be9d9b7)
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 f1099f8e70a1284c2ee3031f2ea0cfc84f22110c)
2023-03-28 15:16:07 -07:00
Sam Lantinga
0bf63175ab
Fixed gyro values for the Armor-X Pro controller
...
(cherry picked from commit 8df7b4d8539338121b1e34e29f331b28f1f4ff05)
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 37517557ae076cd94acd9ca3b739e1f32c150a43)
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 0c3777d5661dd0bf60ba3db634f79c2121371092)
2023-03-28 10:21:36 -07:00
Anonymous Maarten
1402d13556
video/blit: fix -Wimplicit-fallthrough warnings
...
(cherry picked from commit f7961b7c9ad598b031cd033f19e93c6d882e8e41)
2023-03-28 10:21:35 -07:00
Sylvain
16c9bad786
Safety fix: clear "_this->wakeup_window" when destroying the window
...
(cherry picked from commit c838ccf0e3a330ebbcf433698b8f5370c6fa80d6)
2023-03-28 08:29:24 -07:00
Sylvain
6574e5eb57
Safety fix: clear "_this->current_glwin" when destroying the window
...
(cherry picked from commit 0c048d98af449f1bc540e256c90eb792f1effff4)
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 8029a767eef4147c07cde965bd5a2d2e11e237ee)
2023-03-27 14:33:59 -07:00
Sam Lantinga
93c289b475
Increased precision for PS4 sensor data conversion
...
(cherry picked from commit 3340864786314d77e04a0dd2bf1ebffbc43bfc31)
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 975039ce0d3587c42e11f2922240957fc8f74166)
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 203a2a76fc0af2094de84d75dbf959c7db73fe72)
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 de3909a190f6e1a3f11776ce42927f99b0381675
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 de3909a190f6e1a3f11776ce42927f99b0381675.
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
fcafe40948fe308cc9552df5a3d625ee2725de5a, 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 ed0937598e0a637a1033c90a1b31886537bb288c)
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 3951cae4a56fddcb42ce4141a6518c97fa9125cd)
2023-03-13 20:00:19 -07:00
Rudolf Polzer
dca3fd8307
Android: indicate gamepaddb entries where axis order changed.
...
Axis order was changed in 6f1f586086a18ab32ddccc05e4616aac02774a1b to improve
default mappings.
(cherry picked from commit de3909a190f6e1a3f11776ce42927f99b0381675)
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 2af6f4a3e4f0a82ccbb7ce142c914b5aa5df2000)
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 20e17559e545c5d3cfe86c1c4772365e70090779)
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 926db1bd544364a9e4ab61e60bcfbe75e05adf56)
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 645823fc901c98b688512d3b3e70cc8922e8140c)
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 c6443d86c92e962683a1efe5f123a144988875b5)
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 2ca727aec6f5f264620f80999beb5ef77eefec4a)
2023-03-09 10:39:43 -08:00
Deve
1c2f825230
Fixed incorrect modifier keys handling on macOS
...
(cherry-picked from commit 45a58b7882a253db29b1b1393bc2a1fe030d5955)
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 b8bc4a234b93efa7a28c7fd7d524d905d9b76e6d)
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 d08338ddc5bb3cae1e4ce06201a2cd3c53215aa0)
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 6f1f586086a18ab32ddccc05e4616aac02774a1b)
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 8b9a9384132e39a49a14cf41b292018ce4f4f251)
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 f833e005e10f63979fd545d8bc29b4f1a7c36486)
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 727c7d4e2f44102bb571180929bfbb5d527f4f27)
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 ebdb32065163b8ee1ef9c1a0dfa601335b4ad83d)
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 da134a30396e12786c14fe8d1190ab05c67d9dba)
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 206fa4dafb633ed074b930cbb3440a9925c532f2)
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 f18b5656f6f859e4d4e096d290afd9fae884a5b8)
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 daffe02b117ccd484763eadc716e4d4453c89868)
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 516e48515e32f74aa98a3df4cbdb23b9c477f2f0)
2023-02-23 12:24:49 -08:00
Sam Lantinga
ea7103088f
Added support for the Backbone One PlayStation Edition
...
(cherry picked from commit 59bf1c2853d5b06295c939099f6cf5f1611f70b5)
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 b2d913883c39e0a53e55eb9286d7e442d565554e)
2023-02-23 11:59:00 -08:00
Ozkan Sezer
5a7ea76ed3
fix MSVC build failures in CI after commit 1e5e8e2f
...
(cherry picked from commit a2f8cf8fc0c6f4fe8a904284060f61f19f129efa)
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 1e5e8e2fda3796e76e6f7b1c39683925a3e9fed9)
2023-02-22 13:29:31 -05:00
Sam Lantinga
13969f8567
De-duplicate Google Stadia controllers on macOS
...
(cherry picked from commit 87a83787a3a0a9922b02b35ba809d9da86930fc8)
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 4aeec9d8c2ad2fa0465999ecb4fd5c20734f1b27)
2023-02-21 15:07:24 -08:00
Sam Lantinga
35c9b1042f
Fixed the packet size for Xbox One controllers
...
(cherry picked from commit 021a7cfa13c20d518ebfb6e96c3305150256983b)
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 e4face7c1d41698067b9afdd8c7f0a8f76774da2)
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 5fded632d6fa532ac25e76ad9a676c9ea726dd02)
2023-02-21 11:29:45 -08:00
Sam Lantinga
4c9a79dddb
Removed duplicated conditional
...
(cherry picked from commit 1a15d506a69d5d73a53728c569ef84a69db51833)
2023-02-20 18:26:07 -08:00
Sam Lantinga
7c4f5e1def
Fixed rumble caps for the Nintendo Joy-Con controllers
...
(cherry picked from commit 02cea5fca107991774792c431efc96319ef2d060)
2023-02-20 18:25:57 -08:00
Sam Lantinga
abe8dbbf1c
Added support for the Razer Wolverine V2 controllers
...
(cherry picked from commit 4994654d4f2d5c96a0faa972ebbb6c653f939d56)
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 e8091b89830c3b9bb19eff76463a6e2525f05fa5)
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 93861e1de00a76080fa6ed756a6bd9c764b3ec07)
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 654965a6286ccb3ef861310d0cff578788641091)
2023-02-20 10:41:45 -08:00
Sam Lantinga
7b06007266
Fixed typo (thanks @Iniquitatis!)
...
(cherry picked from commit ced02319a6bd001c1c2ce85a48887efe3a7b79d8)
2023-02-19 09:58:07 -08:00
Lauri Kasanen
7d55ccb8b0
Fix GetGlobalMouseState when xi2 is not available at runtime
...
(cherry picked from commit 0123d6311d5c0059d617324426ef7eef8d577d9b)
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 a67ae8eed57f4545c739e6eb3a4b8c1169d3afbc)
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 eede2066fbcc342e96592fbbbfe94b2420feb524)
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 ece8a7bb8e2dae9cb53115980cea9ef1213a0160)
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 bcd97b36d23d08226e98a995eafd3d6aa35401b4)
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 beb6a2afdc74a00f07ec230297c2675920a7bf79)
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 5925cd4ef377a2211fd057ef6fa9f41141999cb7)
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 68e2f230662a0b3f2ce7c0085f781f1652901af3)
2023-02-10 17:18:32 -08:00
Alfredo Escobar
ca3468cb55
Add Hori Pokken Tournament DX Pro Pad
...
(cherry picked from commit 76552e4780a57f24ec1cd77fb942b7cabe1219d8)
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 a8e89f2567b9069c919f9b21996e0a46cd4bb679)
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 a9650d440a862b86dc5722a402b06bf2bbbec527)
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 b7c6fec10a152e47f8fa18350134188b75e9df0b)
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 50575ed2233b9924198e10c9a261c10323d9089e)
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 00e02de77b615d5faf94af709760fd0f2e749a39)
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 d1c72bb0bc54fba41ba89930a3ed98f8767be724)
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 c4db0725e4cf5eb6ec5239e6f03346958e88b9cf)
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 f8b41919dac0fb95553f910d02faafc6d7205692)
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 1c03ddefc320ec9969d5f81c2c3cb988d94a8b4c)
2023-02-05 08:44:46 -08:00
Antonis Geralis
58fa43e7c3
Added Elecom 8button gamepad
...
(cherry picked from commit 52cd9fcbb074771804f443e7a9b2e9436485fe83)
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 4dea13e02fbfd2ac9eeb0a5cbb35cf5d1d53f549)
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 673bc5764942e3f645f1ff7d64f3d6a2059e3cdb)
2023-02-02 08:41:57 -08:00
Sam Lantinga
4a87abc966
Fixed sort_controllers.py and resorted game controller database
...
(cherry picked from commit 917607c335a87edcb3870b8504247609bea3c04d)
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 d29e1f363239b45aedf5f81683fbb6cf52029bc2)
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 baca26d72701655157c2a1ab678c2d5af0830d53)
2023-02-01 22:42:12 -08:00
Ryan C. Gordon
7ac43cfb6b
Note that version.rc is public domain.
...
This avoids potential concerns that customizing would qualify a build
of SDL as an "altered source version" under the zlib license.
2023-01-29 11:46:22 -05:00
Matt Durgavich
dfc56cfc0e
Fix For issue #6948 ( #6991 )
...
MessageBoxes attached to a window in macOS should use modal APIs and not
use a poll/sleep pattern on the main thread. Sleeping the main thread
makes the NSWindow message loop sluggish and interferes with external
applications that need to send messages to that window, such as
VoiceOver.
2023-01-28 15:49:51 -08:00
Anonymous Maarten
33ec2a5e94
vita: fix reformatting error in SDL_vtagl_pvr.c
2023-01-25 00:22:50 +01:00
ds-sloth
038ccd764a
Support MIN/MAX blend on opengles2
2023-01-23 06:09:58 -08:00
ds-sloth
9670f233cc
Support MIN/MAX blend on OpenGL + ES
2023-01-22 13:48:13 -08:00