Commit Graph

12235 Commits

Author SHA1 Message Date
Sylvain
763d768f7d Fix bug #9331 - SDL3 Android crash getVibrator() == null
(cherry picked from commit 1855ce68af)
2024-03-23 16:32:00 -07:00
rofl0r
82b449611a PSP: improve performance counter res to us granularity 2024-03-23 09:31:42 -07:00
Marcel Hild
fa18c9bf4a Add support for MadCatz Saitek Side Panel Control Deck
Signed-off-by: Marcel Hild <hild@b4mad.net>
(cherry picked from commit 67e425bcf8)
2024-03-22 09:16:20 -07:00
Frank Praznik
5df737bb3c wayland: Check the returned display pointer before dereferencing
Fixes a crash when all displays are disconnected.
2024-03-20 15:44:32 -04:00
Sam Lantinga
a9ac349846 Poll for the initial controller state when using DirectInput
This fixes getting a deflected axis as the first buffered input reading on a generic USB controller (G-Shark GS-GP702)

(cherry picked from commit 70b0d33106)
2024-03-20 10:41:56 -07:00
Pierre Wendling
4a79fe44ff N3DS: Fix locale name and early return.
- The name for simplified Chinese should be `zh_CN`.
- Ensure `cfguExit` is called even if `CFGU_GetSystemLanguage` failed.

(cherry picked from commit 390fff4ae0)
2024-03-19 16:54:30 -07:00
Cameron Gutman
43f0ae1e54 Improve event processing latency when gamepad/sensor is open
By using the SDL_WaitEventTimeout_Device() path even when polling is required,
we can still achieve sub-millisecond latency for non-gamepad/sensor events when
a gamepad or sensor is in use by the application.
2024-03-19 01:21:49 -05:00
rofl0r
c17d2246fb PSP/Joystick: fix formatting 2024-03-17 13:22:53 -07:00
rofl0r
86f223d664 PSP: don't block on joystick event query
using the blocking sceCtrlReadBufferPositive() effectively turns SDL_PollEvent() into WaitForVblank(), because the functions does exactly that if no input is buffered.
due to this, calling SDL_PollEvent() once per frame averaged in 7 ms delay out of the available 16ms budget to get a frame calculated and drawn to achieve 60 fps.
2024-03-17 13:22:53 -07:00
Sam Lantinga
2d6c100058 Added a mapping for the Defender Joystick Cobra R4 (thanks @kotenok2000!)
(cherry picked from commit d972244d3a)
2024-03-17 12:14:17 -07:00
Sam Lantinga
07f04bb35e Use the CRC as part of the unique key for mappings
(cherry picked from commit 4697153d1e)
2024-03-17 12:14:11 -07:00
Frank Praznik
24aedc1439 wayland: Always use the entire buffer for the viewport source
Not doing so can result in protocol errors if the viewport source region is updated and a buffer with the old, smaller dimensions is committed.
2024-03-17 10:46:58 -04:00
Sam Lantinga
b8daf14fe5 If a mapping specifies a crc, don't match for controllers that don't have that CRC
The CRC is used to distinguish between different controllers that have the same VID/PID, so if the CRC doesn't match, it's probably a different controller that we don't know about.

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

(cherry picked from commit 30e93b40c2)
2024-03-14 13:36:12 -07:00
Frank Praznik
525c317ed9 wayland: Add cursor-shape-v1 protocol support
This is the preferred method of handling the cursor shape on KDE 6 and likely other window managers going forward.

Manual backport of c2e9693
2024-03-14 09:49:40 -04:00
Frank Praznik
59d4a39456 Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:23:43 -04:00
Frank Praznik
88bdc028ec Fix build (C90 declaration order) 2024-03-12 22:06:36 -04:00
Frank Praznik
d3c89bb479 wayland: Allocate the cursor shared memory buffer entirely in memory, if possible.
Use memfd_create() to allocate the temporary SHM backing file in memory, and set the size with posix_fallocate(), which will return an error on insufficient space vs ftruncate(), which will silently succeed and allow a SIGBUS error to occur if the unbacked memory is accessed.

Additionally, make the legacy path more robust by unlinking the temp file, so it won't persist after close, and unmapping the shared memory buffer.

(cherry picked from commit 9bdb992925)
2024-03-12 20:56:16 -04:00
Sam Lantinga
e54774faca Removed incorrect mapping for a HORI controller
This broke support for the Hori Fighting Stick EX2, which gets a good mapping if the automatic mapping is allowed to create one.

