Commit Graph

12711 Commits

Author SHA1 Message Date
Sam Lantinga
f92435cdb9 Vulkan windows get the Vulkan GPU backend in the gpu renderer by default 2025-12-02 07:29:33 -08:00
Ethan Lee
dedab7b72c cocoa: Add SDL_HINT_MAC_PRESS_AND_HOLD hint 2025-12-02 10:24:39 -05:00
Sam Lantinga
e1edeab0c9 Added touch subsystem locking
Fixes https://github.com/libsdl-org/SDL/issues/14563
2025-12-02 01:11:38 -08:00
Sam Lantinga
22decf4783 Fixed some clang thread-safety warnings 2025-12-02 01:11:38 -08:00
Ryan C. Gordon
737be31c63 emscripten: Prevent fullscreen transitions while one is already in progress.
Fixes #14533.
2025-12-01 23:33:30 -05:00
Cameron Gutman
6d99204a82 quit: don't call signal() if we're using sigaction()
At best, this is a no-op.

At worst, it might:
 - Clobber a signal handler someone registered after us
 - Overwrite the signal mask or flags
 - Cause unregistration to fail (sigaction() isn't guaranteed to return the exact pointer passed to signal())
2025-12-01 17:31:55 -06:00
Evan Hemsley
2b1904a849 GPU: Prefer D3D12 over Vulkan when available 2025-12-01 17:50:23 -05:00
Ryan C. Gordon
c1db2b4bb0 Revert "hints: Added SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC."
Revert "Sync SDL3 wiki -> header"

This reverts commits b7c8b2f29a and
29213efa65.
2025-12-01 14:39:48 -05:00
unknown
b7c8b2f29a hints: Added SDL_HINT_AUDIO_ENFORCE_MINIMUM_SPEC.
Fixes #14426.
2025-11-30 23:26:02 -05:00
Sam Lantinga
1c46c8a3dc Set SDL_MAIN_AVAILABLE for all platforms 2025-11-30 12:15:48 -08:00
Sam Lantinga
778f70c906 Clarify which thread is the main thread
If video is initialized, the main thread is the one that initialized video, otherwise if events are initialized, the main thread is the thread that initialized events, otherwise the main thread is the one that called the main function.

Fixes https://github.com/libsdl-org/SDL/issues/14511
2025-11-30 12:15:48 -08:00
Ozkan Sezer
9c6c2387b9 stb_image.h: apply patches from mainstream PRs 1839, 1862 and 1863.
Patches authored by @NBickford-NV to fix mainstream issues 1838, 1860,
1861.
2025-11-30 23:11:20 +03:00
Sam Lantinga
5e9163592f Correct the sensor axis ordering with the Linux Nintendo driver
Fixes https://github.com/libsdl-org/SDL/issues/14552
2025-11-30 11:35:36 -08:00
Sam Lantinga
b9d794bb37 Fixed pen mouse motion when SDL_HINT_PEN_MOUSE_EVENTS is off (thanks @frenzibyte!)
Fixes https://github.com/libsdl-org/SDL/issues/14554
2025-11-30 10:55:47 -08:00
Salman Alshamrani
7af479bc53 Fix iOS text input not working with password integration 2 2025-11-30 10:30:06 -08:00
Amelia Clarke
defd7895da events: fix SDL_PeepEvents() returning 0 on error
Signed-off-by: Amelia Clarke <selene@perilune.dev>
2025-11-28 07:41:30 -08:00
Sam Lantinga
fdcd548612 Added SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER
This lets applications choose which scene their windows are being created in. For example one window might be video output in a scene with a session role of UIWindowSceneSessionRoleExternalDisplayNonInteractive, and video controls in a scene with a session role of UIWindowSceneSessionRoleApplication.
2025-11-26 12:37:58 -08:00
Sam Lantinga
54b15532d3 Set window controller interaction on all windows
We should update all windows, not just the ones in the active scene
2025-11-26 11:50:54 -08:00
Anonymous Maarten
eda8d1d842 JNI_Unload must return the JNI version needed by the native library 2025-11-26 14:04:02 +01:00
Sam Lantinga
52a4366e54 x11: don't grab the pointer while buttons are pressed
Grabbing the mouse interrupts touch events in progress, so if someone
enables relative mode while a button is pressed, wait for the button to
be released before grabbing the mouse.
2025-11-25 14:34:58 -08:00
Ryan C. Gordon
9b348ef6e8 android: Better parsing of command line arguments.
Reference Issue #14510.
2025-11-25 15:29:48 -05:00
Ryan C. Gordon
da863ff5f9 uikit: Don't copy argv; the original lives the whole time we need it.
Reference Issue #14510.
2025-11-25 15:29:31 -05:00
Antti Ala-Fossi
29f3844b01 Fix assert in SDL_BeginGPURenderPass 2025-11-25 10:46:53 -08:00
Sam Lantinga
74653b3cd5 Send the normal sensor data for the right Joy-Con controller in combined mode 2025-11-25 10:38:42 -08:00
Sam Lantinga
24fe3c48a0 Fixed events for windows that have had their window proc hooked at creation time 2025-11-24 19:29:13 -08:00
Sam Lantinga
55a566a6b4 Steam expects the gyro data to come before the accelerometer data 2025-11-24 18:04:46 -08:00
Anonymous Maarten
e221905195 Fix check_stdlib_usage.py libc call matching
It now matches libc usage inside statements,
and skips libc-like usage in strings or as struct members.
2025-11-25 01:07:10 +01:00
Sam Lantinga
9896dc18e7 Fixed setting SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER for the initial display 2025-11-24 13:38:21 -08:00
Sam Lantinga
8fa93d64ab Reset the window icon when returning from fullscreen mode
Fixes https://github.com/libsdl-org/SDL/issues/14522
2025-11-24 13:28:36 -08:00
Sam Lantinga
56269cd010 Support PNG icons in the SDL test code 2025-11-24 13:16:16 -08:00
Ryan C. Gordon
4e79d2ad64 blit: Check MSVC's _M_ARM64 define in addition to __aarch64__.
Reference Issue #14519.
2025-11-24 23:56:04 +03:00
Sam Lantinga
6534345d9a Only process events for the window being created at creation time
Fixes https://github.com/libsdl-org/SDL/issues/14524
2025-11-24 12:47:31 -08:00
Ryan C. Gordon
7f0d0d0046 blit: Check MSVC's _M_ARM64 define in addition to __aarch64__.
Reference Issue #14519.
2025-11-24 13:37:10 -05:00
Ryan C. Gordon
15f98b2a61 blit: Change ifdefs on NEON functions that use an aarch64-specific opcode.
Fixes #14519.
2025-11-24 10:32:30 -05:00
Ryan C. Gordon
17ab859907 main: Unify command line handling between standard Windows and GDK targets.
Reference Issue #14510.
2025-11-24 10:04:09 -05:00
Ryan C. Gordon
ff44bad9bd main: Restored lost call to SDL_SetMainReady() in Windows SDL_RunApp(). 2025-11-24 01:39:34 -05:00
Ethan Lee
54ef731534 video: Explicitly call DestroyWindowTexture when destroying a window.
This prevents some recursion issues with hashtables, as described in #14499.
2025-11-24 01:25:19 -05:00
Ryan C. Gordon
a37d3f96f4 main: SDL_RunApp now explicitly handles NULL argv in all implementations.
It'll usually replace it with `{ "SDL_app", NULL }`, but things like Win32
can query the OS for the original command line arguments.

This allows apps/scripting languages that provide their own entry points to
use SDL_RunApp and not have to worry about how to compose an argv array on
things like Windows, when SDL was going to do it for them anyhow.

Most things won't experience any change with this commit, including apps that
that want extra control but originate in a standard main()-style entry point
and can just pass the existing argc/argv through to SDL_RunApp.

Windows isn't addressed here, since a previous commit already updated it.
GDK has a different fix here, but we'll unify that in a later commit.

Closes #12676.
2025-11-23 23:38:41 -05:00
Ryan C. Gordon
7d5ec38953 main: Restore MINGW32_FORCEALIGN to SDL_RunApp on Windows. 2025-11-23 17:05:31 -05:00
Sam Lantinga
c0a2ae2a4a opengles2: fixed swapped colors when using indexed textures 2025-11-23 11:38:35 -08:00
Ryan C. Gordon
7388054fa2 main: Restore public domain comment in Windows code.
This, strictly speaking, doesn't _need_ to be public domain any more, since
SDL3 no longer inserts this code into apps via a static SDL_main library; it's
just part of the normal zlib-licensed SDL library and called into through a
well-defined entry point at startup, now.

But removing a public domain notice isn't the done thing, so we'll leave it in.

(To a related point: even if others have rewritten good portions of this code,
they're doing it under the assumption that this specific file has a public
domain license.)
2025-11-23 13:41:08 -05:00
Carl Åstholm
d0e70c37ab main: Rewrite the Windows implementation of SDL_RunApp()
This new implementation only parses the command line into an argv when
the provided argv is NULL. This lets programs that don't want to/can't
include `SDL_main.h` to do their own custom argument processing before
explicitly calling `SDL_RunApp()` without having SDL clobber the argv.

If the user includes `SDL_main.h` as normal, the behavior remains the
same as before (because `SDL_main_impl.h` passes a NULL argv).

In addition, this new implementation performs fewer allocations and no
longer leaks on failure.
2025-11-23 13:40:13 -05:00
Sam Lantinga
f0d958d850 Validate parameters to SDL_ReadStorageFile() and SDL_WriteStorageFile() 2025-11-22 18:41:30 -08:00
luckyxxl
6a1218c1cc Fix missing whitespace in surface extension missing error messages 2025-11-22 08:00:45 -08:00
Sam Lantinga
1fc093491a vulkan gpu: set the sample count for depth prepass
Fixes https://github.com/libsdl-org/SDL/issues/14500
2025-11-22 07:53:16 -08:00
Esme
b984846dd0 windows: Add property mapping displayID to HMONITOR. (#14494) 2025-11-21 10:55:49 -08:00
William Horvath
4b0514f087 Make use of GetQueueStatus' result in the Windows raw input loop.
Instead of only using it for the side effect of making MsgWaitForMultipleObjects block on the next call.

This has the added benefit of avoiding an extra MsgWaitForMultipleObjects call if there was actually new raw input in the queue already.
2025-11-21 08:28:09 -08:00
Ryan C. Gordon
3dee60d65f pen: Only allow one pen on Emscripten.
Same deal as the current Windows code: this "fixes" proximity but limits you
to a single pen device. But this is probably okay for most reasonable use
cases.
2025-11-21 08:13:16 -05:00
Ryan C. Gordon
06583ce421 pen: Only allow one pen on Windows.
This "fixes" proximity but limits you to a single pen device. But this is
probably okay for most reasonable use cases.
2025-11-21 08:13:16 -05:00
Ryan C. Gordon
99d7dad7e6 pen: Dramatic improvements to proximity information.
Now everything will attempt to track pens through proximity changes (instead
of removing the pen entirely). testpen.c has been updated to reflect this.

Some platforms and devices are better at this than others, but this seems like
a significant usability improvement across the board.

Fixes #12992.
2025-11-21 08:13:16 -05:00