Commit Graph

13061 Commits

Author SHA1 Message Date
Ryan C. Gordon
c728e2f044 emscripten: Move some EM_ASM blocks to MAIN_THREAD_EM_ASM.
These blocks reference the `navigator` global, which is not available in
background threads.
2026-02-20 10:27:44 -05:00
Jesse Chounard
a79bd26d28 Fix D3D12 DSV creation for array/cube/cube-array depth textures
DSV creation was missing a TEXTURE2DARRAY branch for array, cube, and
cube-array depth textures. It fell through to TEXTURE2D, so
FirstArraySlice was never set and all layers' DSVs targeted layer 0.
This caused incorrect rendering when using depth textures with multiple
layers, such as cubemap shadow maps.
2026-02-20 10:23:47 -05:00
Ryan C. Gordon
3aa531000a n3ds: SDL_SYS_GetPreferredLocales now handles error cases correctly.
Previously it would have reported success but not returned a valid string, and
didn't check for the (probably extremely unlikely) case of overflowing our
locale list array.
2026-02-20 10:14:05 -05:00
Frank Praznik
be82f316c4 video: Check video backend initialization when querying the grabbed window
SDL_GetGrabbedWindow() can be called when the video system is uninitialized, and, since there is no window parameter, _this must be checked for validity to avoid a segfault.
2026-02-19 11:22:03 -05:00
Ryan C. Gordon
28e4269915 include: Added \threadsafety notes to about 60 more functions.
Reference Issue #7140.
2026-02-18 19:49:59 -05:00
Ryan C. Gordon
a3b0403412 filesystem: Fix SDL_GlobDirectory on iOS and Android.
It SDL_SYS_EnumerateDirectory was changing the path string and passing it to
the callback, causing chaos in the glob handler, which expected the original
string to pass through.

Fixes #15057.
2026-02-17 19:41:20 -05:00
Ryan C. Gordon
c9591c515c emscripten: Fix only one mouse button being usable at a time.
Fixes #15056.
2026-02-17 19:00:36 -05:00
Ryan C. Gordon
c043adaeb2 Reapply "MacOS: improve scroll smoothing"
This reverts commit 63c0650321.

This reverts a revert; leaving this in main, where we'll examine it in 3.6.0.

This remains reverted in release-3.4.x

Reference Issue #15058.
2026-02-17 18:51:53 -05:00
Ryan C. Gordon
0f2d415dee emscripten: Allow resize events on fullscreen windows.
Fixes browsers on phone that change screen orientation during fullscreen not
getting a resize event.

