Commit Graph

7545 Commits

Author SHA1 Message Date
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
Sam Lantinga
cd8ea5e3f1 Only use the default gamepad mapping if an automatic mapping isn't available
Fixes https://github.com/libsdl-org/SDL/issues/10162

(cherry picked from commit 0f8054cf87)
2024-07-03 11:47:20 -07:00
Sam Lantinga
0d9e54237c Respect SDL_HINT_RENDER_DRIVER when creating an accelerated window surface
Fixes https://github.com/libsdl-org/SDL/issues/10061

(cherry picked from commit 2a58e7b11c)
2024-06-29 11:13:01 -07:00
Sam Lantinga
a3f0c373d3 Clean up any renderer in SDL_DestroyWindowSurface()
Also added an automated test to verify window surface functionality.

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

(cherry picked from commit a522bfe3f1)
2024-06-29 11:04:15 -07:00
1F616EMO
3bf2b90da0 Remove the inconsistent and lag-causing usleep call in SDL_fcitx.c 2024-06-29 00:08:08 -07:00
Ryan C. Gordon
3e4bb5acd0 x11: Fix build when X_HAVE_UTF8_STRING is not defined.
Fixes #10094.
2024-06-27 01:53:39 -04:00
Ryan C. Gordon
498cbffd89 atomic: Solaris needs the _nv variant of atomic_or_uint.
(This means "new value" and returns the atomically updated value. Before, we
were returning a value from a void function.)
2024-06-27 01:43:25 -04:00
Sam Lantinga
ee3b2b7de1 Make sure we don't try to use the XInput DLL after it's unloaded
Steam ran into a crash SDL_XINPUT_JoystickDetect() with XINPUTGETCAPABILITIES being NULL. I'm not sure how that happened, and there may still be a race condition if this is a multi-threaded issue, but at least this is more correct.

(cherry picked from commit 0ae4fd0ec9)
2024-06-26 15:55:31 -07:00
Sam Lantinga
88bbab275f Fixed building with older libdrm headers
(cherry picked from commit 8949de3978)
2024-06-26 15:55:08 -07:00
Sam Lantinga
ecde0ca6b6 Fixed building with the steamrt/scout SDK
(cherry picked from commit 4b82bed259)
2024-06-26 15:54:53 -07:00
Sam Lantinga
64d4baccb5 Fix building with the steamrt/scout SDK
(cherry picked from commit b552f26e6a)
2024-06-26 15:54:20 -07:00
Francisco Javier Trujillo Mata
10c14e78b6 Fixing systimer 2024-06-26 15:28:16 -07:00
Francisco Javier Trujillo Mata
4d82ceae0c Add slash to cwd call 2024-06-26 14:55:30 -07:00
Frank Praznik
20f1061cc8 video: Fix memory leak when deleting a video display
The display deletion code would not free the driver data or name if the display index was the last, or only one, in the list.
2024-06-26 12:19:14 -04:00
Frank Praznik
3b88d4f46f wayland: Fix double free when deleting an output display 2024-06-26 12:19:14 -04:00
Cecill Etheredge
6589287ed6 fix: Use drmModeAddFB2WithModifiers instead of drmModeAddFB to allow using GBM modifiers.
This fixes corrupt framebuffers on platforms that require the use of modifiers.

(cherry picked from commit 620e875335)
2024-06-25 14:21:17 -07:00
Edoardo Lolletti
99d7b9e626 Fix std::thread memory leak
In the stdcpp thread implementation, the allocated std::thread objects were never deleted after joining/detaching

(cherry picked from commit 20dbe90771)
2024-06-24 11:51:21 -07:00
expikr
194d72bb29 Add SDL_MOUSE_RELATIVE_CURSOR_VISIBLE (#7947)
(cherry picked from commit ee559d51be)
2024-06-20 09:28:58 -07:00
Aikawa Yataro
4800edfa0c Update qsort implementation
(cherry picked from commit 0fe9f5da54)
2024-06-19 05:47:55 +03:00
Sam Lantinga
a6fdd155fb Pass through the original name used by the Steam Virtual Gamepad
Proton uses this on Linux to determine what the XInput slot is for the gamepad. Other applications will get the real controller name and VID/PID by virtue of the code in SDL_steam_virtual_gamepad.c

(cherry picked from commit 361cae0874)
2024-06-17 12:14:59 -07:00
rfht
177dfddaf7 simplify OpenBSD D-pad calculation with bitwise operation (#7996)
(cherry picked from commit 4d63c919f9)
2024-06-16 05:56:35 -07:00
Ryan C. Gordon
510f413bb8 coreaudio: simplify memory leak fix.
I _did_ appreciate the explanation, but it doesn't have to live in the
source code; also we can just release `devuid` and then check for error with
the usual macro, since SDL is done with it either way at this point.

(cherry picked from commit 17af09f3a9)
2024-06-15 11:47:27 -04:00
obeecodes
a9da8dd22d Addressed memory leak in SDL_coreaudio.m
(cherry picked from commit 3b5dce10c4)
2024-06-15 08:09:14 -07:00
Ozkan Sezer
a4d240d295 SDL_events.c: remove long long casts an the override of SDL_PRIs64 2024-06-14 18:47:56 +03:00
Ozkan Sezer
9422c57201 revert commit ac25395 as it broke linux.. 2024-06-14 14:56:32 +03:00
Ozkan Sezer
ac253956b9 SDL_events.c: override of SDL_PRIs64 for mingw is no longer needed
(cherry picked from commit 65d911aff0)
2024-06-14 14:51:10 +03:00
Ozkan Sezer
948b926d47 SDL_qsort.c: better match private funcs' compare args to SDL3 version. 2024-06-14 14:50:32 +03:00
Sam Lantinga
169f77ed5e Re-enable full controller reports for Joy-Con controllers
When they are in simple report mode, the thumbstick gets turned into a digital hat, so let's use them in full report mode.

(cherry picked from commit bf27269952)
2024-06-13 00:02:00 -07:00
Sam Lantinga
6b9bf71133 Try to guess the type of a Nintendo Switch controller if we can't read the device info
(cherry picked from commit 6619de8f24)
2024-06-13 00:01:40 -07:00
Sam Lantinga
f1b19aa744 Ignore spurious reply packets when reading Nintendo Switch controller reports
(cherry picked from commit 5ee9a840b1)
2024-06-12 23:59:07 -07:00
Ozkan Sezer
ce6d3c5cc1 SDL_qsort.c: change private function compare args to SDL_CompareCallback
fixes watcom os/2 and win32 builds after commit b2b2369414
2024-06-13 04:50:56 +03:00
Ryan C. Gordon
b2b2369414 Moved function pointer params to typedefs, etc, for latest wikiheaders. 2024-06-12 19:29:21 -04:00
Hanicef
1c3090a1ac Fix broken dead key behavior on Wayland
This fixes numerous problems regarding dead keys on Wayland. Most
notably, Wayland was enforcing dead keys on SDL_KEYDOWN and SDL_KEYUP
events, which caused unresponsiveness on keys that were mapped to dead
keys (tilde on US-Intl is most notable for this, commonly used as a
console key).

When starting text input, not all state was reset properly. The text
input protocol requires to be re-enabled every time text input changes,
which SDL did not do. Also, XKB compose state was not reset at all,
causing composite and dead keys to carry over from when text input was
disabled.
2024-06-08 11:43:20 -04:00
Sam Lantinga
7fce9f3fd0 Minor cleanup for SDL style 2024-06-07 09:26:55 -07:00