Commit Graph

12114 Commits

Author SHA1 Message Date
Frank Praznik
d849036927 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)
(cherry picked from commit d3c89bb479)
2024-03-12 21:17:29 -07:00
Sam Lantinga
5be47255ba 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)
(cherry picked from commit e54774faca)
2024-03-11 17:14:26 -07:00
Sam Lantinga
8f860b3698 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]
(cherry picked from commit cd197be53b)
2024-03-09 08:41:16 -08:00
Sam Lantinga
35992597ae Added support for the 6-button SEGA Mega Drive Control Pad for Nintendo Online
(cherry picked from commit 528b71284f)
2024-03-08 13:08:27 -08:00
Sam Lantinga
3f0d7a2937 Fixed mapping for the Sanwa Supply JY-P76USV controller
(cherry picked from commit 57a160c9ab)
(cherry picked from commit 26054d9934)
2024-03-06 20:54:55 -08:00
Jade Macho
dae1232489 GDK: Partially revert 2670eb44af
MsgWaitForMultipleObjects is desktop-only.

(cherry picked from commit e1e5d33420)
(cherry picked from commit da9bfc43e7)
2024-03-06 21:28:24 +03:00
Ozkan Sezer
8e388843b8 SDL_RWFromFile, stdio: allow named pipes along with regular files.
Fixes https://github.com/libsdl-org/SDL/issues/9174

(cherry picked from commit 177a836653)
2024-03-06 18:50:28 +03:00
Sam Lantinga
5adbf3765a Updated to version 2.30.1 for release release-2.30.1 2024-03-05 14:33:57 -08:00
Sam Lantinga
e910e6f13d 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)
(cherry picked from commit bdc7ad8f56)
2024-03-05 13:55:12 -08:00
Sam Lantinga
2f2cca8ac6 Added a mapping for the Sanwa Supply JY-P76USV controller
Fixes https://github.com/libsdl-org/SDL/issues/8644

(cherry picked from commit ccd309c433)
(cherry picked from commit d35dee76c7)
2024-03-03 12:24:15 -08:00
Sam Lantinga
a2f39399a1 SDL_GameControllerGetAppleSFSymbolsNameForAxis() returns NULL if the symbol isn't found
(cherry picked from commit 627e15871a)
2024-03-03 11:56:53 -08:00
Sam Lantinga
c1149f88b6 SDL_GameControllerGetAppleSFSymbolsNameForButton() returns NULL if the symbol isn't found
Fixes https://github.com/libsdl-org/SDL/issues/9071

(cherry picked from commit b87116ff03)
2024-03-03 11:13:04 -08:00
Sam Lantinga
54adba6a31 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)
(cherry picked from commit 05f6709617)
2024-03-03 11:13:04 -08:00
Sam Lantinga
b48106f8a8 Don't test 10-bit pixel format conversion
We either need to explicitly test using the sRGB colorspace or update the tests for HDR10 color conversion. We'll just disable them for now, as these formats aren't commonly used in games.

(cherry picked from commit f9c57e16b0)
2024-03-03 00:01:20 +03:00
scribam
f345428367 ci: update deprecated node.js 16 actions
(cherry picked from commit 38d24778ed)
2024-02-23 23:42:56 +01:00
scribam
e4287595c1 ci: bump cross-platform-actions/action version to v0.23.0
(cherry picked from commit cbe330befd)
2024-02-23 23:21:40 +03:00
Sam Lantinga
73efbf2e14 Fixed Visual Studio warning 4459
(cherry picked from commit d135daad5b)
2024-02-21 23:33:28 +03:00
Ryan C. Gordon
ad342dfca9 audio: fix SSE conversion of Sint8 audio to Float32.
Fixes #9099.

(cherry picked from commit 4316c5ec02)
2024-02-21 15:16:46 -05:00
Sam Lantinga
f13d6d4b0f Convert mouse wheel coordinates to renderer view
Fixes https://github.com/libsdl-org/SDL/issues/9097

(cherry picked from commit 903d888cc3)
2024-02-20 15:45:04 -08:00
Frank Praznik
dfb8241317 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.

