Commit Graph

13694 Commits

Author SHA1 Message Date
Nick Waanders
4c69fd050c Metal: Fix for required rebinding when switching pipelines 2026-07-30 18:48:09 -04:00
Anonymous Maarten
5924f36dc6 Make gameinput.cpp c++98-compatible 2026-07-30 20:19:17 +02:00
Anonymous Maarten
b048e8e6f8 windows: vendor GameInput headers 2026-07-30 20:19:17 +02:00
Frank Praznik
331e10c2a3 wayland: Clear references to the clipboard when setting new data
Ensure that references to the clipboard being held by other seats are cleared when new data is being set, or some seats may hold references to invalid data and callbacks.
2026-07-30 12:18:25 -04:00
Frank Praznik
dfcbd16b4c wayland: Don't send nil selections when changing clipboard data
Sending a nil selection followed by immediately destroying the selection offer is redundant, and avoiding intermediate nil offers helps some clipboard managers avoid potential race conditions.
2026-07-30 12:18:25 -04:00
Frank Praznik
db673016fd wayland: Format clipboard code style
Use camel case for non-callback function names to match the coding style of the rest of the backend, and don't enforce a hard 80 column limit.
2026-07-30 12:18:25 -04:00
Frank Praznik
33a1b566e0 wayland: Cleanup clipboard code
The clipboard code often had excessive and unnecessary error checking (e.g. checking if the video backed was initialized, when there is no way that path would be hit if it wasn't), overly complicated some operations, and had several cases where things can be C99-ified. Clean things up a bit to make it easier to read and debug.
2026-07-30 12:18:25 -04:00
Frank Praznik
63bf4c1c79 x11: Register the input context destroyed callback
Register the destroyed callback to handle cases where the IC is suddenly no longer valid (e.g. if ibus or fcitx dies).
2026-07-28 15:46:54 -04:00
Sam Lantinga
1457503bd2 Check for the sRGB color primaries rather than the transfer function 2026-07-28 12:29:42 -07:00
Rachel Blackman
412a7c5db6 Use the modern OnBackInvokedCallback method to trap the back button on newer Android devices (#16052) 2026-07-27 15:43:23 -07:00
Sam Lantinga
f4337eded2 Use the render passes we just created when creating a Vulkan render target 2026-07-27 10:56:49 -07:00
Sam Lantinga
db84871fdf Allow writing to planar YUV textures from application code in the Vulkan renderer 2026-07-27 10:56:49 -07:00
svncibrahim
eba97448ae wayland: Fix maximized check when setting the window size
The logical || made the flag mask evaluate to 1, so only fullscreen was checked and maximized windows were treated as resizable.
2026-07-26 09:50:48 -04:00
Sam Lantinga
855cbec702 Set VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT for planar formats
This allows creating separate image views for the planes of the image if desired.
2026-07-24 16:22:28 -07:00
Nintorch
223490b024 Fix GameInput QueryDeviceName memory leaks 2026-07-24 13:12:13 -07:00
Tim Stahlhut
40fb1b6ccc Cygwin: Fix SDL_GetPlatform
[sdl-ci-filter cygwin]
2026-07-23 18:29:25 -07:00
Sam Lantinga
0f5f708c5a Better check to see whether HDR10 input will have scaling applied 2026-07-23 12:55:14 -07:00
Sam Lantinga
303113b853 Sorted controller mappings
Also fixed line endings for Retro Fighters D6 mappings
2026-07-23 11:38:24 -07:00
Alynne
091261b3bd Add Retro Fighters D6 mappings (#16048) 2026-07-23 11:35:15 -07:00
Sam Lantinga
326694de32 Get the correct HDR values under Gamescope
This also switches log messages in SDL_x11modes.c to use SDL_Log()
2026-07-23 10:32:03 -07:00
Sam Lantinga
604fe14b87 Make sure the PQ shader will output the input value before using the simple shader
Note that we don't account for vertex color here. If HDR10 content needs to be tinted by vertex color, it can't use the simple shader. I'm assuming that the use case for this will be video content which generally won't use vertex color and this optimization is fine.
2026-07-23 10:25:25 -07:00
Sam Lantinga
148241117b Define SCRGB_NITS for use in HDR color calculations 2026-07-23 10:25:25 -07:00
Alynne
b9d64c45a9 Support for Retro Fighters Defender Pro (#16045) 2026-07-23 10:16:51 -07:00
Sam Lantinga
2a623fd224 wayland: set the SDR_white_level for HDR capable displays 2026-07-22 15:24:48 -07:00
Sam Lantinga
23b641070c Added HDR10 display support for the direct3d11, direct3d12, and vulkan renderers 2026-07-22 11:36:32 -07:00
Frank Praznik
cc2713c047 wayland: Don't clear the clipboard when a nil selection is ignored
If the previous selection offering was recursive, a nil selection should be ignored, or clearing the clipboard may clear the backing memory of the client's selection offering as well.
2026-07-22 12:09:18 -04:00
Sam Lantinga
ae2301e7a5 Added SDR white point for X11 on Steam Deck
Also disabled HDR on X11 for other devices for now, we don't know that they'll be able to display it properly.
2026-07-21 20:24:26 -07:00
Sam Lantinga
75e280618e edid-parse: print the HDR luminance information 2026-07-21 20:24:26 -07:00
Sam Lantinga
c70f111295 Corrected the name of the Razer Raiju V3 Pro controller
Fixes https://github.com/libsdl-org/SDL/issues/16028
2026-07-21 07:47:28 -07:00
Esme Povirk
3fc8509b36 Fix build on arm64ec. 2026-07-21 07:44:17 -07:00
Frank Praznik
ee1c942a92 mouse: Handle explicit warp events
The warp event in Wayland can occur without explicitly warping the mouse, such as if a window changes position under the cursor while the cursor is stationary. Introduce the internal SDL_SendMouseWarp() function to handle updating the absolute cursor position without generating relative motion for these cases.
2026-07-21 09:59:14 -04:00
Frank Praznik
73010447c3 wayland: Add support for the pointer warp event 2026-07-21 09:59:14 -04:00
Sam Lantinga
d98661ff7f Decode the monitor EDID to get HDR metadata on X11 2026-07-20 12:25:17 -07:00
Nintorch
f675aeddeb Use HIDAPI to provide better names for GameInput controllers 2026-07-20 12:18:57 -07:00
Hadrian Tang
a8591d943b Fix #15985 2026-07-19 20:06:04 -07:00
Ryan C. Gordon
5ff9c119fc audio: Fixed linked list when logical devs move to a new default physical dev. 2026-07-19 21:49:31 -04:00
Hadrian Tang
8319d69f72 Clear SDL_PROP_WINDOW_ANDROID_WINDOW_POINTER when ANativeWindow is freed (#16024) 2026-07-18 14:59:22 -07:00
Frank Praznik
f52f31ef5a notification: Fix Win32 delegate structs
Cast from the generic implementation, which has space for the refcount.
2026-07-18 17:46:02 -04:00
Frank Praznik
a0bffd4a92 notification: Use interface availability to check for Windows version suitability
Explicit version checks require application manifests on Win10, or an older version will be reported. Check for the toast notification history interface, which is only available on Win10+, and use that to determine if the Windows version is high enough to support notifications.
2026-07-18 17:46:02 -04:00
Anonymous Maarten
5133849627 IsEqualGUID uses memcmp behind the scenes, thwarting a NOLIBC build 2026-07-18 02:40:33 +02:00
meta-legend
ac9ef17bcc Avoid RLE for software render alpha subrect copies (#15982) 2026-07-17 15:09:42 -07:00
Vlad Zahorodnii
6eba2f2efe wayland: Add support for wl_fixes.ack_global_remove
The wl_fixes.ack_global_remove request signals the compositor that the
client will not bind the removed global. It can be used by the
compositor to decide when it is safe to actually destroy the
corresponding global. If a global is destroyed too soon, some clients may
get disconnected.

See also https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/533
2026-07-16 12:30:58 -04:00
Frank Praznik
e442a9a5e1 x11: Don't block when withdrawing unmapped windows
Some window managers will mark minimized or offscreen windows as unmapped. When hiding a window, unconditionally call XWithdrawWindow, and don't wait for an UnmapNotify event if the window is already in the unmapped state, or it will block indefinitely waiting for an event that never arrives.
2026-07-15 12:05:00 -04:00
rewine
edafd519b9 wayland: bind xdg-decoration-manager-v1 at protocol version 2
v2 removes v1's strict ordering requirement (decoration object must be created and configured before any buffer is attached), allowing xdg_toplevel_decoration to be created even after a buffer has already been attached/committed
2026-07-15 10:35:17 -04:00
Frank Praznik
1a9801a16f cocoa: Clear state on failure to enter fullscreen
A fullscreen exit event doesn't always accompany an entry error, so ensure that all relevant state is cleared if the window fails to enter fullscreen.
2026-07-15 10:32:51 -04:00
Sam Lantinga
2d7f300783 Don't accidentally switch the Horipad Mini into Switch report mode
The PS3 probing switches the HORI Horipad Mini into Nintendo Switch report mode, which we don't recognize since it's still using the Xbox 360 endpoint.
2026-07-14 15:24:49 -07:00
Sam Clegg
31bd4ff77a [emscripten] Remove support for legacy webkitGetUserMedia
This modern navigator.mediaDevices.getUserMedia has been
available since Chrome 53 / Firefox 38 / Safari 11.

See https://github.com/emscripten-core/emscripten/pull/27347
2026-07-14 12:31:15 -07:00
Frank Praznik
8586f63d2a wayland: Refine window raising for new windows
Generate activation tokens for new windows when necessary, and check the hint for activating windows when shown. This will allow new windows to correctly take focus in environments with elevated focus stealing prevention when possible, and it will try to prevent new windows from being activated if the hint is set to false.
2026-07-14 13:33:57 -04:00
Hans-Kristian Arntzen
52ec5120a0 [Video/KMSDRM]: Prefer largest compatible refresh rate by default. 2026-07-14 10:25:28 -07:00
Ryan C. Gordon
758dab45af properties: Fixed a typo in a comment.
(cherry picked from commit 5b5713b955)
2026-07-13 18:39:23 -04:00