Commit Graph

21225 Commits

Author SHA1 Message Date
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
Anonymous Maarten
ce5e46c37d Add SDL_(Get|Set)iSurfaceClipRect automation test
Co-authored-by: Sam Lantinga <slouken@libsdl.org>
(cherry picked from commit a65111bd2d)
2025-11-24 00:02:36 +01: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
SDL Wiki Bot
fed80a0d41 Sync SDL3 wiki -> header
[ci skip]
2025-11-21 18:57:12 +00:00
Esme
b984846dd0 windows: Add property mapping displayID to HMONITOR. (#14494) 2025-11-21 10:55:49 -08:00
Sam Lantinga
67728a5450 Allow resizing test applications on iPadOS 2025-11-21 09:31:10 -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
029746a3d4 README-emscripten: Added some initial notes about customizing index.html.
Fixes #14485.
2025-11-21 10:25:34 -05:00
Ryan C. Gordon
62a7ac507a README-emscripten: updated notes on audio.
This still had a bunch of text that wasn't updated for SDL3's ability to deal
with pre-user-interaction pages. Same idea, but changed text that suggested
you have to wait to open the audio device.
2025-11-21 10:12:53 -05:00
SDL Wiki Bot
faf1e770dd Sync SDL3 wiki -> header
[ci skip]
2025-11-21 14:41:25 +00:00
Ryan C. Gordon
22df7c66ed wikiheaders: Treat docs/INTRO-* files the same way as the README files.
Closes #14261.
2025-11-21 09:36:56 -05:00
SDL Wiki Bot
d9230f4796 Sync SDL3 wiki -> header
[ci skip]
2025-11-21 13:14:42 +00:00
Ryan C. Gordon
0f76744828 pen: Updated documentation to meet current expectations and realities. 2025-11-21 08:13:16 -05: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
Ryan C. Gordon
0cc3354731 wayland: Fixed pen button input (was losing button up events). 2025-11-21 08:13:16 -05:00
Edgar San Martin, Jr.
be15de6baa emscripten: Add SDL_SetWindowIcon implementation. (#14490) 2025-11-20 20:16:18 -08:00
Sam Lantinga
082848e945 Use consistent values for the video mode refresh rate
Fixes https://github.com/libsdl-org/SDL/issues/14468
2025-11-20 17:07:47 -08:00
eafton
36976ecb43 X11TK: Introduce Thai support and rewrite/cleanup messagebox positioning code (#14474) 2025-11-20 15:26:46 -08:00
Sam Lantinga
92eaa34277 cocoa: release any mouse buttons not pressed when gaining focus
Fixes https://github.com/libsdl-org/SDL/issues/13134
2025-11-20 13:51:23 -08:00
William Horvath
a7ab3a604b Print the full 64-bit timestamp in SDL_GetEventDescription().
Instead of wrapping at UINT_MAX.
2025-11-20 13:35:28 -08:00
Sam Lantinga
168e4eb532 Fixed typo (thanks @Clownacy!) 2025-11-20 09:47:28 -08:00
Sam Lantinga
a9a24ac000 Fixed the KingKong2 PRO Controller failing to initialize over Bluetooth 2025-11-20 09:24:07 -08:00
Frank Praznik
4a769b6475 wayland: Remove unused function parameters
Input device add/remove events are dispatched unconditionally now, so the boolean parameters that control whether events are sent are unused.
2025-11-20 11:29:39 -05:00
Sam Lantinga
61bf7087f5 Fixed build warnings with Visual Studio 2025-11-19 17:02:33 -08:00
Sam Lantinga
9f444b3981 Fixed initializing EVORETRO GameCube adapters
The HID device needs to be closed while enabling input reports over USB
2025-11-19 16:11:18 -08:00
Susko3
2ef005afe5 Fix WM_SYSKEYDOWN not being trapped by IME message handling
This would cause Alt + <something> not being trapped if handled by the system IME.
2025-11-19 13:39:46 -08:00
Sam Lantinga
d50cda3247 Added mappings for PlayStation VR2 Sense Controllers 2025-11-19 11:48:09 -08:00
Sam Lantinga
fa3467a94d Use the product category if the vendorName isn't available 2025-11-19 11:39:20 -08:00
Sam Lantinga
ef0ae4c903 Revert "fix: use productCategory instead of vendorName for joy name for apple driver"
This reverts commit 964bedfdd9.

The vendorName is more expressive and lets the user distinguish between different controllers of the same type, e.g. "PlayStation VR2 Sense Controller (R)" and "PlayStation VR2 Sense Controller (L)" vs "Spatial Controller"

If the product category is necessary, we can add a property to store that as additional information on the controller.
2025-11-19 11:35:38 -08:00
Sam Lantinga
6d60cc65cf Note that SDL_PLATFORM_IOS is defined for visionOS 2025-11-19 11:28:28 -08:00
Sam Lantinga
0c5655940c SDL_GetPlatform() returns "visionOS" on visionOS 2025-11-19 11:27:27 -08:00
Sam Lantinga
1209abf9dc Fixed macOS build 2025-11-19 10:47:31 -08:00
Sam Lantinga
a1ade13f1e Enable gamepad events on visionOS
Normally the gamepad is used for navigation on visionOS, but when the controller subsystem is enabled we want to receive gamepad input as gamepad events instead.
2025-11-19 10:37:33 -08:00
Sam Lantinga
1e5cbbc1d0 checkkeys: clarify that SDL_HINT_WINDOWS_RAW_KEYBOARD isn't needed 2025-11-19 08:54:43 -08:00
Frank Praznik
168f78b8b7 wayland: Free the cursors before stopping the event thread
An active cursor being destroyed may still have a frame callback referencing the thread queue, so clean it up before destroying the thread queue to ensure that no references to the queue remain when it is destroyed.
2025-11-18 20:36:38 -05:00
Sam Lantinga
cc768f3e88 Allow opening asset paths starting with "./"
Fixes https://github.com/libsdl-org/SDL/issues/13933
2025-11-18 15:29:04 -08:00
Sam Lantinga
908216bbae Set the requested window size on visionOS 2025-11-18 11:06:10 -08:00
Sam Lantinga
47360a9a46 The pixel density on Apple Vision Pro is 2.0 2025-11-18 11:05:55 -08:00
Frank Praznik
64bf432beb wayland: Silence a warning if the event thread exits abnormally
Clean up the termination callback if the flush returns with an unrecoverable error to avoid a "queue destroyed while proxies still attached" warning.
2025-11-18 12:50:23 -05:00