(cherry picked from commit f24216c2ba)
2024-02-18 12:35:47 -05:00
Ryan C. Gordon
c67f10e43f x11: Cleaned up system cursor code to match previous Wayland change.
(cherry picked from commit df00a7dd4c)
2024-02-16 08:38:13 -05:00
Ryan C. Gordon
932eea513e 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.

(cherry picked from commit 827917ea60)
2024-02-16 08:38:08 -05:00
Simon McVittie
5e51a37518 emscripten, wayland, x11: Share the table of CSS cursor names
As suggested in #8939.

Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 271df2fdd8)
2024-02-16 08:12:59 -05:00
Simon McVittie
372564299e 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>
(cherry picked from commit aa6c390bbd)
2024-02-16 08:12:54 -05:00
Ryan C. Gordon
c397fe0c51 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>

(cherry picked from commit 67827c0b00)
2024-02-16 08:12:47 -05:00
Simon McVittie
95227e2732 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>
(cherry picked from commit e2535ba547)
2024-02-16 08:12:41 -05:00
Ryan C. Gordon
6f8d6da77f 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:13:30 -05:00
Ozkan Sezer
6f15aec644 don't let SDL_render.c:render_drivers[] have an empty initializer list.
(cherry picked from commit bc30fb295d)
2024-02-15 22:51:50 +03:00
Ozkan Sezer
9bed177f10 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
(cherry picked from commit d0731ab9a3)
2024-02-15 22:51:37 +03:00
Frank Praznik
7de4f16710 wayland: Don't store wl_output pointers in mode driver data
They aren't used for anything, and cause problems if the video core tries to free them.

Manual backport of f9ba0e1

(cherry picked from commit 699cec1a8d)
2024-02-14 11:53:07 -05:00
Sam Lantinga
beac43f41f Revert "wayland: Don't initialize OpenGL when the window flags didn't specify it"
This reverts commit f522c5380c.

We don't want this change for SDL2, and we're doing further investigation for SDL3.

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

(cherry picked from commit 120b8d4189)
2024-02-12 16:03:14 -08:00
Sam Lantinga
8538d5dcf1 Fixed error: unused variable 'axes' [-Werror,-Wunused-variable]
(cherry picked from commit 814a94c349)
(cherry picked from commit 6669d04ea6)
2024-02-12 11:18:54 -08:00
Sam Lantinga
0fb294ade4 Explicitly retain and release NSObjects in C structures
Fixes https://github.com/libsdl-org/SDL/issues/9021
Fixes https://github.com/libsdl-org/SDL/issues/9042

(cherry picked from commit 42cdbf6b21)
(cherry picked from commit 971c5c2610)
2024-02-12 10:21:59 -08:00
Chris Collins
0f6a682ea6 Wayland: Avoid SEGV if a modifier notification comes before the keymap
(cherry picked from commit 0f81598e9f)
(cherry picked from commit de0cb94e72)
2024-02-10 07:05:16 -08:00
Hans-Kristian Arntzen
c4fc20a033 Fix broken use of MsgWaitForMultipleObjects.
- Timeout < 0 was not handled properly
- Return value for success is WAIT_OBJECT_0 + nCount, not positive value

(cherry picked from commit 69f2bd151e)
(cherry picked from commit 4ae87e215e)
2024-02-10 07:03:21 -08:00
Sam Lantinga
a24e2bfc76 Guarded ElementAlreadyHandled with #ifdef ENABLE_PHYSICAL_INPUT_PROFILE (thanks @Donione!)
Fixes https://github.com/libsdl-org/SDL/issues/9033

(cherry picked from commit 3ebbf0f409)
(cherry picked from commit 646cccede7)
2024-02-09 16:13:14 -08:00
Sam Lantinga
6a83588fdd Redefine XINPUT_CAPABILITIES_EX as an SDL typedef
mingw-w64 has added this from Proton (which added this from SDL), so we need to re-define it as a local symbol to avoid conflicting with mingw-w64 headers.

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

(cherry picked from commit b7c61569f8)
(cherry picked from commit 93d7b6e50c)
2024-02-09 01:28:48 -08:00
Sam Lantinga
0092b3629e Added VIDPID for OpenFFBoard wheel (thanks @groybe!)
Closes https://github.com/libsdl-org/SDL/pull/7987

