Commit graph

11850 commits

Author SHA1 Message Date
Ozkan Sezer e226008d83 configure: move HAVE_LINUX_INPUT_H to CheckInputEvents()
c.f.: https://github.com/libsdl-org/SDL/pull/8459.
Ref. issue https://github.com/libsdl-org/SDL/issues/8450
2023-11-02 23:33:20 +03:00
Anonymous Maarten 8b1b6734f6 cmake: fold HAVE_INPUT_EVENTS into HAVE_LINUX_INPUT_H 2023-11-02 21:28:39 +01:00
Sam Lantinga 97c2bdf256 Added patch note for SDL_GDKGetDefaultUser() 2023-11-02 09:59:25 -07:00
Sam Lantinga 20ecd2afcb Check to make sure the Windows joystick device has buttons and axes
This reverts commit e5a15f94e2f1a8fbbffb25ea9932cda9679a68fd.

It turns out removing this check allows mice like the ROG PUGIO II to show up as game controllers. We need to find a different way to differentiate between gaming mice and pedals.

Since these mice show up as controllers, and potentially causing games to use them instead of real controllers, we'll go ahead revert this change for now.

Reopens https://github.com/libsdl-org/SDL/issues/8227

(cherry picked from commit ad0af488837e44cbea0f0eab3b2f73b50a74bff4)
2023-11-02 08:43:11 -07:00
Anonymous Maarten 517db6d887 cmake: reset check state before testing -fobjc-arc 2023-10-30 21:08:30 +01:00
Anonymous Maarten 20630b2e6c cmake: check -fobjc-arc compiler flag on Apple platforms 2023-10-30 19:56:46 +01:00
Anonymous Maarten 7774de0fe3 cmake: file(RELATIVE_PATH) needs 2 absolute paths 2023-10-30 19:45:49 +01:00
Frank Praznik 60e8ff16dc wayland: Sanity check pointers and protocols before confining
(cherry picked from commit 875e45e70b4086ca8cdff405231fc616f06cda7e)
2023-10-29 14:28:58 -04:00
Frank Praznik 19c3e125ba wayland: Check the relative pointer handle before destroying
If the relative protocol is unsupported, this will always be null and the destroy function won't be called.

(cherry picked from commit 0e87b71d08c75af8c4b02808038825d3b16bf854)
2023-10-29 14:28:19 -04:00
Sam Lantinga 832afa81a1 Fixed making the EGL context current when resuming on Android
Make sure that we don't have the context cached as current on the current thread.

(cherry picked from commit 8b6da3c7017935932357a0decee84dc6167ace17)
2023-10-26 17:09:13 -07:00
Ozkan Sezer b29128994e CI: change FreeBSD CI runner to cross-platform-actions. 2023-10-26 01:03:50 +03:00
Sam Lantinga 1db0bd3fc0 Added support for the HP HyperX Clutch Gladiate controller
(cherry picked from commit f52b330ed84c477a94094302aa6a3baaca87019d)
2023-10-25 09:01:46 -07:00
Ryan C. Gordon cba6090398
n3ds: Check that audio thread name starts with "SDLAudioP"
The string has a number after it, so a basic SDL_strcmp() will never match.

Reference PR #8346.
2023-10-24 23:58:00 -04:00
Sam Lantinga 4194a902e8 Added support for "%[]" sscanf syntax
Fixes https://github.com/libsdl-org/SDL/issues/8423

(cherry picked from commit 39a961ba41430788774f1b8c0e6d63f7308116e7)
2023-10-24 17:32:23 -07:00
ds-sloth 3823ba1ded n3ds systhread - use 80kb thread stack size as default, remove hard cap 2023-10-24 16:42:44 -07:00
ds-sloth 301ee21f33 n3ds systhread - prefer to put audio thread on system core 2023-10-24 16:42:44 -07:00
ds-sloth 6623c87d0b SDL_n3dsaudio.c - don't risk leaving current_priority uninitialized 2023-10-24 16:42:44 -07:00
ds-sloth 070f57820f SDL_n3dsaudio.h: use triple buffering 2023-10-24 16:42:44 -07:00
ds-sloth 62266dbd4f SDL_n3dsaudio.c: separate mixer locks from audio device locks 2023-10-24 16:42:44 -07:00
Sam Lantinga d47c286b12 SDL_IsJoystickProductWheel() returns SDL_TRUE for Asetek wheelbases (thanks @IOBYTE!)
(cherry picked from commit e07f6c0a17fbf60eca96152036b2494d0cfafecd)
2023-10-23 10:44:30 -07:00
Sam Lantinga 259009a7ea Add missing error reporting in Android_JNI_FileOpen()
Fixes https://github.com/libsdl-org/SDL/issues/8427