If the original controller needs a mapping, it should be added with a crc, since that VID/PID combination is used by several HORI controllers.

(cherry picked from commit d79f865251)
2024-03-11 17:14:11 -07:00
Anonymous Maarten
3184936950 cmake: we only need a C++ compiler for Android, Haiku and UWP 2024-03-11 01:26:13 +01:00
Sam Lantinga
66054a6515 Turn HIDAPI joystick support off by default on mobile platforms
On Android, HIDAPI prompts for permissions and acquires exclusive access to the device, and on Apple mobile platforms it doesn't do anything except for handling Bluetooth Steam Controllers.

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

(cherry picked from commit e3cf2e4794)
2024-03-10 15:03:47 -07:00
Sam Lantinga
cd197be53b Fixed crash if joystick functions are passed a NULL joystick
In particular this affects the doomsday game engine if no joystick or
gamepad is attached.

(cherry picked from commit 0dfdf1f3f2)
[smcv: Also included minor adjustment from https://github.com/libsdl-org/SDL/pull/9233]
2024-03-09 08:40:49 -08:00
Sam Lantinga
528b71284f Added support for the 6-button SEGA Mega Drive Control Pad for Nintendo Online 2024-03-08 12:38:05 -08:00
Sam Lantinga
26054d9934 Fixed mapping for the Sanwa Supply JY-P76USV controller
(cherry picked from commit 57a160c9ab)
2024-03-06 20:54:33 -08:00
Jade Macho
da9bfc43e7 GDK: Partially revert 2670eb44af
MsgWaitForMultipleObjects is desktop-only.

(cherry picked from commit e1e5d33420)
2024-03-06 21:28:00 +03:00
Ozkan Sezer
177a836653 SDL_RWFromFile, stdio: allow named pipes along with regular files.
Fixes https://github.com/libsdl-org/SDL/issues/9174
2024-03-06 18:50:00 +03:00
Sam Lantinga
bdc7ad8f56 Keep track of whether the Android on-screen keyboard was opened by the application
Fixes https://github.com/libsdl-org/SDL/issues/9202

(cherry picked from commit edbcef11ff)
2024-03-05 13:53:56 -08:00
Sam Lantinga
75c5cff0bf Fixed "${folder^}Activity: bad substitution" with bash 3.2 on macOS
(cherry picked from commit c36f773eb4)
2024-03-05 13:47:59 -08:00
Sam Lantinga
a842bc29fa Uppercase the first letter of the class name to match Java conventions
Fixes https://github.com/libsdl-org/SDL/issues/8930

(cherry picked from commit 4189edaeb7)
2024-03-03 16:57:16 -08:00
Sam Lantinga
d35dee76c7 Added a mapping for the Sanwa Supply JY-P76USV controller
Fixes https://github.com/libsdl-org/SDL/issues/8644

(cherry picked from commit ccd309c433)
2024-03-03 12:23:59 -08:00
Sam Lantinga
9e1e0fb92f Removed the mapping for the G-Shark GS-GP702
This uses the same chipset as the DragonRise Inc. Generic USB Joystick, which many manufacturers use for different products with different mappings.

In order to add a mapping for a controller using this chipset, we need a unique crc for the device name.

(cherry picked from commit 8d8076263e)
2024-03-03 12:20:43 -08:00
Sam Lantinga
627e15871a SDL_GameControllerGetAppleSFSymbolsNameForAxis() returns NULL if the symbol isn't found 2024-03-03 11:56:29 -08:00
Sam Lantinga
b87116ff03 SDL_GameControllerGetAppleSFSymbolsNameForButton() returns NULL if the symbol isn't found
Fixes https://github.com/libsdl-org/SDL/issues/9071
2024-03-03 11:09:03 -08:00
Sam Lantinga
05f6709617 If the viewport changes the cliprect should be updated
The clip rectangle is defined to be viewport relative, so if the viewport changes we need to update it.

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

(cherry picked from commit d0af01e7d4)
2024-02-28 08:48:40 -08:00
Frank Praznik
9eaf7d8cc8 wayland: Remove all references to destroyed outputs from windows
The removal of a wl_output may not be accompanied by leave events for the surfaces present on it. Ensure that no window continues to hold a reference to a removed output.
2024-02-27 11:48:45 -05:00
scribam
9a65d123a7 ci: update deprecated node.js 16 actions
(cherry picked from commit 38d24778ed)
2024-02-23 22:02:13 +01:00
scribam
fdbf233cfb ci: bump cross-platform-actions/action version to v0.23.0
(cherry picked from commit cbe330befd)
2024-02-23 23:21:28 +03:00
Frank Praznik
54faea8b89 x11: Don't resize, move, or raise windows when changing the min/max size
The resize/move/raise calls when changing a window's min/max size are redundant, as the video core will call the X11_SetWindowSize() function after the change, and the resize function will perform whatever actions are necessary.
2024-02-23 14:35:56 -05:00
Sam Lantinga
69fb802a90 Fixed Visual Studio warning 4459
(cherry picked from commit d135daad5b)
2024-02-21 23:33:11 +03:00
Ryan C. Gordon
4316c5ec02 audio: fix SSE conversion of Sint8 audio to Float32.
Fixes #9099.
2024-02-21 15:16:08 -05:00
Sam Lantinga
903d888cc3 Convert mouse wheel coordinates to renderer view
Fixes https://github.com/libsdl-org/SDL/issues/9097
2024-02-20 15:44:26 -08:00
Frank Praznik
f24216c2ba wayland: Don't pass null string pointers to wl_cursor_theme_get_cursor
The function calls strcmp internally without checking for a null string parameter, and calling strcmp with a null parameter is undefined behavior.
2024-02-18 12:11:29 -05:00
Ryan C. Gordon
df00a7dd4c x11: Cleaned up system cursor code to match previous Wayland change. 2024-02-16 08:37:23 -05:00
Ryan C. Gordon
827917ea60 wayland: Minor cleanup in new mouse cursor selection code.
- Move legacy name choice to a separate function, so we can `return` a
  string in one line instead of assign a variable and `break` for each item.
- Have the case statement cover SDL_NUM_SYSTEM_CURSORS, and not `default`, so
  compiler will (maybe) warn us if an enum value is added but not included here.
- Only choose a legacy name if necessary.
2024-02-16 08:22:13 -05:00
Simon McVittie
271df2fdd8 emscripten, wayland, x11: Share the table of CSS cursor names
As suggested in #8939.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-02-16 07:52:55 -05:00
Simon McVittie
aa6c390bbd emscripten, wayland, x11: Map SIZEALL to "all-scroll" instead of "move"
These previously mapped SIZEALL to "move", but "move" is not guaranteed
to be a four-pointed arrow: according to the CSS spec, it's actually
intended to be a drag-and-drop cursor, analogous to "alias" and "copy".
Map it to "all-scroll" instead, as in Wayland: while this is *also* not
semantically guaranteed to be a four-pointed arrow, it is at least
*suggested* to make it a four-pointed arrow.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-02-16 07:52:55 -05:00
Ryan C. Gordon
67827c0b00 wayland: Prefer to use CSS names for cursors, falling back to X11
SDL3's Wayland code already uses the CSS names exclusively with no
fallback, but since SDL2 has historically used the older names, keeping
them as a fallback makes sense if the CSS names don't work out.

[smcv: Added commit message]
Tested-by: Simon McVittie <smcv@collabora.com>
2024-02-16 07:52:55 -05:00
Simon McVittie
e2535ba547 wayland: Use CSS/freedesktop cursor name "default" as a fallback
The "left_ptr" name is an X11 thing, and there's no guarantee that
Wayland cursor themes contain it. In particular, GNOME's Adwaita theme
as of version 46.beta only contains the CSS/freedesktop names.

To test, either move one of the known cursors out of the way, or edit
the switch statement above to use a wrong name for one of them.

Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-02-16 07:52:55 -05:00
Ryan C. Gordon
6c0e3532fa x11: Use XcursorLibraryLoadCursor to load system cursors when available.
Apparently this is necessary on the latest Gnome to get properly themed
cursors, vs ancient X11 standard cursors, as Gnome has dropped the old
theme names that XCreateFontCursor eventually expected to find.

Fixes #8939.

(cherry picked from commit cb9565354c)
2024-02-16 02:12:45 -05:00
Ozkan Sezer
bc30fb295d don't let SDL_render.c:render_drivers[] have an empty initializer list. 2024-02-15 20:33:24 +03:00
Ozkan Sezer
d0731ab9a3 Check the SDL_VIDEO_RENDER_??? macros with #if instead of #ifdef
Allows users to disable them by defining them as 0.

Closes https://github.com/libsdl-org/SDL/issues/8996
2024-02-15 02:55:02 +03:00