Cameron Gutman
1aa72247af
pen: Only create touch emulation device when a pen is present
2026-04-29 02:01:14 -04:00
Sam Lantinga
e1e6cbe6ec
Disable accidentally enabled debug logging
2026-04-28 17:26:11 -07:00
Ryan C. Gordon
9235ac4efd
android: Parsing the APK's central dir is separate from the AAssetManager.
...
Only parse when necessary, which it isn't when opening a file, so this is now
separated from creating the cached AAssetManager object.
2026-04-28 20:22:40 -04:00
Ryan C. Gordon
40e60452ad
android: Use enough zip64 format info to see APKs with files that are > 4gb.
2026-04-28 20:22:40 -04:00
Ryan C. Gordon
bb4332bdc2
android: Parse the APK directory tree, replace AAssetManager enum/getpathinfo.
...
The AAssetManager won't supply this information to us, but it's just a zip
file, so we can read its central directory ourselves. We can still use
AAssetManager for file i/o to the APK's assets, so we don't have to deal with
compression and other zipfile features.
Fixes #15220 .
Reference Issue #15347 .
2026-04-28 20:22:40 -04:00
Sam Lantinga
71d0d069ed
GameInput: don't say the device is present if we won't handle it
2026-04-28 15:31:10 -07:00
Sam Lantinga
d5fca9628a
Don't use the fake HID endpoint for Xbox controllers on Windows
2026-04-28 14:10:04 -07:00
SDL Wiki Bot
b40baf1532
Sync SDL3 wiki -> header
...
[ci skip]
2026-04-28 19:11:35 +00:00
Ryan C. Gordon
7212ab1c2a
checkkeys: Sleeping for 100ms every frame makes the program too unresponsive.
...
Makes it feel like there's a bug in SDL's text input handling. 10ms is fine.
2026-04-28 08:08:15 -04:00
Ryan C. Gordon
788bd816e7
SDL_openxr.h: Another attempt to fix the wiki bridge.
2026-04-27 14:54:22 -04:00
Anonymous Maarten
085447a56e
apple: add exports file
2026-04-27 20:50:09 +02:00
SDL Wiki Bot
364c8037f4
Sync SDL3 wiki -> header
...
[ci skip]
2026-04-27 18:46:49 +00:00
Ryan C. Gordon
96a061e1b1
SDL_openxr.h: Wrap some non-SDL pieces in !SDL_WIKI_DOCUMENTATION_SECTION.
2026-04-27 14:42:10 -04:00
Ryan C. Gordon
6d9b470e84
SDL_openxr.h: tweak the category docs language slightly.
2026-04-27 14:41:45 -04:00
SDL Wiki Bot
30aeb330f2
Sync SDL3 wiki -> header
...
[ci skip]
2026-04-27 18:38:02 +00:00
Cameron Gutman
66e98b5598
atomic: Fix infinite recursion in SDL_CompilerBarrier() fallback
...
On some platforms, SDL_MemoryBarrierRelease() is defined to
SDL_CompilerBarrier(). If SDL_CompilerBarrier() is also defined to
the fallback spinlock acquire/release, then we will infinitely
recurse in SDL_UnlockSpinlock(). Avoid this by not unlocking the
temporary spinlock we create.
2026-04-27 14:30:18 -04:00
Sam Lantinga
b7726026f8
Fixed double-backspace with hardware keyboard on iOS
2026-04-27 10:54:03 -07:00
Sam Lantinga
dcf05165d3
Use SDL_SendScreenKeyboardShown() and SDL_SendScreenKeyboardHidden() on iOS
...
We now have events for on-screen keyboard visibility, so we should use these instead of starting and stopping text input.
Fixes https://github.com/libsdl-org/SDL/issues/15437
Confirmed not to regress the fix in https://github.com/libsdl-org/SDL/pull/11845
2026-04-27 10:54:03 -07:00
Sam Lantinga
6f952a8e63
testime: use the correct properties when enabling text input
2026-04-27 10:54:03 -07:00
Frank Praznik
73fc274ef7
renderer: Check the surface validity flag when re-acquiring the surface in the software renderer
...
If a size change occurs, the sdl2-compat event handler will flush the renderer, which will cause the software renderer to re-acquire a surface that was invalidated due to the size change. However, if the OnWindowPixelSizeChanged handler is called afterward, the invalid flag will be set on the surface, causing presentation to fail.
Check both for a null surface pointer and an invalid surface flag when checking surface validity in the software renderer.
2026-04-27 12:56:58 -04:00
Ryan C. Gordon
fe6c1f1134
coreaudio: Patched to compile, again, on iOS.
2026-04-27 11:46:15 -04:00
Ozkan Sezer
1226725e9a
docs/README-platforms.md: Add DOS.
...
[ci skip]
2026-04-27 18:04:02 +03:00
Ryan C. Gordon
62ea296894
coreaudio: Patched to compile on iOS.
2026-04-27 10:39:06 -04:00
Ryan C. Gordon
a74722ed74
coreaudio: Always init/deinit session listener on iOS.
...
Previously, if UpdateAudioSession() failed on close--which it might if
something strange has happened with the system's audio configuration--the
listener wouldn't be deregistered, and would risk touching a free'd pointer
if the app moved to or from the background afterwards, firing an event handler
that should have been deregistered.
Closes #15439 .
2026-04-27 10:25:25 -04:00
Ryan C. Gordon
0bf2fa8978
internal: Replace SDL_PUSH_ERROR with SDL_PushError.
...
Reference Issue #15458 .
2026-04-27 09:33:46 -04:00
SDL Wiki Bot
c46dfdba54
Sync SDL3 wiki -> header
...
[ci skip]
2026-04-27 04:32:58 +00:00
Cameron Gutman
d5acd7f123
atomic: Use __atomic_signal_fence() for SDL_CompilerBarrier()
...
This is the (slightly) more standard way to accomplish it.
2026-04-26 22:03:34 -05:00
Ozkan Sezer
3308183dfa
video, dos: silence -Wdangling-pointer warnings
2026-04-27 05:30:14 +03:00
Ozkan Sezer
1023f48b5a
add missing newlines at end of dos sources.
2026-04-26 21:12:14 +03:00
Frank Praznik
c65c809337
wayland: Use manual masking on KDE for non-native aspect fullscreen modes
...
KDE doesn't automatically center and mask fullscreen windows that don't match the display aspect ratio, so they are masked manually.
Can be removed when https://invent.kde.org/plasma/kwin/-/merge_requests/6953 is merged.
2026-04-26 11:54:31 -04:00
Frank Praznik
80a5905075
wayland: Change the non-native fullscreen mode scaling default to 'aspect'
2026-04-26 11:54:31 -04:00
ShulkerSakura
543a05bf08
Add keychron Q3 blacklist ( #15462 )
2026-04-26 07:45:06 -07:00
Sam Lantinga
47d14491a6
Fixed keyboard being hidden while being shown on Android
2026-04-25 17:10:54 -07:00
Ryan C. Gordon
8fb1c6e367
haiku: Don't strdup SDL_GetError()'s string before using it in SDL_SetError().
...
This isn't necessary anymore, after recent fixes.
2026-04-25 15:26:22 -04:00
Ryan C. Gordon
559d226fc6
error: Alternate between two buffers in SDL_SetError.
...
This way you can always safely use SDL_GetError() in your formatted string:
```c
SDL_SetError("Couldn't open '%s': %s", filename, SDL_GetError());
```
This problem was hidden on platforms that use the dynamic API, because it
would format the new error string to a separate buffer first, to deal with
the varargs entry point.
Fixes #15456 .
2026-04-25 15:17:32 -04:00
Ryan C. Gordon
30b0d2d8d0
macros.cmake: PrintEnabledBackends should catch underscores.
...
Otherwise, "dos_soundblaster" doesn't show up in the list of backends for DOS.
2026-04-25 14:31:30 -04:00
Ryan C. Gordon
880343d0e1
setup-djgpp-toolchain/action.yml: Fixed typo.
2026-04-25 14:31:29 -04:00
Anonymous Maarten
929e304b18
cmake: also check iconv on Windows when SDL_SYSTEM_ICONV is defined
2026-04-25 20:50:15 +03:00
Sam Lantinga
3c02de2f7c
Ignore the first hover event with a stale position on iOS
...
Fixes https://github.com/libsdl-org/SDL/issues/15450
2026-04-25 07:24:53 -07:00
Cameron Gutman
95ae0c194e
atomic: Fix and cleanup SDL_UnlockSpinlock()
...
- Add missing SDL_MemoryBarrierRelease() in the generic codepath
- Remove MSVC x86/x64 case which is now identical to the generic codepath
- Fix Solaris barrier to ensure prior stores are visible before unlocking
2026-04-24 22:26:28 -05:00
Cameron Gutman
2c4c8172d7
atomic: Fix memory barriers on MSVC ARM64
2026-04-24 20:12:26 -05:00
Cameron Gutman
0220a41a2e
atomic: Use acquire/release InterlockedExchange intrinsics on ARM64EC
2026-04-24 18:26:10 -05:00
Kuratius
74a746281f
Expose Steam Controller touchpads in Gamepad API ( #15378 )
2026-04-24 16:18:57 -07:00
Sam Lantinga
1146ea484a
Fixed the menu controller button state on recent Apple platforms
...
The OS reports the button state as of macOS 11.0, iOS 14.0, and tvOS 14.0, so use that instead of the deprecated pause handler.
2026-04-24 11:35:01 -07:00
Frank Praznik
01a7588f8e
wayland: Avoid excessive exposure events during interactive resizes
...
Only send the unblocking exposure event once per frame, so that clients using an event watcher won't redraw excessively.
Also ensure that the unblocking exposure is always sent on the libdecor path.
2026-04-24 13:19:05 -04:00
Sam Lantinga
c124da4367
Don't do name blacklisting if there's no name
2026-04-24 07:33:37 -07:00
Sam Lantinga
f3d7df54e2
Fixed crash in SDL_startswith() when passed NULL strings
...
Fixes https://github.com/libsdl-org/SDL/issues/15451
2026-04-24 07:30:12 -07:00
Petar Popovic
1db6d5381a
SDL_EnumerateDirectory(""): Don't append path separator if path is empty
2026-04-23 22:52:33 -04:00
Cameron Gutman
f2206974b0
atomic: Use DMB ISHLD for aarch64 acquire barrier
...
This is a little more efficient than a DMB ISH and matches what
GCC, Clang, and MSVC generate for a C++11 acquire fence.
2026-04-23 21:01:36 -05:00
Anonymous Maarten
ec4cef2711
cmake: disable vulkan by default for Solaris
2026-04-24 03:01:33 +02:00