Commit Graph

7428 Commits

Author SHA1 Message Date
ds-sloth
2824d138b9 SDL_rwops.c: stdio_seek - skip API call for RW_SEEK_CUR with 0 offset
Reference Issue #10556.
2024-08-16 17:12:34 -04:00
Frank Praznik
8fcbf972c6 wayland: Send fake warp coordinates when emulating warps with relative mode
Send the fake warp coordinates when emulating warps with relative mode to ensure that it appears that the cursor is always reset to where the application expects it to be.

Fixes cases where games can continue moving the camera if the mouse is lifted during motion.
2024-08-16 11:24:13 -04:00
Frank Praznik
5b57573439 x11: Track cursor visibility internally
Cursor visibility in the SDL input layer only reflects whether ShowCursor/HideCursor was called. In the case of relative mode, the cursor can be hidden, but the SDL_Mouse visibility flag will be true.

Track cursor visibility separately in the X11 driver. Fixes the cursor becoming visible when using the warping relative mode with XWayland.

(cherry picked from commit b0713a7d30)
2024-08-16 10:34:36 -04:00
Sam Lantinga
b360214950 Use drmModeAddFB() if drmModeAddFB2WithModifiers() fails
Fixes https://github.com/libsdl-org/SDL/issues/10276

(cherry picked from commit 8e99ec34bb)
2024-08-15 11:53:02 -07:00
Wohlstand
dd6c663918 SDL_vitatouch.c: Fixed the incorrect touch device IDs
- Begining of device ID with 0 violates the SDL's specification that means the 0 is an error, invalid, failure, etc. But on Vita here it's an actual device...
- Replacing 0 and 1 with 1 and 2 to resolve this violation.
2024-08-14 08:32:02 -07:00
Anonymous Maarten
248cb3ca9c Fix -Wdeclaration-after-statement warnings 2024-08-14 10:35:43 +00:00
Sam Lantinga
70890b175e Fixed build 2024-08-13 07:39:43 -07:00
Ilya Mizus
586a2dc721 Fixed secondary screens on KMSDRM (#10535)
* Removed window movement to left top corner that breaks secondary screens on KMSDRM

(cherry picked from commit ce98550cbb)
2024-08-13 07:20:07 -07:00
KaJe
5ecbc00f36 Add Cammus C12 VID & PID to wheel device list.
Add Cammus C12 in the SDL wheel list to enable wheel detection for them.

(cherry picked from commit e1571d704d)
2024-08-09 06:48:49 -07:00
Sam Lantinga
a5bff78d81 kmsdrm: free the connector when looking for available devices
Fixes https://github.com/libsdl-org/SDL/issues/10499

(cherry picked from commit 1a57ea7fba)
2024-08-08 09:29:38 -07:00
Sam Lantinga
5ca0639a42 Fixed crash when the current mouse capture window is destroyed
Fixes https://github.com/libsdl-org/SDL/issues/10494

(cherry picked from commit 91d97a367e)
2024-08-07 12:28:53 -07:00
hsnovel
81252eb06d add failsafe for querying cache line size on linux 2024-08-06 09:51:00 -07:00
Sam Lantinga
1512013320 Added detail about why a file couldn't be opened (thanks mgerhardy!)
Fixes https://github.com/libsdl-org/SDL/issues/10484
2024-08-06 05:45:48 -07:00
Sam Lantinga
2efbe7fa3f Implemented left-justification in SDL_PrintString()
Fixes https://github.com/libsdl-org/SDL/issues/10310

(cherry picked from commit f59d66f4b1)
2024-08-04 20:05:41 -07:00
Sam Lantinga
230f1debd0 Fixed macOS build 2024-08-01 14:11:06 -07:00
Sam Lantinga
0b6eff4167 Fixed building on macOS with OpenGL disabled
Fixes https://github.com/libsdl-org/SDL/issues/6226
2024-08-01 13:57:26 -07:00
Sam Lantinga
7fdf794377 Fixed crash with joystick rumble after disconnection
This prevents continuing a rumble after the first one fails, and fixes a long standing crash issue if rumble is started immediately before the controller is disconnected.

Thanks to @AntTheAlchemist for the key bug report that showed what was happening here.

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

(cherry picked from commit 0a924b185d)
2024-07-29 13:50:55 -07:00
Sam Lantinga
15c73f5bfe Fixed whitespace
(cherry picked from commit 67b973b5fa)
2024-07-29 12:52:40 -07:00
Ryan C. Gordon
0ba3d9862d SDL_RWFromFile: On Apple platforms, offer a hint to not look in resource dirs.
Fixes #8403.
2024-07-29 15:45:03 -04:00
Ozkan Sezer
2cb2897e50 SDL_mslibc.c: revert PR/10303 changes 2024-07-28 22:47:51 +03:00
Frank Praznik
5d1ca1c8c7 wayland: Don't fail to retrieve a system cursor if no window is focused
Doing this can leave the cursor data in a weird, corrupt state.

(cherry picked from commit 5617ce277d)
2024-07-27 20:30:52 -04:00
Charlie Birks
6e931bee01 emscripten: restore key event prevent default behaviour
This restores the behaviour before 9221548114 where we only preventDefault the event if:
- the key is recognised
- the event is enabled
- the event is not filtered

(ignoring the KEYPRESS special case, which is unchanged)
2024-07-19 09:39:00 -07:00
Anonymous Maarten
11c0dfbdfe Fix UWP build in non-UNICODE mode 2024-07-19 10:20:11 +00:00
vanfanel
5ab1151508 Fix KMSDRM double buffering. 2024-07-18 14:35:00 -07:00
vanfanel
9e6b8d56e3 Add SDL_VIDEO_DOUBLE_BUFFER support to the Wayland backend. 2024-07-17 16:36:04 -04:00
Amir
ccade50587 Fix warning for Android NDK compiler: "function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]"
https://stackoverflow.com/questions/42125/warning-error-function-declaration-isnt-a-prototype
In C int foo() and int foo(void) are different functions. int foo() accepts an arbitrary number of arguments, while int foo(void) accepts 0 arguments. In C++ they mean the same thing.
2024-07-17 10:51:30 -07:00
Anonymous Maarten
2eeb39298e pthread: timespec.tv_nsec must be less then 1000000000 ns 2024-07-14 17:29:07 +02:00
ceski
3b7eafedb3 Add a Windows mapping for SplitFish Game Controller
(cherry picked from commit 68cf17d0d4)
2024-07-12 22:04:29 -07:00
Sam Lantinga
b057159db7 Make sure SDL subsystems are initialized before starting threads 2024-07-12 09:09:57 -07:00
Sam Lantinga
b378bc5c83 Make sure timers are initialized before any threads start
This prevents race conditions and divide by zero if multiple threads start using the time functions simultaneously.
2024-07-12 08:00:04 -07:00
Sam Lantinga
b13dcf24d6 Fixed OS/2 build 2024-07-11 13:55:24 -07:00
Sam Lantinga
551164812a Added TLS initialization and shutdown functions
Fixes https://github.com/libsdl-org/SDL/issues/8576

(cherry picked from commit b517043936)
2024-07-11 13:10:15 -07:00
Ryan C. Gordon
663411ff77 haiku: Don't change the cwd on startup if launched from a Terminal.
This patch was written by @pulkomandy. Thanks!

Reference Issue #7596.
2024-07-11 11:42:21 -04:00
Substring
a2215ff81c KMSDRM: fix unsupported modifiers
(cherry picked from commit 9548bba63a)
2024-07-10 14:42:32 -07:00
Ahmed Essam
b80f6ec05c emscripten: don't consume key down/up events if the user disabled them 2024-07-10 09:29:43 -07:00
Sam Lantinga
3899cb1696 Revert "Fixed build"
This reverts commit 026dfc6305.

Fixed build again!
2024-07-08 14:46:15 -07:00
Sam Lantinga
026dfc6305 Fixed build 2024-07-08 11:39:08 -07:00
Sam Lantinga
e22c89536a Make sure we're actually running on Windows before using D3D renderers 2024-07-08 11:28:29 -07:00
Frank Praznik
849c905d8c wayland: Always create a viewport for the window if available
Viewports decouple the buffer from the window size and avoids the window geometry hacks used to prevent problems if a buffer with an old size in the pipeline ends up being committed.

Fixes an invalid geometry warning and incorrect overview size for fullscreen windows on GNOME, and avoids flicker when entering/exiting fullscreen or moving the window between scaled and non-scaled displays.
2024-07-08 11:54:10 -04:00
mariob92
58e179c8b5 wgl/glx: Fix attribute list for SDL_GL_FLOATBUFFERS
This commit fixes the attribute list in the WGL and GLX code when requesting a floating point pixel format. The name of the attribute was missing in the list.

Fixes libsdl-org#10189

(cherry picked from commit 9389712917)
2024-07-06 11:56:38 -07:00
Sam Lantinga
4c44450258 Improved detection of Nintendo Switch Pro controller report mode
Fixes https://github.com/libsdl-org/SDL/issues/10182

(cherry picked from commit 4ba2e9f4f4)
2024-07-06 05:30:08 -07:00
Ozkan Sezer
6a10309568 SDL_hidapi.c: work-around watcom build error when libusb is enabled 2024-07-05 18:56:10 +03:00
Max Maisel
22770e6496 Drain HIDAPI buffer in SDL_hidapi_steamdeck.c.
Add a loop around SDL_hid_read() in the Steam Deck HIDAPI driver as it
is done in other HIDAPI drivers. This loop reads data from the device and
processes it until the input buffer is empty which ensures that clients
always get the latest data.

This fixes an input latency issue if the application polls the events
slower than the hardware generates them.
2024-07-05 08:27:09 -07:00
Sam Lantinga
a4cbba1276 Try to create an accelerated renderer for the window surface even if SDL_HINT_RENDER_DRIVER is "software"
This case is properly handled inside SDL_CreateWindowTexture()

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

(cherry picked from commit c7ed78a9ef)
2024-07-05 08:23:17 -07:00
Ryan C. Gordon
b47deb58a2 vitagxm: Patched to compile. 2024-07-04 20:37:46 -04:00
Ryan C. Gordon
2c32fd254c Revert "render: Set renderer->window to NULL in SDL_DestroyRendererWithoutFreeing."
This reverts commit 9f8dffbd2d.

This causes some tests to fail, and wasn't otherwise a necessary change, so
I'm backing it out.

(Looks like some sort of interaction with software renderers and their
surfaces not getting destroyed...?)

(cherry picked from commit f9a06c20ed)
2024-07-04 19:47:39 -04:00
Ryan C. Gordon
5f0f337d33 vitagxm: Patched to compile. 2024-07-04 18:48:21 -04:00
Ryan C. Gordon
1413d67748 render: SDL_DestroyWindow hollows out its renderer but doesn't free it.
This allows apps to destroy the window and renderer in either order, but
makes sure that the renderer can properly clean up its resources while OpenGL
contexts and libraries are still loaded, etc.

If the window is destroyed first, the renderer is (mostly) destroyed but its
pointer remains valid. Attempts to use the renderer will return an error,
but it can still be explicitly destroyed, at which time the struct is free'd.

If the renderer is destroyed first, everything works as before, and a new
renderer can still be created on the existing window.

Fixes #10174.

(cherry picked from commit cab3defc18)
2024-07-04 18:46:43 -04:00
Ryan C. Gordon
944dc4701c render: Manage memory for SDL_Renderer* at higher level.
Previously, each backend would allocate and free the renderer struct. Now
the higher level does it, so the backends only manage their private resources.

This removes some boilerplate and avoids some potential accidents.

(Manually cherry-picked from 39c8434f5f)

Reference Issue #10174.
2024-07-04 18:17:20 -04:00
Sam Lantinga
845ebbbe96 Added support for the ROG RAIKIRI
(cherry picked from commit a04596c9a7)
2024-07-03 13:54:31 -07:00