Fixes #15024.
2026-02-17 18:40:24 -05:00
William Horvath
06bf8d1924 gpu_vulkan: Set texture container before transitioning to default barrier state.
Avoids a null dereference of currentRegion->vulkanTexture->container in DefragmentMemory:

} else if (!currentRegion->isBuffer && !currentRegion->vulkanTexture->markedForDestroy) {
...
&currentRegion->vulkanTexture->container->header.info
... (among others)

by not "VULKAN_Submit"ting (and thus adding it to the defrag pool) before setting the container.

Although rare (defrag almost never ran), this crash happened in a real-world application.
2026-02-17 14:12:44 -08:00
Sam Lantinga
129627068f Fixed HIDAPI PS5 Bluetooth report format 2026-02-17 08:57:06 -08:00
Ryan C. Gordon
63c0650321 Revert "MacOS: improve scroll smoothing"
This reverts commit 5dab2c73f0.

We'll revisit this in the next SDL release.

Reference Issue #15058.
2026-02-17 10:23:57 -05:00
Cameron Gutman
f0bda7b655 android: Fix scancode for AKEYCODE_CHANNEL_DOWN 2026-02-17 00:18:48 -06:00
Zack Middleton
54de246b4b win32: Set error for SDL_GL_GetSwapInterval() 2026-02-16 22:03:20 -05:00
Sam Lantinga
089f5e1318 Treat the D-pad center button as SDL_SCANCODE_RETURN
This fixes handling of the Android TV remote select button sent over CEC.
2026-02-16 12:34:54 -08:00
Sam Lantinga
bc623d1af6 Moved mouse/keyboard detection to a separate thread on Windows
Getting device names can hang for a long time on certain devices, so make sure this is done on a separate thread to avoid blocking initialization and the main loop.

Fixes https://github.com/libsdl-org/SDL/issues/12913
2026-02-16 11:23:14 -08:00
Sam Lantinga
a98e49409e Don't re-query HID device vendor and product 2026-02-16 11:23:14 -08:00
Cameron Gutman
8535936401 win32: Fix composition UI being displayed when IME is disabled 2026-02-16 09:00:33 -08:00
Ethan Lee
ad60fa07d7 gpu: Add LogWarn to Vulkan OpenXR load failure, to match D3D12 2026-02-16 11:46:25 -05:00
NateXS
149abe8f85 n3ds: Don't put audio thread in system core on Old 3DS systems 2026-02-16 08:44:17 -08:00
DominusExult
225fb12ae1 Hide deprecation message for controllerPausedHandler (which is still needed for backwards compatibility) 2026-02-15 10:57:07 -08:00
DominusExult
0270da4d1f Use AV capture methods available since iOS 7 2026-02-15 10:57:07 -08:00
DominusExult
016a1b87a6 Hide deprecation warnings on statusBarOrientation, statusBarHidden, statusBarStyle 2026-02-15 10:57:07 -08:00
Gokul Mittal
8d2b6c09c5 undefine ADD_TRIANGLE macro definition
ADD_TRIANGLE macro function in SDL_RenderLines() was never being undefined even after it's purpose was resolved.
2026-02-15 08:37:46 -08:00
Ryan C. Gordon
10b524c7cc hints: Rename SDL_HINT_OPENGL_FORCE_SRGB_CAPABLE.
It's now SDL_HINT_OPENGL_FORCE_SRGB_FRAMEBUFFER, since it does more than mess
with the srgb-capable context attribute now.

Reference Issue #14898.
2026-02-14 16:33:21 -05:00
Ryan C. Gordon
fc570a1a1c render: opengl and opengles2 renderers try to disable GL_FRAMEBUFFER_SRGB.
Reference Issue #14898.
2026-02-14 16:33:21 -05:00
Ryan C. Gordon
ead67481c0 video: Only set GL_FRAMEBUFFER_SRGB state if the hint requests it.
Reference Issue #14898.
2026-02-14 16:33:21 -05:00
Sam Lantinga
c381b2bdfa Use 20 ms as the default audio buffer size on Android
It turns out that Android will not pick a low latency buffer size by default.
2026-02-13 14:34:31 -08:00
Sam Lantinga
ab50f30bb1 Added code to detect memory overwrites on Windows
Define WIN32_DETECT_OVERWRITE while building to enable this functionality.
2026-02-13 13:53:25 -08:00
Rachel Blackman
46e553a44c Add support for new Steam Controller on Android (#15044) 2026-02-12 17:39:15 -08:00
Sam Lantinga
f1dd6db701 Removed unnecessary log message 2026-02-12 16:41:07 -08:00
Sam Lantinga
79f5f674bd Use the correct report format for BLE Steam Controller reports 2026-02-12 16:02:21 -08:00
Sam Lantinga
7b27056ea0 Fixed Steam Controller BLE report size 2026-02-12 15:52:31 -08:00
Sam Lantinga
9b7f55be89 Make sure we report ID_TRITON_CONTROLLER_STATE_BLE on iOS 2026-02-12 15:49:49 -08:00
Sam Lantinga
0b1c592fda Steam Controller report 0x45 is used for BLE mode 2026-02-12 15:45:10 -08:00
Sam Lantinga
84c21cf970 Updated Steam Controller packet handling 2026-02-12 14:34:20 -08:00
Sam Lantinga
4e2fd57e77 Fixed initializing the PowerA OPS v1 Wireless Controller 2026-02-11 16:54:18 -08:00
Sam Lantinga
2b484a1ccb Fixed initializing the PowerA Fusion Pro 4 on Steam Link hardware 2026-02-11 16:54:18 -08:00
Ryan C. Gordon
ac3afa1f38 audio: Moved a variable into nested scope where it's actually used. 2026-02-11 14:54:49 -05:00
Sam Lantinga
eaeca340f3 Fixed HIDAPI hotplug detection in applications that don't initialize video 2026-02-11 09:11:37 -08:00
Sam Lantinga
d3f9899df5 Fixed HIDAPI hotplug detection when initializing gamepads off the main thread 2026-02-11 09:03:30 -08:00
chenzw
85c297a28b Added IMU support for GameSir controllers with optimized sampling rate and timestamp synchronization. 2026-02-10 21:06:40 -08:00
walle
6f1aa78e04 fixed trigger axes formula: data * 257 - 32768 (same as PS4) 2026-02-10 21:06:40 -08:00
walle
226057601f fixed Clamp -(-32768) to 32767 to avoid Sint16 overflow wrapping back to -32768 2026-02-10 21:06:40 -08:00
chenzw
304fcaeec2 SendGameSirModeSwitch code cleanup 2026-02-10 21:06:40 -08:00
chenzw
6ae268ba17 Remove GameSir-G7 Pro 2026-02-10 21:06:40 -08:00
Sam Lantinga
71f4af7322 Eliminate contention between HIDAPI controller reads and writes
Rumble can often take a long time, and it is theoretically safe to simultaneously read and write hidapi devices on all platforms.

Fixes https://github.com/libsdl-org/SDL/issues/9441
2026-02-10 09:38:19 -08:00
Ryan C. Gordon
31404a9dcb wasapi: Patched to compile. 2026-02-10 11:21:04 -05:00
Ryan C. Gordon
c223c5494d wasapi: stop infinite loop in audio thread when recording device is unplugged.
(cherry picked from commit a806a9092b)
2026-02-10 09:25:40 -05:00
Ryan C. Gordon
267e681a0b emscripten: drag-and-drop fixes.
FS.mkdir() will throw a javascript exception if the scratch directory already
exists, so catch/ignore that.

Wrap the rest of the scratch i/o in a try/catch block; the event will only
send if everything works out.

Wrap some calls from Javascript to the C runtime's free() in an
EMSCRIPTEN_KEEPALIVE function, so that the compiler doesn't optimize the
function out and crash at runtime.

Fixes #14999.
2026-02-09 21:39:02 -05:00