(cherry picked from commit a844d909426153985136433f28ee5621affce97e)
2023-10-23 08:28:37 -07:00
Anonymous Maarten 90255914a8 cmake: install pdb's when present 2023-10-22 18:53:34 +02:00
Sam Lantinga e3e41b69a1 Revert "Check to make sure the Windows joystick device has buttons and axes"
This reverts commit 642504bc5993a6acd4d9c1d4c1314c6b1cf6e4e1.

We have SDL_HINT_JOYSTICK_ROG_CHAKRAM to ignore or allow the ROG Chakram X mouse to be used as a joystick.

Fixes https://github.com/libsdl-org/SDL/issues/8227

(cherry picked from commit e5a15f94e2f1a8fbbffb25ea9932cda9679a68fd)
2023-10-22 09:24:23 -07:00
Ozkan Sezer 44d8721087 Allow building against old Linux kernels. 2023-10-19 11:14:20 +03:00
Cameron Gutman 4aab2342e9 Check for device disconnection in HIDAPI_JoystickOpen()
HIDAPI joystick drivers may call HIDAPI_JoystickDisconnected() in their
UpdateDevice() function during HIDAPI_JoystickOpen(). If they do this
today, the opened joystick will end up partially initialized (no name,
path, mapping GUID, etc.) because HIDAPI_GetDeviceByIndex() will no
longer be able to find the SDL_HIDAPI_Device for the removed joystick.

Worse still, joystick->hwdata->device becomes a dangling freed pointer
the next time HIDAPI_UpdateDeviceList() is called. This leads to a UAF
when the application or SDL calls SDL_JoystickClose() on this joystick.

Fix all this by checking if the device no longer has any associated
joysticks after calling UpdateDevice() and failing the open call if so.

(cherry picked from commit 435e7ce663b7e568086c5dc0fb1bb889e41a3ed1)
2023-10-17 22:18:52 -05:00
Sylvain df6db90dd4 Fix sdltest_randomAsciiStringWithMaximumLength() where it requests a string a size 0
seen with: ./testautomation --seed MILAFAP2AKVP3V4G --filter sdltest_randomAsciiStringWithMaximumLength
2023-10-13 20:23:01 +02:00
Ryan C. Gordon d8b34b0993
pulseaudio: Stop the threaded mainloop before destroying the context.
Otherwise, we might trigger an assertion in libpulse.

Reference Issue #8348.

(cherry picked from commit 10fab3a39e2bd163cc45147b6afd517501801002)
2023-10-13 09:36:06 -04:00
Ryan C. Gordon 2849ca404e
x11: Properly check for XInput2 support before using it.
This specifically fixes a crash in X11_WarpMouseInternal if XInput2 was
missing at runtime, but also cleans up a few other existing checks.

Fixes #8378.

(cherry picked from commit 82f54af6177f3d50be1db42a528027ada6ea0a20)
2023-10-11 01:09:46 -04:00
Anonymous Maarten e417c6cffe ci: stop FreeBSD job after 30 minutes 2023-10-11 00:23:10 +02:00
Ryan C. Gordon 32587bd7de
Sync wiki -> header 2023-10-10 10:19:51 -04:00
Ozkan Sezer b7a0ef6bdf artsaudio: revert bad arts_init return code check from commit ce5da5d. 2023-10-10 10:40:20 +03:00
Frank Praznik 7010452062 tests: Disable mouse warp test under Wayland
Wayland does not allow warping the mouse pointer, thus these tests are unreliable and should be skipped.

(cherry picked from commit 9111c5e17843155019d444159a394ee480394056)
2023-10-09 12:58:22 -04:00
Frank Praznik e8c915dacc wayland: Try to skip the Wayland driver if not connecting to or in a Wayland session
When initializing the Wayland driver, check if the application is being started in, or trying to connect to, a Wayland session and skip to another driver if not. If neither WAYLAND_DISPLAY nor XDG_SESSION_TYPE are set, try to start anyway, and if the Wayland library is missing or no Wayland sessions are started, initialization will fail later in the process as it previously did.

This fixes the case where a Wayland session is running on a different VT, but an application wishes to run via KMSDRM on the current VT.

(cherry picked from commit 836927edf8da93ca2d3c8dddf7653113da65ce65)
2023-10-09 12:49:15 -04:00
KWottrich 25b0081367 Backport #7697 to SDL 2
Backport fixes from #8349

