Fix Cygwin building and add CI#15566
Conversation
69aa136 to
f9888f3
Compare
|
There are two conversations that I think I can close but not certain on so leaving them open for a day or so waiting on feedback. |
fa8dfa8 to
4785980
Compare
|
A few notes, mostly by comparison to old PR/15457:
diff --git a/include/SDL3/SDL_opengl.h b/include/SDL3/SDL_opengl.h
index 733f2b5..ba7d85b 100644
--- a/include/SDL3/SDL_opengl.h
+++ b/include/SDL3/SDL_opengl.h
@@ -84,7 +84,7 @@
# else
# define GLAPIENTRY __stdcall
# endif
-#elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */
+#elif defined(__CYGWIN__) /* && defined(USE_OPENGL32) */ /* use native windows opengl32 */
# define GLAPI extern
# define GLAPIENTRY __stdcall
#elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e591a01..70f107c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4068,12 +4055,13 @@ if(SDL_SHARED)
)
endif()
elseif(UNIX AND NOT ANDROID)
+ # NOTE: the includes CYGWIN, too
set_target_properties(SDL3-shared PROPERTIES
VERSION "${SDL_SO_VERSION}"
SOVERSION "${SDL_SO_VERSION_MAJOR}"
)
else()
- if(WINDOWS OR CYGWIN)
+ if(WINDOWS)
set_target_properties(SDL3-shared PROPERTIES
PREFIX ""
)
diff --git a/cmake/sdlplatform.cmake b/cmake/sdlplatform.cmake
index 6c60e0a..1fbce7f 100644
--- a/cmake/sdlplatform.cmake
+++ b/cmake/sdlplatform.cmake
@@ -4,6 +4,8 @@ function(SDL_DetectCMakePlatform)
set(sdl_cmake_platform Windows)
elseif(PSP)
set(sdl_cmake_platform psp)
+ elseif(CYGWIN)
+ set(sdl_cmake_platform Cygwin)
elseif(APPLE)
if(CMAKE_SYSTEM_NAME MATCHES ".*(Darwin|MacOS).*")
set(sdl_cmake_platform macOS)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b6e7b72..6167865 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -373,7 +373,7 @@ if(MACOS)
testnativecocoa.m
testnativex11.c
)
-elseif(WINDOWS)
+elseif(WINDOWS OR CYGWIN)
add_sdl_test_executable(testnative BUILD_DEPENDENT NEEDS_RESOURCES TESTUTILS SOURCES testnative.c testnativew32.c)
elseif(HAVE_X11 OR HAVE_WAYLAND)
add_sdl_test_executable(testnative BUILD_DEPENDENT NEEDS_RESOURCES TESTUTILS SOURCES testnative.c)
diff --git a/src/SDL.c b/src/SDL.c
index 350ca34..11b8872 100644
--- a/src/SDL.c
+++ b/src/SDL.c
@@ -793,6 +793,8 @@ const char *SDL_GetPlatform(void)
return "Solaris";
#elif defined(SDL_PLATFORM_WIN32)
return "Windows";
+#elif defined(SDL_PLATFORM_CYGWIN)
+ return "Cygwin";
#elif defined(SDL_PLATFORM_WINGDK)
return "WinGDK";
#elif defined(SDL_PLATFORM_XBOXONE) |
|
I did not test anything, so, if you want me to remove vulkan I will do so. Remove the change and Pushed. I will do the change to "SDL.c" that returns "Cygwin". Pushed Change. I will try the testnative change. Pushed Change waiting for CI to finish without error. I will do the sdlplatform.cmake change. Pushed edited change. I will do the top-level cmake script change. Pushed Change. I did not understand the reason for opengl header change, so, I skipped it. Do you think it is correct? Pushed Change. I do not see a warning or error related to "GetLastError()" so I think that should be done in a separate PR. |
IMO, dropping it for now would be better if not tested. If calling conventions (for e.g.) do need editing, it probably won't matter for 64 bits but it would matter a lot for 32 bits.
It think it is: It was @TrueCat17's original change. |
Because dinput.h isn't present for who knows why, and those two don't get built
As you wish. I noted it for completeness. |
Yes, it is correct: Without it, |
I have pushed that change. |
|
The two DINPUT source changes should be as trivial as this: diff --git a/src/haptic/windows/SDL_dinputhaptic.c b/src/haptic/windows/SDL_dinputhaptic.c
index fa374e4..ce0bd30 100644
--- a/src/haptic/windows/SDL_dinputhaptic.c
+++ b/src/haptic/windows/SDL_dinputhaptic.c
@@ -90,7 +90,7 @@ bool SDL_DINPUT_HapticInit(void)
instance = GetModuleHandle(NULL);
if (!instance) {
SDL_SYS_HapticQuit();
- return SDL_SetError("GetModuleHandle() failed with error code %lu.",
+ return SDL_SetError("GetModuleHandle() failed with error code %" SDL_PRIuULONG ".",
GetLastError());
}
ret = IDirectInput8_Initialize(dinput, instance, DIRECTINPUT_VERSION);
diff --git a/src/joystick/windows/SDL_dinputjoystick.c b/src/joystick/windows/SDL_dinputjoystick.c
index 62ffbb4..b9e80e6 100644
--- a/src/joystick/windows/SDL_dinputjoystick.c
+++ b/src/joystick/windows/SDL_dinputjoystick.c
@@ -429,7 +429,7 @@ bool SDL_DINPUT_JoystickInit(void)
if (!instance) {
IDirectInput8_Release(dinput);
dinput = NULL;
- return SDL_SetError("GetModuleHandle() failed with error code %lu.", GetLastError());
+ return SDL_SetError("GetModuleHandle() failed with error code %" SDL_PRIuULONG ".", GetLastError());
}
result = IDirectInput8_Initialize(dinput, instance, DIRECTINPUT_VERSION);
As for VULKAN: Looking at the headers, the following change is critical IMO, for diff --git a/src/video/khronos/vulkan/vk_platform.h b/src/video/khronos/vulkan/vk_platform.h
index 0ecd4f6..5624636 100644
--- a/src/video/khronos/vulkan/vk_platform.h
+++ b/src/video/khronos/vulkan/vk_platform.h
@@ -36,7 +36,7 @@ extern "C"
* Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
* Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
*/
-#if defined(_WIN32)
+#if defined(_WIN32) || defined(__CYGWIN__)
// On Windows, Vulkan commands use the stdcall convention
#define VKAPI_ATTR
#define VKAPI_CALL __stdcall |
|
I have not edited "vk_platform.h" in this PR. |
I did drop my vulkan change so it should no longer default to enabled. It might still allow someone to manually enable it. |
To enable vulkan, yes
No, it should be added so that 32 bit works correctly as P.S.: Speaking of |
Cygwin has separate GCC compilers for mingw32 and mingw64 and a separate set of support folders that goes with them. Edit2: Just got done searching did not find "_WIN64" in any header and the native GCC does not define it or related macros. The below is from grep of native GCC predefined dump Tim S. |
That's right, and x86_64 mingw compiler does that too. However, the headers (_mingw.h in my case) undefines it and redefines it as a blank macro, so that __stdcall has no effect in all win64 apis. Does any of your cygwin headers do that? (I'm guessing that cygwin actually uses certain mingw headers, including _mingw.h, but I don't have a cygwin or msys setup, therefore I'm not certain.) |
|
Inside "C:/cygwin64/usr/include/w32api/_cygwin.h" I found I have not found anywhere that undefines _stdcall |
Many ideas are likely from PR 15457 Co-authored-by: TrueCat17 <truecat17@gmail.com> Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com> Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
install python for cygwin Also, cygwin has a unix-like naming convention using dlls The main author is Anonymous Maarten manually edited Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com> [sdl-ci-filter cygwin]
remove ccache package because it does not have option used by CI set job's clang_tidy, ccache, and test_pkg_config to False Also, add "-DSDLTEST_GDB=ON" [sdl-ci-filter cygwin]
|
Manually edited the CI commits and did another forced push |
|
I think I made a mistake with the DLL name change will find out if CI fails. It failed. |
Co-authored-by: Sam Lantinga <slouken@libsdl.org>
[sdl-ci-filter cygwin]
replacing "__CYGWIN__" with "SDL_PLATFORM_CYGWIN". Co-authored-by: Sam Lantinga <slouken@libsdl.org> [sdl-ci-filter cygwin]
|
Thank you for all your work on this! |
commit 6c55fad411cbaa24ae4f488b4e349a21a3699b5c
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat May 23 23:56:48 2026 -0400
examples/demo/04-bytepusher: go back to showing help text on load failures.
If the VM was already running, and then a file failed to open at all (a
directory was dropped on the window, etc), this wouldn't go back to showing
the help text.
commit 800f347e5e33b5f11b73a9a5f0a2afd8ebaf030f
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat May 23 23:47:24 2026 -0400
examples/demo/04-bytepusher: Remove render target.
This doesn't need a render target to function. The comment suggested it was
needed to make debug text look better when scaled, but maybe logical
presentation used to do linear scaling exclusively at the time?
commit ae07e32269d88cd20d9e7d00701d7b5a62da8955
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 23 20:11:10 2026 +0300
SDL_itoa(): use _itoa_s(), not _ltoa_s()
typo introduced by commit 33c9f1a70a813654a02c922aa33c658d8f9bd422
commit 0a96d47599838c2aa36cc6dad9395acb33189539
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sat May 23 12:20:30 2026 -0400
wayland: Remove focus references when a pointer capture ends on a subsurface
The core mouse code will unfocus the window when a capture ends outside the window boundaries, but the backend still needs to update the internal focus references.
commit 3626598675f499f0b24a369ebb52b23628d4898d
Author: 0xDEADCADE <69792955+0xDEADCADE@users.noreply.github.com>
Date: Sat May 23 14:01:42 2026 +0200
Remove CenterPad and RightStick from Steam Controller (2015) internal state struct
These values are never used for the Steam Controller (2015), as it does not physically have these inputs.
commit e7b238a6ed9d64bcc92f8ffc75fecc10f0153b73
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Fri May 22 12:30:11 2026 -0400
Fix casting errors
commit 5f8eb445419c5e9c4388ac414722d7baee2a9655
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Fri May 22 11:42:53 2026 -0400
wayland: Handle captured pointer movements over a subsurface
Some compositors will send pointer enter/leave event while moving between surfaces that are part of the same window while mouse capture is active. Maintain window focus in this case, and adjust the coordinates relative to the content surface by the subsurface offset, if necessary.
commit 9fe200c215b334dbc115a4033d751bc0049b42e1
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 22 10:35:41 2026 -0400
examples/renderer/20-blending: Note when a blend mode is unsupported.
commit 39be8a703f809c50ff666e7499a27a832ccf4219
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 22 10:34:35 2026 -0400
examples/renderer/20-blending: center alpha and instructional text.
Otherwise, it tends to get lost behind the "Source Code" tab in the web
builds, if the browser window is too small.
commit 290f0c831fe47d0c91a377e4b843a7599358a892
Author: Jason Millard <jsm174@gmail.com>
Date: Fri Mar 27 22:08:07 2026 -0400
iOS: Fix SDL_EVENT_DROP_FILE lost on cold start from URL open
commit 2f13731d235ceed15c909838e0d0f6a4c5fd9a6f
Author: Bitwolf <65789901+Bitwolfies@users.noreply.github.com>
Date: Fri Mar 13 22:30:58 2026 -0700
Update Famicom controllers to a more user friendly name.
commit 7f03da9588841e8d3da74e0dfeed50f95f2e4e6f
Author: Vittorio Romeo <mail@vittorioromeo.com>
Date: Tue May 5 01:54:29 2026 +0200
emscripten: dedupe keyboard event listeners across multiple windows
commit 2bb6df90ad2761037fca39c6bba81b506381ab2f
Author: kholo <kholo@pix-n-chill.fr>
Date: Fri May 22 15:18:32 2026 +0200
Ignore `Huion Tablet Kamvas Pro 22`
commit 6243fa2ffd8de2cf310ec4851eb0d9faef83b2fa
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 21 18:15:42 2026 +0200
Fix -Wempty-body warnings in SDL_malloc.c
ABORT is used in the assert macro.
commit 33c9f1a70a813654a02c922aa33c658d8f9bd422
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 21 18:15:27 2026 +0200
Fix -Wdeprecated-declarations warnings
An alternative could be to define _CRT_SECURE_NO_WARNINGS
commit 6b4ae6846017b4afcde8f91c7d1bd2e2512c0ff8
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 21 12:20:03 2026 -0700
android: fixed a possible joystick-related deadlock on application termination
commit fe1918a47fb8b13a76a96fd1f07e1f3ff941a4e1
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 21 10:05:20 2026 -0700
Fixed build
commit 13f91a67fc1ea717b0604f674f0cd30768062a0d
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 21 09:56:15 2026 -0700
Fixed Ipega controllers being ignored in keyboard mode (thanks @AntTheAlchemist!)
commit 3545bad5899a843362164c038a216c2ad176a3ac
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 21 06:50:21 2026 -0700
Process repeated joystick key events on Android
This prevents them from being interpreted as keyboard keys by the Java code, and if internally we are treating them as keyboard keys, they'll be repeated properly.
Fixes https://github.com/libsdl-org/SDL/issues/15664
commit 516f4a0bd5d97b402a1b27682d2d5e6e5119e189
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 20 17:32:01 2026 -0700
Added notes about faster crc32() options
commit 47c8dcc968b29db7164e3ee5b5a8d8874ef7d26b
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 20 14:57:36 2026 -0700
android: handle sensor registration synchronized in one place
commit 19d73016e8333cd890d16ac972c0c1a9f8c8072a
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 20 15:11:09 2026 -0700
Fixed a rare crash on Raspberry Pi when creating a window
commit 0dbd9d2a65634cae4555b4d47771009b3c9fcae4
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 20 14:56:54 2026 -0700
Fixed a rare crash on Raspberry Pi when creating a window
commit ef9a5b7040b36d9c6b8ab4572eb7b9d6d4190659
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Wed May 20 11:33:46 2026 -0400
x11: Ignore slave button presses when the window lacks keyboard focus
XInput2 can send slave button presses before FocusIn events, which can confuse the click-through suppression logic. A window must have keyboard focus to grab the mouse anyway, so ignore slave presses when lacking keyboard focus.
commit 8371c09aa7d7afeffbcb782d8252b7959033c5f5
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Wed May 20 11:01:40 2026 -0400
x11: Reject click-through button events based on serial
XInput2 may send mouse buttons presses on both the master and slave devices, and the click-through button event should be ignored on both if required.
commit 9a56bc66b5a4c824550a58207ba498d8f7d7d43f
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Wed May 20 13:02:41 2026 -0400
assert: fixed compiler warning with LLVM + x86_64-pc-windows-msvc target.
Fixes #15578.
commit f8dab6ad51d3fc516be1a3f3e62971a237a6cc74
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Wed May 20 12:51:41 2026 -0400
README-migration: Note that render target support is not universally available.
Fixes #15474.
commit d8f42ee069920d3a964d226568733f3e437bb1c2
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Wed May 20 00:42:57 2026 -0400
examples/renderer/20-blending: Make thumbnail/onmouseover match other examples.
commit 8fe1d7faec7e910d9bb0f88ca6e95afd75e582d3
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Wed May 20 00:40:25 2026 -0400
examples/save-rendering-to-bitmaps: Dump alpha channel.
examples/renderer/20-blending triggered this: the renderer's framebuffer has
an alpha channel, even if the window itself doesn't, so we ended up with some
weird rendering in the onmouseover.webp when I rebuilt it.
commit 35098e927cd9c8b92d4eaea7d3f73958cc211f82
Author: Vittorio Romeo <mail@vittorioromeo.com>
Date: Wed May 6 01:25:30 2026 +0200
emscripten: don't dispatch user input to hidden windows
commit c9e2e732b674679f4bc5caa0e36c192411cb6fc8
Author: Ahmed Lyas <mr.ahmed.lyas@gmail.com>
Date: Wed May 20 04:05:23 2026 +0000
examples: Add blending example (#15657)
commit f9380e15de1c57295e88757af16b5f74cdb1d46b
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 19 15:41:04 2026 -0700
visionOS: fixed mousewheel values
Here are the observed values using a Bluetooth mouse on visionOS 26.5
Slow scroll up:
Mouse scroll: 0,-0.017334
Mouse scroll: 0,0
Mouse scroll: 0,-0.017334
Mouse scroll: 0,0
Slow scroll down:
Mouse scroll: 0,0.017334
Mouse scroll: 0,0
Mouse scroll: 0,0.017334
Mouse scroll: 0,0
Fast scroll up:
Mouse scroll: 0,-0.017334
Mouse scroll: 0,-9.36021
Mouse scroll: 0,-100.08
Mouse scroll: 0,-75.2287
Mouse scroll: 0,-82.2284
Mouse scroll: 0,-92.0137
Mouse scroll: 0,-95.1917
Mouse scroll: 0,-101.846
Mouse scroll: 0,-203.266
Mouse scroll: 0,0
Fast scroll down:
Mouse scroll: 0,0.017334
Mouse scroll: 0,11.424
Mouse scroll: 0,59.3571
Mouse scroll: 0,68.7859
Mouse scroll: 0,267.834
Mouse scroll: 0,95.0823
Mouse scroll: 0,201.809
Mouse scroll: 0,0
commit cfed9b3aca79e083c481df2afefefb25819f6b3b
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 19 14:21:55 2026 -0700
Allow setting NULL palette on any surface
Fixes https://github.com/libsdl-org/SDL/issues/15654
commit f19dca3ca0c10f6417ac503288120ccd064cd4f4
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Tue May 19 18:55:20 2026 +0300
SDL_rawinputjoystick.c: fixed a type redefinition error
commit 42c4a0e30f04150f0b5223340a7e50b8095ce72b
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Tue May 19 17:25:56 2026 +0300
SDL_windows_gaming_input.c: work-around to build against old SDKs.
Fixes https://github.com/libsdl-org/SDL/issues/15646
commit 169480a352463eee65e825b1a934d7bebeb7967a
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Tue May 19 17:22:50 2026 +0300
hidapi/netbsd: import mainstream commit 7e994d8671:
https://github.com/libusb/hidapi/commit/7e994d8671 - authored by
Izumi Tsutsui:
netbsd: check not only addr 0 but also addr 1 to find root hubs
On NetBSD xhci(4) uses 'addr 0' for the root hub but all drivers for
other host controllers use 'addr 1' for the root hub.
https://gnats.netbsd.org/60073
commit 6ed1de089c35ab283924c2fec96794909fc0df85
Author: Kuratius <kuratius@gmx.net>
Date: Tue May 19 15:34:02 2026 +0200
Fix touchpad finger detection on Steam Deck
commit 48fe7b7d6a9275a1cd7d785c9a9d600445c571f4
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Tue May 19 11:21:04 2026 +0300
SDL_wasapi.c: added comment about SDL_AudioClientProperties workaround
commit 0e480bee307430f641d554c3a716f20748518974
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 18 16:13:41 2026 -0700
visionOS: re-enable dimming mode
commit 7f7c1628cb38c9cc6936d88740cca709b754f016
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 18 13:00:00 2026 -0700
visionOS: use black instead of white for the mouse overlay
White is easier to see and people notice the overlay showing up when mouse input is enabled
commit b4ebf70e0c6cc857a99dff9b9532910afd25ae1d
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 18 12:54:57 2026 -0700
visionOS: dimming doesn't seem to be reliable, so disable it for now
commit e759cc850e29d8aa8e13e0cdec66fe285f54ba89
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 18 09:23:38 2026 -0700
Added an internal type for the Nintendo Switch 2 Pro controller
commit f31ca02723f57f84dc03fd19b2f5a3e4b8a15bda
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sun May 17 10:45:32 2026 -0400
video: Windows keep any position set when in fullscreen after leaving fullscreen
Adds an automated test for the behavior as well.
commit b608108593ce3770426bc45be5a48db649d41e79
Author: Susko3 <Susko3@protonmail.com>
Date: Mon May 18 17:28:31 2026 +0200
Properly fix cursor position in Korean IME
commit b5ac64137206088287c25f7cb78c40cf12d4fcdf
Author: Ahmed <mr.ahmed.lyas@gmail.com>
Date: Mon May 18 15:46:31 2026 +0100
examples: Fix float division
commit bf03728873547aa82a19ea624a7f05d698edabc3
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Mon May 18 17:40:20 2026 +0300
wasapi: workaround that AudioClientProperties->Options not being available in old SDKs
Closes: https://github.com/libsdl-org/SDL/issues/15641.
commit 508450e9c05405e306a26dbe7972e6ba60656e15
Author: Gabriel Wang <embedded_zhuoran@Hotmail.com>
Date: Mon May 18 15:31:22 2026 +0800
adds Blit565to565SurfaceAlphaSVE2
commit e07cfdff2ccf2fb3a6abf5d3093c30fbd594af9b
Author: Gabriel Wang <embedded_zhuoran@Hotmail.com>
Date: Mon May 18 14:32:10 2026 +0800
adds sdl_sve_chn_blend_with_mask_fast for RGB565 alpha-blending
commit 8d9d6b1b2b04343e3bacab6ef48cecfd16ca598b
Author: Gabriel Wang <embedded_zhuoran@Hotmail.com>
Date: Mon May 18 14:16:22 2026 +0800
apply simplified sve2 macro protection
commit 296231e999a5fc44841ad16c207a12067f0d6af8
Author: 7aGiven <fredrickareichert@gmail.com>
Date: Mon May 18 12:46:06 2026 +0800
WM_IME_SETCONTEXT not set 0
commit a20530cf15e1edf9d1444263a03e1fe44731c691
Author: Kuratius <47481645+Kuratius@users.noreply.github.com>
Date: Mon May 18 16:03:56 2026 +0200
Fix Steam Controller 2 touchpad finger detection (#15644)
commit 8e6fed2cbf464344b13d5dbc86a2beb2bb53f851
Author: 7aGiven <fredrickareichert@gmail.com>
Date: Mon May 18 17:19:02 2026 +0800
fix Korean caret position
commit 8b49bff35387e44e7b49784c8a315d376c06e775
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 21:42:49 2026 -0700
Fixed Nintendo Switch Pro controller sensors on Android
commit 14c31ee12a6456db78ad3ff2f100391416ee38a0
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 17:56:33 2026 -0700
Fixed reading the controller accelerometer on Apple platforms
DualShock and DualSense controllers no longer have hasGravityAndUserAcceleration set, but we can still get the combined user + gravity acceleration values from those controllers, which is what we want.
commit d8b2434047f5a74798cb567b38432e166f4d3361
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Sun May 17 17:22:56 2026 -0700
testcontroller: correct fix for touchpad free/allocate
commit 8c89a076a7b8c70ef2ec9af8c8169c4d6775d68e
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 12:17:26 2026 -0700
Fixed deadlock introduced by 7222c04fbf2b904e815f5ac9c8623ef8030fd261
It turns out this change causes a deadlock:
The main UI thread calls synchronized handleMotionEvent() which then calls SDL_LockJoysticks()
The main app thread calls SDL_LockJoysticks() and then synchronized pollInputDevices()
commit b19ecb40327333d147bc8be5850d5fe398e54c86
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 12:15:48 2026 -0700
Reapply "Change controller sensor state on the main UI thread on Android"
This reverts commit 02975994c12582aef918bccb3825592e7ea36d10.
Accidentally reverted the wrong commit
commit 02975994c12582aef918bccb3825592e7ea36d10
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 12:04:11 2026 -0700
Revert "Change controller sensor state on the main UI thread on Android"
This reverts commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d.
It turns out this change causes a deadlock:
The main UI thread calls synchronized handleMotionEvent() which then calls SDL_LockJoysticks()
The main app thread calls SDL_LockJoysticks() and then synchronized pollInputDevices()
commit cbd2917324ab24c18d5afeeb435f7cf23c883403
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 21:36:20 2026 +0300
SDL_render_d3d11.c: fix another bad use of SDL_FUNCTION
commit 33e237eb6779ecfda70c781caa656827ee9d70f8
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 11:05:43 2026 -0700
visionos: persist all configurable window settings
Save the gaze indicator and dimmed mode setting as well as curvature
commit 6d3404e4bbdfa02da56bca4ed21f0426da764bfc
Author: Cameron Gutman <aicommander@gmail.com>
Date: Sat May 16 16:29:07 2026 -0500
gamepad: Add SDL_GAMEPAD_TYPE_STEAM for Steam Controllers
commit f76b736e287f5056ff0d586febe00ef1b7a8a37f
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 20:28:56 2026 +0300
SDL_render_d3d12.c: revert an unintended change from commit d70578b9aac
commit ae25abeb0daab3b33c94227e339e622bfa72769c
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 07:28:36 2026 -0700
Don't log game controller buttons in the keyboard handler on Android
commit 9aae258aeb3271fbd1e571fc0da799473f90ff57
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Fri May 15 14:02:18 2026 -0400
wayland: Adjust DnD coordinates when dragging over a mask subsurface
commit 336d07c2b78c1f08ff0505ce8184dfeb47ce9d62
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Fri May 15 13:51:14 2026 -0400
wayland: Implement Wayland_AcceptDragAndDrop()
This simply toggles a flag that rejects DnD offers if false. Events were previously dropped silently, but rejecting the offer makes some desktops display a proper icon when the drop will not work.
commit 31d6acef64e32f154eba639bbb466cbbe8bf45eb
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Sun May 17 15:51:20 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 63d2635719d0431802e2e1c933c23c3c1c2a2d5e
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 08:47:36 2026 -0700
Added SDL_HINT_AUDIO_DUCK_OTHERS
Previously default audio on Apple platforms would duck other audio streams. This is unexpected, so by default we won't do that and you can use the hint SDL_HINT_AUDIO_DUCK_OTHERS to re-enable that behavior.
commit 5b98c1cc2f598115906c9c1f2758d3d256913468
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Sun May 17 08:26:29 2026 -0700
Add capacitive sense gamepad events (#15627)
commit 984fcdaa8a7855516a8b84016c0c253680bec3af
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Sun May 17 07:21:08 2026 -0700
testcontroller: free/allocate touchpads only when needed
commit 34c3fdd35075408e0330533c0c2d710ba497e9bf
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sun May 17 06:45:33 2026 -0700
Added extended internal controller types
commit 4aeac49311a15a187a8c999fc01b7fee73222edd
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 11:55:50 2026 +0300
update openxr headers from khronos.
commit 322dfd3adae15e4985d58522bf2a1abf6659bf4c
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 11:55:50 2026 +0300
update vulkan headers from khronos.
commit 968b0c6910b622bf63253d2847e67bc7fd30516d
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 11:55:50 2026 +0300
update gl/egl headers from khronos.
commit 75c94e9b3189a40615b74f6484cb226fc0c4a72d
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 11:55:40 2026 +0300
SDL_opengl_glext.h, src/video/directx/d3d12.h: revert unintended changes from commit d70578b9aac
commit 1f7a42a7b91dc4cbd5879d6ac52f84fc4d5710c3
Author: Tap <github@tapg.dev>
Date: Sun May 17 12:04:45 2026 +1000
Correct steam triton haptic commands
The listed report IDs are incorrect - there is no skipped ID
commit d4fa4b46346b973014bb54f60f6c8067b03251e7
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun May 17 11:50:10 2026 +0300
SDL_opengles2_khrplatform.h: add cygwin bit missed in commit 2cd5cd2a.
commit a34b35a382bffcd430465e273264021fb0f2fab1
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 22:11:28 2026 +0300
cygwin, test/cmake: hard-code opengl as native opengl32.
FindOpenGL from cmake >= 3.19, or cygwin-provided cmake versions don't
test for native windows opengl32, but we want native windows opengl32.
commit b24feafaa2c7fb6078783113bae1488dd4104fde
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 14:56:40 2026 +0300
cygwin: patch vulkan headers for VKAPI_CALL and enable vulkan in cmake
commit 2cd5cd2a42318fe97c8a99d6141cdb59d398875f
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 14:56:32 2026 +0300
cygwin: patch egl/opengles headers for EGLAPIENTRY
commit 71979477c7cb584f2bfa0bd87e9b2db4bbca25fb
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Sun May 17 04:24:50 2026 +0200
include: add sve2 to documentation of SDL_HINT_CPU_FEATURE_MASK
commit 203800565765caec4359d1e5b63c61a980b45c72
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Tue May 5 19:00:45 2026 +0200
video: don't use NEON blitters when SDL_HasNEON returns false
commit db7ac820f9c95dd75c7b71e6d37231534b6c13c5
Author: Christian Semmler <mail@csemmler.com>
Date: Sat May 16 14:21:31 2026 -0700
emscripten: Fix crash on Safari when probing gamepad rumble support
Safari's older Gamepad API exposes `vibrationActuator` with `playEffect`
and `reset` but no `effects` enumeration array. The probe added in
651136ac7 dereferences `vibrationActuator['effects']['includes']`
unconditionally, throwing `TypeError: undefined is not an object` on
every Safari client that opens a connected gamepad. Add the missing
`['effects']` null check so the probe returns false on Safari instead
of aborting.
commit 060b74a6647229991d9d4ec310e827782dc4ae28
Author: Cameron Gutman <aicommander@gmail.com>
Date: Sat May 16 17:07:56 2026 -0500
mouse: Restrict GCMouse to macOS Sonoma and later
commit 5e483dc16626b937f24bc10c90dedf8e1e92003e
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat May 16 15:29:46 2026 -0400
android: Build the APK asset tree in the same order its listed in the file.
This tends to get you enumerations in alphabetical order, instead of them
being reverse-alphabetical.
Reference Issue #15587.
commit 497b2118ba68019fd4c105129b7cf4888a46386d
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat May 16 15:26:47 2026 -0400
android: Don't forbid paths of "" in the APK assets tree.
This would make `SDL_EnumerateDirectory("assets://")` fail.
We check for empty strings at the higher level already, before we strip out
the "assets://" prefix to pass through the tree.
commit 2ebf23014f8e170ae7df48c51bb72a3644eec16b
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Sat May 16 09:04:20 2026 -0700
Add Steam Deck capacitive touch sticks, trackpad clicks, and mapping (#15612)
commit 072b2b74c793eb0e5d7925ad0fcdeb3afd712949
Author: A1029384756 <hayden.gray104@gmail.com>
Date: Fri Apr 24 11:08:40 2026 -0400
fix tooltips not showing on KDE
commit 3ba4b6b28eef3a5c8c6daa4c98061833efc8d35d
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 14:55:50 2026 +0300
SDL_gpu_d3d12.c: fix cygwin -Wformat-warnings
commit 774506c2b7ba6067c2b2cf29514f8b55cf925ee1
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 08:44:56 2026 +0300
SDL_opengl.h: clean-up SDL's cygwin customization.
commit 880ddb9ca3f8e78e257cf0e534d5245fad4d47e3
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 08:44:40 2026 +0300
SDL_dinputhaptic.c, SDL_dinputjoystick.c: replace %lu usage with new cygwin-friendly macros.
commit e972e6a01ba308c90f17ecf111485b762c450efe
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 16 09:08:08 2026 +0300
core/android/SDL_android.c (AddAPKDirs): add missing opening brace
fixes build errors
commit 4910498820a9f6399857a6f0d757bbf287116801
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat May 16 00:48:00 2026 -0400
android: EnumerateDirectory and GetPathInfo should fail for a path of "".
Otherwise, this will get appended to the internal storage path, etc, making a
real directory when it shouldn't.
Reference Issue #15587.
commit 37af10db4d2058a43f44cd35906f8852571e8e11
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 15 14:35:56 2026 -0400
android: Support "." and ".." in asset tree paths.
Reference Issue #15587.
commit e1d623505edafd7a01523ab39910a3900dd682dc
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 15 14:34:41 2026 -0400
android: Remove call to mktime() in APK entry parsing.
commit c00d7b4bf5580462924de5794da50a98fce09b2c
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Fri May 15 19:18:38 2026 -0700
Add Steam Controller mapping (#15601)
Also fixed Hori QAM button mapping
commit 0ffb0bdd87499af6472a20c80728467d11c5826f
Author: John Schoenick <johns@valvesoftware.com>
Date: Fri May 15 15:29:16 2026 -0700
unix: Fix infinite looping in SDL_FriBidi_Process if len > 127
start/end should be FriBidiStrIndex here -- using FriBidiLevel makes
them `signed char` and the loop here will become infinite if `end` is
> 127.
commit d83e7bf79edfd686020c8ce4a467dfca7a66be6a
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Fri May 15 13:10:44 2026 -0700
Add Gamesir Supernova in Xinput mode to controller list
commit 86296ac8f01597076979630667472a846b04ce46
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Fri May 15 11:43:57 2026 -0700
GPU: Set missing fields on Vulkan swapchain texture (#15606)
commit aeacf42e0659e3fee1e00730193f63125dc41594
Author: Sam Lantinga <slouken@libsdl.org>
Date: Fri May 15 11:00:11 2026 -0700
gameinput: only add the share button for known Xbox Series X controllers
The HID descriptor for the latest firmware always includes the share button, and GameInput will report it as always available, so double check against our list of classic Xbox One controllers and don't include the button on controllers that don't have it.
commit a95ce7e734f8f8b5fa5740a8e40a93cf670db8db
Author: Sam Lantinga <slouken@libsdl.org>
Date: Fri May 15 10:13:15 2026 -0700
Detect the GameSir Super Nova in Xbox 360 mode
commit d1d54b8c56aa1025c663655d8f00e84eaa7a5ef3
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Fri May 15 02:35:10 2026 +0200
test: build testsprite as c++ application
commit bd146867e45bd5c8121c866d64161e70d9bf58c6
Author: Anthony <ant@powgames.co.uk>
Date: Fri May 15 16:55:50 2026 +0100
Update showFileDialog in proguard-rules.pro
to match changes in 439ffd1
commit 6586bebfec42ed1418469d70dffa5216534bc635
Author: stahta01 <stahta01@users.noreply.github.com>
Date: Fri May 15 11:48:24 2026 -0400
Fix Cygwin building and add CI (#15566)
Co-authored-by: TrueCat17 <truecat17@gmail.com>
Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com>
Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
commit be97a18d8244969877adf7530e874693a68cfbd7
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 15 10:34:30 2026 -0400
android: Don't allow access to the asset tree with a path of "".
Reference Issue #15587.
commit e1fa336ac4910b9e5b2096a5bc0f3c1b489364f4
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Fri May 15 10:25:40 2026 -0400
android: Don't ever enumerate absolute paths from the assets tree.
This could happen if opendir() failed for a reason other than the directory
missing (for example, `opendir("/")` fails with EACCES.
Reference Issue #15587.
commit d5af35e3fbb5bb6555ed00e69740d52af2a4e877
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Fri May 15 03:47:28 2026 +0200
surface: cannot set a palette to a non-indexed surface
This fixes a UBSAN warning later in this function where it calculates
(1 << SDL_BITSPERPIXEL(surface->format)). The bpp might be >= 32 and
out of range for a bit shift.
commit 6b26332785cb67a7380429ec4b8358c99c3773f1
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 14 19:15:42 2026 +0200
ci+release: build with gameinput support
commit ff98125cbd6ca94f0efa45288ec8d4a02fe12d79
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Fri May 15 00:43:30 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 878789557545e161e048e1501c895d225c6c18b0
Author: Petar Popovic <pjoetri@gmail.com>
Date: Fri May 15 02:29:37 2026 +0200
SDL_video.h comment update
commit eb340388fc5bbe2240e7f221ac5e9ffb4bd57eec
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Thu May 14 17:32:25 2026 -0700
Fix HIDAPI support for Flydigi Vader 5 Pro (#15594)
commit f286e420afd3ccb0dedc7ec77eb09d4bd2e5e102
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Thu May 14 17:01:13 2026 -0700
GPU: Refactor Vulkan barriers to fix defrag segfault (#15593)
commit c9bb41bd9ca6fc2ebd1c8be150e41c52ab50e3c7
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 14 16:52:40 2026 -0700
Fixed build when GameInput is enabled
commit f3faf67c645023ecb26485781dd26e0948030800
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Thu May 14 16:26:26 2026 -0700
Add Steam Controller touchpads, capacitive touch for sticks, and grip sense (#15528)
commit 4d95a63fe3936389119794cf6dce1483465d3d5b
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Thu May 14 21:55:55 2026 +0300
fix build after commit 2c4e6ed3585ec63adee2e9a680de3c52b4db3c0c:
move SDL_UsingGameInputForXInputControllers() to core/windows/SDL_gameinput.cpp
because joystick/gdk/SDL_gameinputjoystick.cpp isn't always added to build.
commit 0e07b7c5e20952c3ea6b8b490f81bc2ebc21a6fd
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Thu May 14 15:58:15 2026 -0400
android: Comment out debug logging.
Reference Issue #15587.
commit fdfbbcefb2470d39726748d17696c577d37586a5
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 14 12:00:55 2026 -0700
Fixed error: "SVE support not enabled" building on Android
commit 9e07e0c21535859d85133c62064d97582d021a6d
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Thu May 14 18:52:22 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 439ffd13eb63e79c94df395effe9909d253074de
Author: crudelios <crudelios@gmail.com>
Date: Wed May 13 17:50:42 2026 +0100
Android: Add support for folder dialogs
commit de08751537b91dc805ad535b876818f825ea6cbd
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 14 11:42:54 2026 -0700
Fixed build for older toolchains that don't have arm_sve.h
commit 11745aad07bfae129253974df0a94f5a77c842db
Author: Sylvain Becker <sylvain.becker@gmail.com>
Date: Thu May 14 20:17:53 2026 +0200
Fix build with SVE2 (#15586)
commit 2c4e6ed3585ec63adee2e9a680de3c52b4db3c0c
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu May 14 10:18:58 2026 -0700
Enable GameInput v3 by default if it's available
GameInput is now the most functional Windows API for handling XInput controllers.
commit d57c3b685c434d2ee0fa3d258f7e165b6e8d0cf6
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 14 17:40:13 2026 +0200
gameinputjoystick: %02hhX emits a -Wformat warning
commit 8122b8f2ac68fde8306bb78c1fa758b46a91a39a
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 14 17:38:30 2026 +0200
gameinput.h emits a few Wundef warnings (WINAPI_PARTITION_* macros)
commit 0f2c04319f3192c215bef62c25adf7b41ea8f926
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 14 17:37:14 2026 +0200
cmake: gameinput.h is a c++-only header
commit 2fa7ba1e4fe54918be75a9a466b9ae51fbe14d60
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Thu May 14 17:36:57 2026 +0200
stdinc: _Countof is only available in C mode
commit a3376acc2e2fc940a909659f3d95fb199a548194
Author: Cameron Cawley <ccawley2011@gmail.com>
Date: Thu May 14 14:50:21 2026 +0100
Replace custom NEON cast macros with vreinterpret_*_*
commit 006959ca87eb1406a3d1f7021b6852b01600bcb0
Author: ceski <56656010+ceski-1@users.noreply.github.com>
Date: Wed May 13 23:49:01 2026 -0700
Add dual touchpad support to testcontroller (#15540)
commit 0defb4ddfc29c7201c57d5dc8cceb07e29e07f62
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 13 10:01:50 2026 -0700
Added controller sensor support for GameInput v3
Verified working with the DualSense controller
commit b333c04cccd338a7d81fff46c07415b0b82e89ca
Author: Vlad-Florin Ilie <35900803+VladFlorinIlie@users.noreply.github.com>
Date: Thu May 14 09:40:55 2026 +0300
Fix Steam Controller 2026 (triton) rumble (#15558)
commit a400a70484200c9108ceb8926c3e7955cb60de2b
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Thu May 14 06:39:08 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 0f175891a608108a458890be6194358e0234f09f
Author: Gabriel Wang <embedded_zhuoran@Hotmail.com>
Date: Thu May 14 14:37:46 2026 +0800
Add SVE2 SIMD Alpha-Blending Blitter (#15504)
SVE/SVE2 is a new SIMD extension for AArch64. Compared to NEON, SVE/SVE2 brings the following benefits that are good for SDL projects:
- Lane prediction: we don't have to treat the tail part of a stride separately when the width is n times the hardware vector size
- Although the performance is almost no difference from NEON when the hardware vector size is 128bits, when the hardware provides a longer vector size, e.g. 256, 512, ... 2048, we can enjoy the large performance gain without modifying the source code or recompiling a library.
The functional correctness is validated in a dedicated [qemu project](https://github.com/GorgonMeducer/aarch64_qemu_mac_template/tree/SDL-SVE2-Acceleration-Validation).
The performance is tested on [Radxa Orion 6 N](https://radxa.com/products/orion/o6n/), which provides 4x A720 and 4x A520 processors. Since the vector size is 128 bits, which is the same as NEON, the performance is almost the same (or no worse than) the NEON acceleration.
commit 0e5e772ba9c67d6822e2e22fc782657f8ec58000
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 13 20:39:38 2026 -0700
Fixed windows getting the wrong size when setting size and aspect ratio back to back
commit e50faf4e6aa48d2684818420201260e0c4caf957
Author: Cameron Cawley <ccawley2011@gmail.com>
Date: Mon May 11 19:19:07 2026 +0100
Support the full set of standard CSS cursors
commit 4884dbbe5610d6cd444b03ee694e63f086fa5825
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 13 20:14:50 2026 -0700
Added SDL_SendGamepadEffect() support for the new Steam Controller
commit c247f06f01477d319abf6981c860e3a1ed02b05e
Author: Joel Auterson <joel.auterson@googlemail.com>
Date: Thu May 14 01:01:33 2026 +0100
Add libusb-1.0-0-dev to Linux deps doc
libusb-1.0-0 is needed to enable SDL_HIDAPI_LIBUSB. It does not work with the `libusb-dev` package on Ubuntu, which is for the older version.
commit c6b232f5d4478af7d2c2ebfe080450931c15f414
Author: Cameron Cawley <ccawley2011@gmail.com>
Date: Wed May 13 20:51:02 2026 +0100
Support loading JPEG images through SDL_LoadSurface()
commit 9672f5b68b1f3f438bb86c65f8a3c198eb4b9eb1
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Thu Apr 30 19:59:15 2026 -0400
android: Change how apps access their APK's "assets" directory.
Now they can explicitly access it with "assets://" filenames, and
SDL_GetBasePath() returns "assets://"
Fixes #15347.
Fixes #5044.
commit e8127a9a11a5d6d720062612d15ddc2c9c812648
Author: Brenton Bostick <bostick@gmail.com>
Date: Sun May 3 10:58:49 2026 -0400
Fix #15500: deprecation warning on Android for slCreateEngine
commit 4eb221881a3d51eae8aa42d1ced97bb994917325
Author: Eddy Jansson <eddy@klopper.net>
Date: Wed May 13 18:10:50 2026 +0200
DOS: Replace SDL_memset() with SDL_zero*()
commit 70159c34f63abb234c3110c661c1e78579c3bc44
Author: Eddy Jansson <eddy@klopper.net>
Date: Wed May 13 18:05:39 2026 +0200
DOS & Tray: Don't do NULL-checks before SDL_free()
commit 3dbd3e43e293931cfa7b356e09fca8e89aac5e53
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 13 09:07:36 2026 -0700
Return the touch device name for SDL_TOUCH_MOUSEID
commit b1f390255a239940050f87cfb52dacb796e76728
Author: Cameron Cawley <ccawley2011@gmail.com>
Date: Wed May 13 14:33:16 2026 +0100
Allow formats with alpha channels for window textures
Because the blend mode is explicitly set to SDL_BLENDMODE_NONE, it doesn't matter if there's a transparency channel in the texture format or not for opaque windows. This ensures that a 32-bit format is used with Metal instead of SDL_PIXELFORMAT_RGB565.
commit 716c767b7e7099fb0e2fda9db59227a7e1d1d8a4
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 12 20:15:42 2026 -0700
Document that you may receive mouse events with SDL_PEN_MOUSEID
commit fcaf5bbf8cf339eab4614e246f33ea67e9a34a28
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 12 20:12:56 2026 -0700
Use predefined names for constant keyboard and mouse IDs
Fixes https://github.com/libsdl-org/SDL/issues/15563
commit 36e1efccb473b3aebd68048927d565c17eb48beb
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Wed May 13 18:00:02 2026 +0300
revert parts of CodeSpell commit d870911202 from 3rd party sources
commit c362f1341f2e2e6abf34ae05d6068ad89bebd00d
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 12 19:25:58 2026 -0700
Change controller sensor state on the main UI thread on Android
Fixes https://github.com/libsdl-org/SDL/issues/15565
commit 7222c04fbf2b904e815f5ac9c8623ef8030fd261
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 12 18:59:06 2026 -0700
Synchronize controller access on the Java side on Android
commit 7071efb6a3a4b3a63d6a1a46516d846ae088ee2c
Author: Cameron Cawley <ccawley2011@gmail.com>
Date: Tue May 12 16:18:27 2026 +0100
Fix switching modes on RISC OS
commit 418960bb4e93feaa70f68ec2da7af0f94d08d2dc
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Tue May 12 17:19:18 2026 -0700
Handle the Amazon Fire TV's weird Bluetooth behavior
commit fd8682ccc9aa66d309bbe1a4a3852ee8b6c80460
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Tue May 12 23:49:34 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 5cf16e452264a6f2f8895ec046cadad41ada6123
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 12 16:48:06 2026 -0700
Added curved window mode on visionOS 26 (#15298)
commit f30ec9940af42c08466a36e42fe6d5847f7c124f
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 11 22:10:20 2026 -0700
Removed Wooting 60HE (ARM) from the controller blacklist
Fixes https://github.com/libsdl-org/SDL/issues/15555
commit 4940345a2e624fe8aca2eda5ceaf3fb0b90392c9
Author: Al. Lopez <67606569+AL2009man@users.noreply.github.com>
Date: Tue May 12 00:45:10 2026 -0400
added additional examples of paddle/misc buttons for Steam Controller (#15544)
commit bb4eedd67d9d673925a10f49cd30fd5351f14074
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon May 11 16:47:26 2026 -0700
Fixed a crash if we get a HID device with no path
This can happen on Linux if udev_device_get_devnode() fails.
commit e4a327709dcf7d5a623aa5c0403cccfe09e6c0c4
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Mon May 11 15:19:57 2026 -0700
Correctly support OG Steam Controller when connected via USB on Android (#15561)
commit fd3cfb97c1a1d6ccccc67b2000dee71c9f1bab7d
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Mon May 11 12:47:30 2026 -0700
Ensure Android gamepad mappings don't lose the first button.
commit 76f8705c1243640c7933f05fddf75f3e16fd7dff
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Mon May 11 11:42:11 2026 -0700
GPU: Fix segfault when copying to Vulkan swapchain (#15543)
commit 7ec70d39c46117a0791f315164d577902167af3d
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Mon May 11 11:16:14 2026 -0700
*Only* preserve report byte for feature reports. Oops.
commit 287e2573cd0c4eb6fb16a4bcc407ee7d2e62bf38
Author: Nintorch <92302738+Nintorch@users.noreply.github.com>
Date: Sat May 9 16:01:06 2026 +0500
Ignore `Keychron K10 Pro` and `Huion Tablet_GS1331`
commit 7439a94ed244434e3c27df415c8362dd9626daff
Author: Cameron Gutman <aicommander@gmail.com>
Date: Sat May 9 11:36:23 2026 -0500
atomic: Implement loads on MSVC without RMW operations
This fixes faults when loading from read-only memory and avoids
cache line bouncing across cores which reduces performance.
commit c94b1435c7c573a626aea8ebec71b8f54471ae02
Author: Anthony <ant@powgames.co.uk>
Date: Mon May 11 09:43:39 2026 +0100
Add joystickSetSensorsEnabled to proguard-rules.pro
commit f6a1eb9ba96e054aa22c2fa51d291bcfb24dcac4
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Sun May 10 22:34:19 2026 +0200
ci: bump actions, switch away from ilammy/msvc-dev-cmd
commit f48525aa703e0e11134347b38571661d6ca829fd
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sun May 10 13:55:45 2026 -0400
x11: Store the mouse button serial for emulated pointer events as well
Otherwise, filtered emulated button events, such as for mouse wheels, can slip through the core event handler.
commit e497077cbf6a974640be79c814c1c662ba18c889
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Sat May 9 23:58:32 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit cbe3fbe9f367340dcd924de29c225c9f4ffea1f5
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Thu May 7 19:20:21 2026 -0700
GPU: Validate that 2D textures don't have layers (#15535)
commit 8efa8014df6d63af8d72fbc9cfc2236feb642dea
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Fri May 8 00:37:31 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit d08ef12b127dcd69ffdf8498193a42acc4a8c9b6
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Thu May 7 16:34:32 2026 -0700
GPU: Allow depth texture arrays (#15534)
commit 04d8a654d8d95a59fa04df9833deab8c6ea50b80
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Thu May 7 12:27:06 2026 -0400
wayland: Ensure the viewport size is always non-zero
A viewport size of zero is a protocol error, so guard against it when adjusting the aspect ratio.
commit ba3577f5846d3aa6fd074c4decc18eac747b514e
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Wed May 6 12:41:53 2026 -0400
wayland: Ensure window dimensions are greater than zero after adjusting for aspect
Resizing to zero can cause a bad viewport size error.
commit c8feb297465d6702f293d0941b8e6d3554653a26
Author: cosmonaut <evan@moonside.games>
Date: Thu May 7 09:58:56 2026 -0700
GPU: Clarify VK_KHR_maintenance9 comment
commit 2949a0d6d51a591e49c189769d2b09ba24db8efe
Author: Susko3 <Susko3@protonmail.com>
Date: Thu May 7 13:10:47 2026 +0200
Enable text editing events in checkkeys
commit ab19d09939f7c3365508f3894ae63d9faa16c529
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 6 19:42:39 2026 -0700
Fixed build
commit 5d63a4cad29ba50d04b8136fe8a5a1b87eee7707
Author: Torbjorn Laedre <271210+tlaedre@users.noreply.github.com>
Date: Fri Apr 10 15:56:06 2026 +0200
Change 3D texture memory barrier sub-resource range to be maintenance9 compatible.
commit 386f198622083f8b91753f3bcce75c631c3701b5
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 6 18:12:01 2026 -0700
Don't report 10% battery for Xbox controllers using XInput
commit f8c364ae7432bc8efee0914734d3afb18458f394
Author: Rachel Blackman <packetdancer@gmail.com>
Date: Wed May 6 15:14:09 2026 -0700
Ensure Android hidapi does not drop the report byte (#15527)
commit 56e0d052f18938e8d9c6cfe11d87d118afc1990d
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Wed May 6 12:30:46 2026 -0400
opengles2: Rework render targets.
Now this keeps one FBO for each SDL_TEXTUREACCESS_TARGET texture, and doesn't
reuse it. We check if the FBO is "complete" once, at creation time, and
setting a render target merely has to bind the right FBO and never look back.
This simplifies the code and removes a guaranteed pipeline stall when setting
a new render target.
Fixes #15524.
commit 51925aa92e812ec6fc3afd8c39e6c3dc4112eda9
Author: Michael Fitzmayer <mail@michael-fitzmayer.de>
Date: Wed May 6 18:31:37 2026 +0200
[N-Gage] Resolve hang on repeated app launch.
CAudio::~CAudio() waited on MaoscBufferCopied(KErrAbort) to set
EStateDone, but that callback can never fire once the active scheduler
loop has exited, deadlocking every close.
- StopThread() before iStream->Stop() in ~CAudio()
- Force iState = EStateDone instead of waiting on a dead callback
- Add 5s timeout to AudioIsReady() poll in E32Main()
- Fix CleanupStack LIFO pop order (mainApp before gRenderer)
commit e3393e630417c9d74c9eebc3bfab0f6bd9e345b7
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Wed May 6 11:30:15 2026 -0400
wayland: Queue the surface frame callback after the initial commit
Some compositors may dispatch this too early, during the initial empty commit, when subsurfaces are attached to a toplevel window, but a buffer has yet to be committed to the parent surface. Don't set the frame callback until the initial empty commit is done, so it will be called when the actual parent surface frame is committed.
commit 702f9d94cd878751add81bf7035bc3144caa950d
Author: Sam Lantinga <slouken@libsdl.org>
Date: Wed May 6 09:12:03 2026 -0700
Use SDL_HasWindows()
commit 77cd3872c42d71c59c85ccaa08994cb5e0c9eecc
Author: Michael Fitzmayer <mail@michael-fitzmayer.de>
Date: Wed May 6 17:27:12 2026 +0200
[N-Gage] Add missing include, clean-up.
commit b9da2b8d97b2b82e567b402589b6ce6bab4b5e49
Author: Michael Fitzmayer <mail@michael-fitzmayer.de>
Date: Tue May 5 18:59:28 2026 +0200
[N-Gage] Add Gouraud-shaded triangle rasteriser
Implement DrawGeometry using a software scanline rasteriser that fills
triangles directly into the EColor4K framebuffer. Vertices are sorted by
Y, split into upper/lower halves and filled with per-scanline edge
interpolation. Colour is stepped incrementally across each span (one
division per span edge rather than per pixel) to avoid the cost of
emulated integer division on the ARM920T.
commit 37089cf0a8b82776cc69fc54e1204601244ea83b
Author: misscelan <45209859+misscelan@users.noreply.github.com>
Date: Wed May 6 16:39:23 2026 +0200
Update for N-Gage - Audio is now double buffered (#15516)
[N-Gage] Audio is now double buffered to avoid stuttering and glitches. Some audio platform specific variables were exposed through SDL_Hints. Same method was used to display FPS. N-gage functions to obtain the current buffer and screen pitch were added to the render.
Adds hints:
SDL_AUDIO_NGAGE_LATENCY
SDL_AUDIO_NGAGE_SCHEDULER_TICK
SDL_AUDIO_NGAGE_PROCESS_TICK
SDL_AUDIO_NGAGE_PROCESS_PRIORITY
SDL_RENDER_SHOW_FPS
Adds functions to get current buffer address and pitch:
void *NGAGE_GetBackbufferAddress(void);
int NGAGE_GetBackbufferPitch(void);
---------
Co-authored-by: Michael Fitzmayer <mail@michael-fitzmayer.de>
Co-authored-by: Eddy Jansson <eloj@users.noreply.github.com>
commit 1ac0ae92247285714f50d07007bbb71d2c6d266d
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Tue May 5 18:26:51 2026 -0400
wayland: Unconditionally send an exposure event on window shown status
Some compositors send the frame callback as part of the initial configuration sequence, so the window may already be past the "waiting for frame" state. Ensure that the exposure event is always sent.
commit 8effeecb8d0f1ac98b633843103733a30a4b6cef
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Tue May 5 21:48:20 2026 +0200
cmake/sdlcpu: detect mips
PlayStation Portable uses MIPS32
commit fee8c94b5c7211dd04349470a6ff333f07ac0d99
Author: Evan Hemsley <2342303+thatcosmonaut@users.noreply.github.com>
Date: Tue May 5 12:55:16 2026 -0700
GPU: D3D12 stencil plane transition (#15519)
commit c7df6fe847b0cf0164567f1e9c9fa08b8a03e0f7
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Tue May 5 17:47:49 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit b8545fce54ba9d0c24836ff9ab5d5b0737d04f92
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Tue May 5 12:51:45 2026 -0400
x11: Disable the X Synchronization Extension by default
Under the right conditions, this extension can result is smoother resizing when rendering with OpenGL, however, it is known to cause problems in certain cases, such as when handling presentation externally.
Gate it behind a hint, and disable it by default. Developers can selectively enable it when they verify that they meet the criteria for using it, and that it behaves correctly in their apps/games.
commit f6f4664ed1c75663e71ab4e39f6de0909fcb5106
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue May 5 08:53:01 2026 -0700
Fixed rare cursor corruption on Windows
If the cursor was created with a temporary surface that was pointing at external memory, then when the cursor is used it might be referencing memory that had already been freed.
commit 93a5d33386ba867034d4ec09169325f8f5df3ce0
Author: Michael Fitzmayer <mail@michael-fitzmayer.de>
Date: Tue May 5 13:04:07 2026 +0200
[N-Gage] Rename variable to avoid warning that the declaration of free' shadows global declaration.
commit 922b872b4f3ea0fa5ae959040fe14157ac295449
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon May 4 23:43:34 2026 -0400
thread: Remove semaphore in thread creation.
This was added so that the new thread definitely has its threadid set, via
SDL_GetCurrentThreadID(), before SDL_CreatThread returns, but this broke
Emscripten, which can't wait on a newly-created thread, since the thread won't
start until a later mainloop iteration.
Now we have the creating thread set this id in SDL_SYS_CreateThread, where
platform-specific logic can figure out how to calculate the new thread's ID
from the parent thread, without using SDL_GetCurrentThreadID().
Fixes #15509.
commit 3c1636a9584e5ccaecd9371bdf92520ec39cd04e
Author: Nintorch <92302738+Nintorch@users.noreply.github.com>
Date: Mon May 4 20:41:48 2026 +0500
Fix JoyCon mappings on Android
commit c699512adcc139ec1a355ff97cb2e5dbab3c9ac2
Author: Nintorch <92302738+Nintorch@users.noreply.github.com>
Date: Mon May 4 00:35:34 2026 +0500
Add support for joystick motion sensors on Android
commit 3ee0439ae508671ec9e5dc54b4a3e59105ad6972
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sun May 3 17:31:37 2026 -0400
wayland: Pass the inverted flag for horizontal scroll events
Natural scrolling affects both axes, and the compositor may not send the vertical axis orientation if the frame has no vertical scroll motion, so purely horizontal events need to be flagged as inverted as well.
commit c805a4d6327dc33a8a9df0ccfc393967d10dade8
Author: Nintorch <92302738+Nintorch@users.noreply.github.com>
Date: Sun May 3 21:26:15 2026 +0500
Fix Xbox controller names in MFI joystick backend (#15499)
controller.vendorName returns a generic name for Xbox controllers ("Controller"), so we have to give them proper names.
commit 7629a5cf9add411269cd6ae1f3d6b18fd160beb1
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sat May 2 20:21:20 2026 +0300
SDL_test_memory.c: revised DWORD64 print
commit 4a52a5ee04cd5cd3e2757aa165b4cb7b96857c92
Author: Sam Lantinga <slouken@libsdl.org>
Date: Fri May 1 16:57:07 2026 -0700
Fixed crash on Windows when a controller is connected
commit e70f1bfc29aa0aa9a4c066725df48ab336067d73
Author: Igor <85039990+igorcafe@users.noreply.github.com>
Date: Fri May 1 18:01:13 2026 -0300
X11TK: fix late null-check causing segfault
The code is using `controls.window` before checking if it isn't null.
I found this bug by accident when I tried to run `SDL_ShowSimpleMessageBox`.
It first tried using Wayland with `zenity`, but since I don't have `zenity`, it fallbacked to `X11_ShowMessageBoxImpl`.
For some reason it couldn't create a window, maybe something related to XWayland, so `controls.window` was `NULL`.
commit 1cb61df1e51a715916233ba91e845c66a5a87e81
Author: Michael Fitzmayer <mail@michael-fitzmayer.de>
Date: Fri May 1 11:14:17 2026 +0200
[N-Gage] Fix image transformations, add color keying, and improve overall rendering performance. Fixes #15427
[N-Gage] Correct SDL_FLIP_HORIZONTAL for sprite sheet textures
- ApplyFlip: swap toward midpoint when dest == source to avoid
overwriting pixels before they are read
- CopyEx: restore original bitmap pixels after BitBlt so the texture
is not permanently mutated across frames
- CopyEx: extract srcrect sub-region before transforming so flip/
rotate/scale operate on the correct pixels, not the full texture
[N-Gage] Use scratch bitmap in CopyEx to avoid mutating source texture.
Replace the write-then-restore pattern on the source texture with a
persistent iScratchBitmap. The transform pipeline operates entirely
within iPixelBufferA/B; the final result is copied into iScratchBitmap
and BitBlt reads from there. The source texture is never written to.
[N-Gage] Fix Copy() for render-target textures by using direct BitBlt
Bypass pixel readback for SDL_TEXTUREACCESS_TARGET textures in CRenderer::Copy().
Reading raw pixels via DataAddress() on a server-side bitmap is unreliable; use
BitBlt directly instead.
[N-Gage] Implement color-key masking using Symbian's BitBltMasked.
This implementation works fine, but relies on a platform specific property. This isn't ideal.
Todo: Add SDL_PIXELFORMAT_ARGB4444 to the N-Gage's rendering back-end.
[N-Gage] Avoid using BitBltMasked to improve performance. Much better!
Write only non-color-key source pixels directly into the destination bitmap
preserving existing destination pixels wherever the color key matches.
This replaces BitBltMasked and avoids the cost of building an EGray2 mask.
[N-Gage] Remove redundant function call since we're not using BitBltMasked() anymore.
[N-Gage] Remove SDL_PROP_TEXTURE_NGAGE_COLOR_KEY_NUMBER
- Promote SDL_PIXELFORMAT_XRGB4444 to SDL_PIXELFORMAT_ARGB4444 instead.
- Remove now unused functions.
commit f0b89704e915bc0d678cec9efbf961cf979d1ba6
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Wed Apr 29 22:17:44 2026 +0200
stdinc: use _Countof in SDL_arraysize
_Countof is a compiler intrinsics that errors when using a pointer argument
commit c677c913a634a9ecf1e131f089fb31415382b722
Author: Cameron Gutman <aicommander@gmail.com>
Date: Thu Apr 30 21:57:50 2026 -0500
haptic: Enable gamepad haptic support under sdl2-compat
commit e9a6d7eda0bbd7c4468fc9b4e2a37e4e3b584985
Author: Sam Lantinga <slouken@libsdl.org>
Date: Thu Apr 30 19:55:24 2026 -0700
Fixed copyright on SDL_hidapi_steam_triton.c
Fixes https://github.com/libsdl-org/SDL/issues/15486
Closes https://github.com/libsdl-org/SDL/pull/15487
commit 41f079491a0e79b22441fd32a7c8ad91db237744
Author: Cameron Gutman <aicommander@gmail.com>
Date: Wed Apr 29 17:51:26 2026 -0500
pen: Fix enabling touch emulation while a pen is connected
commit 81cde11d1e680e2d8ba779377209f398a35c0c4c
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Wed Apr 29 20:30:14 2026 +0200
tests: fix test/emscripten/server.py when running without --map
commit 1492911c7d752e5dc73b836ca25490919b344508
Author: Jakub Wasilewski <wasyl@wasyl.eu>
Date: Wed Apr 29 10:26:35 2026 +0200
metal: Added missing lock in METAL_INTERNAL_PerformPendingDestroys.
Without this lock, a concurrent call to SDL_ReleaseGPUBuffer, SDL_ReleaseGPUTransferBuffer or SDL_ReleaseGPUTexture can cause one of the arrays to be reallocated while METAL_INTERNAL_PerformPendingDestroys is iterating over it, causing a bad day all around.
commit 1aa72247af95802d897dabd51b29311e87c41ae0
Author: Cameron Gutman <aicommander@gmail.com>
Date: Tue Apr 28 21:52:21 2026 -0500
pen: Only create touch emulation device when a pen is present
commit e1e6cbe6ecf78da703829c62ff5335e7e9a16774
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue Apr 28 17:26:11 2026 -0700
Disable accidentally enabled debug logging
commit 9235ac4efdbd175d0c217ca0fd1bc824ccb968a0
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Tue Apr 28 10:45:34 2026 -0400
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.
commit 40e60452ade1c82c3ce728ce4631f8824182f609
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Thu Apr 23 23:15:13 2026 -0400
android: Use enough zip64 format info to see APKs with files that are > 4gb.
commit bb4332bdc2ff32aa41bdb7354731ac1ef38f7d9e
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 20 20:18:45 2026 -0400
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.
commit 71d0d069edf49eaed63762ea0d593e7296cff357
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue Apr 28 15:31:10 2026 -0700
GameInput: don't say the device is present if we won't handle it
commit d5fca9628affff85fc7dd8dc8fb2e70a6e1957dd
Author: Sam Lantinga <slouken@libsdl.org>
Date: Tue Apr 28 14:10:04 2026 -0700
Don't use the fake HID endpoint for Xbox controllers on Windows
commit b40baf1532eb98b08b65cb9f51cd0e3e76be6459
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Tue Apr 28 19:11:35 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 7212ab1c2a12db7a81b1b13cc28e860cb9cfa138
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Tue Apr 28 08:08:15 2026 -0400
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.
commit 788bd816e7c3d90ba7eaa3b3703a384e1ef50483
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 14:53:45 2026 -0400
SDL_openxr.h: Another attempt to fix the wiki bridge.
commit 085447a56e889abfaa4317b2a9c6d0826774d26a
Author: Anonymous Maarten <anonymous.maarten@gmail.com>
Date: Mon Apr 27 00:58:38 2026 +0200
apple: add exports file
commit 364c8037f45b8b2110451575aca2c40f50d8a5c5
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Mon Apr 27 18:46:49 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 96a061e1b1ab2318ea841cd9a391ba70c7cabc34
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 14:42:10 2026 -0400
SDL_openxr.h: Wrap some non-SDL pieces in `!SDL_WIKI_DOCUMENTATION_SECTION`.
commit 6d9b470e84921a847bd641e02920efd81baa22bf
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 14:41:45 2026 -0400
SDL_openxr.h: tweak the category docs language slightly.
commit 30aeb330f24223f824f26b71cfd4bf9219c286c9
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Mon Apr 27 18:38:02 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit 66e98b5598d840b3e4d767ace145b197bc0a9962
Author: Cameron Gutman <aicommander@gmail.com>
Date: Fri Apr 24 22:52:17 2026 -0500
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.
commit b7726026f8fd9d5bf3c39a8566162db23f755e7d
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon Apr 27 10:18:25 2026 -0700
Fixed double-backspace with hardware keyboard on iOS
commit dcf05165d389af01d5680b66e2656c2cdc5a24ca
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon Apr 27 09:57:31 2026 -0700
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
commit 6f952a8e636b8c3173075ddf1fd9458489adedf3
Author: Sam Lantinga <slouken@libsdl.org>
Date: Mon Apr 27 10:06:00 2026 -0700
testime: use the correct properties when enabling text input
commit 73fc274ef7f96e181ec217f54ed74e0dca91b771
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Mon Apr 27 12:29:55 2026 -0400
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.
commit fe6c1f113402cbdf708e14533c18710f371b52de
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 11:46:15 2026 -0400
coreaudio: Patched to compile, again, on iOS.
commit 1226725e9ac1321614e1ecd0d7f245285bd73131
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Mon Apr 27 18:04:02 2026 +0300
docs/README-platforms.md: Add DOS.
[ci skip]
commit 62ea2968944b6eb709d0c945f21f0abb3f5bec9c
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 10:39:06 2026 -0400
coreaudio: Patched to compile on iOS.
commit a74722ed746a54f176a1fb44c8d9d1ae7db3d950
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 10:25:25 2026 -0400
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.
commit 0bf2fa89784344973bceaa6f6163f46885ebf8e6
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Mon Apr 27 09:33:46 2026 -0400
internal: Replace SDL_PUSH_ERROR with SDL_PushError.
Reference Issue #15458.
commit c46dfdba543195873c205f8a30957d1a50b99565
Author: SDL Wiki Bot <icculus-sdlwikibot@icculus.org>
Date: Mon Apr 27 04:32:58 2026 +0000
Sync SDL3 wiki -> header
[ci skip]
commit d5acd7f123f593a256124f313a47816c97532652
Author: Cameron Gutman <aicommander@gmail.com>
Date: Sun Apr 26 21:42:23 2026 -0500
atomic: Use __atomic_signal_fence() for SDL_CompilerBarrier()
This is the (slightly) more standard way to accomplish it.
commit 3308183dfaedceb7cabb861d6ddb1bbc528d6cca
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Mon Apr 27 05:30:14 2026 +0300
video, dos: silence -Wdangling-pointer warnings
commit 1023f48b5a403890ecd59cd862f2c373e2255a7b
Author: Ozkan Sezer <sezeroz@gmail.com>
Date: Sun Apr 26 21:12:14 2026 +0300
add missing newlines at end of dos sources.
commit c65c8093377cfa286854a3ff1bed9668b9d2a255
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sat Apr 25 11:32:19 2026 -0400
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.
commit 80a590507535da7403c3f75c958e7a45517ada4d
Author: Frank Praznik <frank.praznik@gmail.com>
Date: Sat Apr 25 11:07:39 2026 -0400
wayland: Change the non-native fullscreen mode scaling default to 'aspect'
commit 543a05bf08b8f07462458826b5a0a58e3b025384
Author: ShulkerSakura <50770360+ShulkerSakura@users.noreply.github.com>
Date: Sun Apr 26 22:45:06 2026 +0800
Add keychron Q3 blacklist (#15462)
commit 47d14491a6e89322b2a649cdbfb854fccce12cd3
Author: Sam Lantinga <slouken@libsdl.org>
Date: Sat Apr 25 17:10:54 2026 -0700
Fixed keyboard being hidden while being shown on Android
commit 8fb1c6e367620be931ef5b1477737e144c1c10c1
Author: Ryan C. Gordon <icculus@icculus.org>
Date: Sat Apr 25 15:26:22 2026 -0400
haiku: Don't strdup SDL_GetError()'s string before using it in SDL_SetError().
This isn't necessary anymore, after rece…
Co-authored-by: TrueCat17 <truecat17@gmail.com> Co-authored-by: Anonymous Maarten <anonymous.maarten@gmail.com> Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
This PR contains code from PR fix building on CYGWIN #15457 and PR Enables MSys2 MSYS environment to build SDL3 #15514
Fixes Cygwin building using native gcc.
Description
This PR is based on the PR #15457.
The warning reduction changes are very different in header "SDL_platform_defines.h".
The method to get "d3d12.h" to work is very different.
This PR adds Cygwin CI support and the CI run finishes
Existing Issue(s)
It might fix #15360
I did my testing with cmake/ninja under SDL3 the issue did it with cmake/makefiles