(cherry picked from commit 26e947f8ea)
(cherry picked from commit 40b61b81f1)
2024-02-07 16:36:02 -08:00
pastdue
c0eedcd4ce Emscripten_SetWindowFullscreen: Fix crash due to uninitialized EmscriptenFullscreenStrategy members
(cherry picked from commit 7b74e2eeb8)
(cherry picked from commit d2a3347c19)
2024-02-06 16:27:36 -08:00
meyraud705
d1b6d5f33d Fix memory leak in SDL_UpdateSteamVirtualGamepadInfo()
(cherry picked from commit 82d89ff4fb)
(cherry picked from commit a09b0b05eb)
2024-02-06 01:56:41 -08:00
Wohlstand
fe297fc6d8 SDL_windowsopengl.c: WGL: Fixed null-pointer dereference crash
Fixes #8968

Fixed crash after 594a79c2f9

(cherry picked from commit a29f37c14a)
2024-02-03 06:19:26 -08:00
Wohlstand
384fcea585 SDL_audiotypecvt.c: Fixed memory corruption when resampling S16 t F32
(cherry picked from commit ca01016577)
2024-02-03 06:14:37 -08:00
Joshua Root
2f2b44a1bd Fix SDL_mfijoystick build issues
Add missing guards around use of physicalInputProfile.

Add explicit import of Foundation which seems to be needed on some
systems to get the NSArray definition.

Add __unsafe_unretained to ObjC types in struct so the compiler doesn't
complain about that not being allowed with ARC.

Closes: #8979
(cherry picked from commit e0158f68e4)
(cherry picked from commit c53c351921)
2024-02-02 22:25:49 -08:00
Sam Lantinga
8386daddcb vulkan_metal.h: Make compatible with ObjC ARC (thanks @jmroot!)
(re)Fixes #6598

We need to remember to apply this again once we update from upstream headers.

(cherry picked from commit e67e0c5d55)
(cherry picked from commit fc787a41dc)
2024-02-02 18:31:27 -08:00
Simon McVittie
739a23e506 testautomation_math: Fix misleading log output
These originally checked for expected ± EPSILON as logged, but since
commit 880c6939 they check for expected ± max_err, where max_err may
need to be greater than EPSILON for very large expected results like
the ones in exp_regularCases().

Also, EPSILON is so small that the default precision of the %f format
(6 decimal places) would never actually have shown its effect, so log
it in scientific notation instead.

Fixes: 880c6939 "testautomation_math: do relative comparison + more precise correct trigonometric values"
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 58907d2c27)
2024-02-02 07:45:57 -08:00
Simon McVittie
5a59155a05 test: Don't accept results that are much less than expected
While looking at the other tests in this file, I noticed that instead
of checking for a result in the range of expected ± FLT_EPSILON as I
would have expected, these tests would accept any result strictly less
than expected + FLT_EPSILON, for example a wrong result that is very
large and negative. This is presumably not what was intended, so add
the SDL_fabs() that I assume was meant to be here.

Fixes: 474c8d00 "testautomation: don't do float equality tests"
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit a7bd18c0d5)
2024-02-02 07:45:57 -08:00
Simon McVittie
1ad917e2f6 testautomation: Don't expect exp to yield exact floating point results
In the Steam Runtime 1 'scout' environment, when compiling for i386
using the default gcc-4.6, Exp(34.125) matches the desired value to the
precision shown in the log (6 decimal places) but is not an exact match
for the desired value.

Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit f73abd49c3)
2024-02-02 07:45:57 -08:00
Sam Lantinga
859844eae3 Updated to version 2.30.0 for release release-2.30.0 2024-02-01 16:02:20 -08:00
Sam Lantinga
857b9848d2 Don't use the system iconv on Apple mobile platforms
Fixes https://github.com/libsdl-org/SDL/issues/8964

(cherry picked from commit d6a48e4958)
(cherry picked from commit 8eed915dfa)
2024-02-01 15:55:20 -08:00
Sam Lantinga
5f98fcf00b Use the exact motion associated with the warp
When Windows DPI scaling is enabled, the warp coordinates will be modified, so make sure we send exactly the coordinates that the warp attempted.

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

(cherry picked from commit 8ce6fb2513)
2024-01-30 11:13:44 -08:00