Include changes from #8357
2023-10-08 16:37:23 -07:00
Frank Praznik c4a169a6fc Fix automated video tests under X11/Wayland
Backports of f30a182 and f8e8dff
2023-10-06 16:22:46 -04:00
Frank Praznik 1d8dbb2896 wayland: Unref the libdecor window when hiding
Hiding the decorations while not unreferencing the frame was a workaround for an internal libdecor use-after-free bug that was fixed some time ago. Revert to unreferencing the window when hiding to ensure that it is properly destroyed.

Reverts dd2e318
2023-10-05 20:26:06 +02:00
Anonymous Maarten 43c57e3239 triangle: don't read destination pixel when you're going to discard it anyways 2023-10-05 13:46:28 +02:00
Anonymous Maarten 2d5c05a69c blit_slow: don't read destination pixel when you're going to discard it anyways
(cherry picked from commit 4cd0c13823551cce279c9ff3d284c41c28deb3d8)
2023-10-04 19:42:46 -07:00
Anonymous Maarten 321c2f8f24 ci: disable Intel compilers 2023-10-02 09:14:29 +02:00
Frank Praznik f9dc49c21c Fix automated tests using the dummy video driver
Manual backport of b8d9125
2023-09-30 11:21:10 -04:00
Anonymous Maarten 71b7790be8 snd_pcm_plugin_flush was removed in QNX 7.1 and later
Co-authored-by: elahav <elahav@users.noreply.github.com>
2023-09-30 16:48:51 +02:00
Anonymous Maarten 933ec9e978 cmake: add qnx support
Co-authored-by: elahav <elahav@users.noreply.github.com>
2023-09-30 16:48:51 +02:00
Anonymous Maarten a263cc2369 Allow the use of posix_spawn() instead of vfork/execlp()
Backport of #7041

Co-authored-by: elahav <elahav@users.noreply.github.com>
2023-09-30 16:48:51 +02:00
Simon McVittie 6b5eadb10f SDLTest_CompareSurfaces: Decode pixels correctly on big-endian platforms
Previously, if acting on a surface with less than 32 bits per pixel,
this code was placing the pixel value from the surface in the first
few bytes of the Uint32 to be decoded, and unrelated data from a
subsequent pixel in the remaining bytes.

Because SDL_GetRGBA takes the bits to be decoded from the
least-significant bits of the given value, ignoring the higher-order
bits if any, this happened to be correct on little-endian platforms,
where the first few bytes store the least-significant bits of an
integer.

However, it was incorrect on big-endian, where the first few bytes are
the most-significant bits of an integer.

The previous implementation also assumed that unaligned access to a
32-bit quantity is possible, which is not the case on all CPUs (but
happens to be true on x86).

These issues were not discovered until now because
SDLTest_CompareSurfaces() is only used in testautomation, which until
recently was not being run routinely at build-time, because it contained
other assumptions that can fail in an autobuilder or CI environment.

Resolves: https://github.com/libsdl-org/SDL/issues/8315
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit d95d2d7051e23271db7cec43134582834fb3ac8b)
2023-09-29 06:56:50 -07:00
Sam Lantinga 9772d0512c SDL_iconv_string() defaults to UTF-8
Fixes https://github.com/libsdl-org/SDL/issues/8287

(cherry picked from commit 1375d2049d9fd17cb0d9a47a0e256a42c3188f76)
2023-09-24 17:28:06 -07:00
Sam Lantinga 27f2df2292 Check for NULL before dereferencing newly allocated memory
Fixes https://github.com/libsdl-org/SDL/issues/8289

(cherry picked from commit 70a1bc69739016884a22abe6bf86f8a5deba29ef)
2023-09-24 17:18:41 -07:00
Ozkan Sezer 834e8898b9 SDL_dbus.h: define DBUS_TIMEOUT_USE_DEFAULT if not already defined.
(cherry picked from commit c521e1286be9284d3652569fab02718d9faa4d06)
2023-09-21 01:32:50 +03:00
Ryan C. Gordon 60070d0b3d
emscripten: Restore compatibility with existing emsdk releases.
(cherry picked from commit 5008521538ffe7931ecd0d11c4a5e75a05f54b5b)
2023-09-20 14:35:51 -04:00
Jaswant Panchumarti 330d420afc
Use EM_ASM_PTR when the return value is a pointer
- closes https://github.com/libsdl-org/SDL/issues/8241

(cherry picked from commit 953b55dd6da1dd9fb937f3c67a18c5cab2988599)
2023-09-20 14:35:02 -04:00
Frank Praznik 2fcbf321fa wayland: Fix drag offer leak
The data device leave function is intended for drag offers, not selections, and the function as was previously written was a no-op.

(cherry picked from commit 52efefca0450758848859b67c14fd853e3ddcf4d)
2023-09-20 11:13:03 -04:00