Commit Graph

12899 Commits

Author SHA1 Message Date
Ethan Lee
16f2037efd gpu: Add SDL_PROP_GPU_DEVICE_CREATE_METAL_ALLOW_MACFAMILY1 property 2026-01-25 09:09:08 -08:00
Madeline Whitmore
97b177c92f SDL GPU: Fix features not being enabled with Vulkan 1.1 (#14885)
Use pre-Vulkan 1.2 structs to request features from a Vulkan 1.1 instance.
2026-01-25 08:18:57 -08:00
Eddy Jansson
248223592a More prefer SDL_zero*()
Transform clearing of arrays into SDL_zeroa(), and
clearing through a T* with size(T) into SDL_zerop().

Extends commit 83fb7b6636.
2026-01-23 16:02:16 -08:00
Eddy Jansson
83fb7b6636 Prefer SDL_zero()/SDL_zerop()
Replace uses of 'SDL_memset(E, 0, sizeof(E))' and similar
with the SDL_zero()/SDL_zerop() macros.
2026-01-23 11:23:27 -08:00
Sam Lantinga
fe403220f0 Don't load libdecor if SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR is false
Fixes https://github.com/libsdl-org/SDL/issues/14887
2026-01-23 11:20:26 -08:00
Frank Praznik
79b40ad397 wayland: Don't try to set the seat cursor when no pointer object exists 2026-01-23 09:02:42 -05:00
Sam Lantinga
e0659d1956 Call dbus_message_set_no_reply() when not expecting a reply 2026-01-22 09:39:59 -08:00
Sam Lantinga
453d3e5c8c Retain the dbus reply when getting string results
The string result points at memory in the reply, so we can't unref that until the string is no longer needed.

Fixes https://github.com/libsdl-org/SDL/issues/14839
2026-01-22 09:39:59 -08:00
Simon McVittie
9ceb982a63 dummy: Only initialize evdev input devices in the evdev driver
This avoids some misleading error messages when running unit tests with
the dummy driver: on a typical desktop Linux system, it's normal for
opening keyboards and mouse in `/dev/input/*` to fail with `EACCES`,
and in container technologies that share `/sys` but not `/dev` with the
container, we can find that we fail to open them with `ENOENT`.

Resolves: https://github.com/libsdl-org/SDL/issues/14872
Signed-off-by: Simon McVittie <smcv@collabora.com>
2026-01-20 14:17:15 -08:00
Sam Lantinga
b1362f8a42 Fixed divide by zero handling Nintendo Switch 2 controller 2026-01-20 11:04:20 -08:00
Frank Praznik
4b83933298 wayland: More pointer related code deduplication 2026-01-20 13:50:40 -05:00
Aubrey Hesselgren
5c15d74394 Fix Horipad bluetooth gyro stutter issues using simulated sensor timing approach (based on packet rate observation)
By observation: wired is 250hz/4000ms, and bluetooth is 120hz/8333ms for IMU sensor.
2026-01-19 15:25:45 -08:00
Thour
124c5922aa Fix incorrect type in SDL_GetMice() and SDL_GetKeyboards() allocation (#14870) 2026-01-19 15:23:55 -08:00
Cameron Cawley
fa68a73788 Fix compiler warning in MSVC ARM64 builds 2026-01-19 10:16:35 -08:00
Wolf3s
0d845e8689 Fix the video size matching the renderer. 2026-01-19 10:10:33 -08:00
Cameron Cawley
07be29b625 Support 16-bit packed texture formats with the Vulkan renderer 2026-01-19 08:29:01 -08:00
Cameron Cawley
cd72f6b02e Fix B4G4R4A4_UNORM swizzle with the Metal GPU driver 2026-01-18 12:48:24 -08:00
Cameron Cawley
ab7d275113 Support 16-bit packed texture formats with the GPU renderer 2026-01-18 12:48:24 -08:00
Cameron Cawley
25583798a0 Fix mapping between surface and GPU pixel formats 2026-01-18 12:48:24 -08:00
Cameron Cawley
01d8e37a16 Support 16-bit packed texture formats with the Direct3D 12 renderer 2026-01-18 10:08:59 -08:00
Cameron Cawley
285147c627 Support 16-bit packed texture formats with the Direct3D 11 renderer 2026-01-18 10:08:59 -08:00
Sam Lantinga
3f0e0975d8 SDL_CreateGPURenderState() doesn't modify the createinfo parameter 2026-01-17 20:48:30 -08:00
ROllerozxa
064096bf61 Fix SDL_SetWindowIcon on singlethreaded Emscripten builds (#14850) 2026-01-17 20:38:36 -08:00
Frank Praznik
34b620c3f8 event: Only consider topmost windows when generating SDL_QUIT
Otherwise, the quit event can be sent prematurely. The topmost status must be queried and cached before sending the close request event, as the window may be destroyed in an event handler.
2026-01-17 15:52:04 -05:00
Frank Praznik
56e121f6e3 wayland: Dedup pointer entry handling code
Small cleanup, and needed for future work.
2026-01-17 10:40:14 -05:00
Cameron Cawley
4af4c97e44 Support 16-bit packed texture formats with the Metal renderer 2026-01-16 17:29:39 -08:00
Void Star Caster
b1aaa41921 gpu renderer: always pass tex_coord to fragment shader
As suggested in #14843, pass vertex tex_coord to vertex shader and to fragment shader even when no texture is bounded so they can be used by custom fragment shaders.
2026-01-16 16:22:06 -08:00
Cameron Cawley
1077486872 Support more texture formats with the Direct3D 9 renderer 2026-01-16 11:01:14 -08:00
Frank Praznik
202fdb2795 wayland: Only destroy tool frame callbacks if the cursor is the one being destroyed 2026-01-16 12:31:10 -05:00
Frank Praznik
35a80bdf1f wayland: Also check tools for cursor usage during cursor destruction 2026-01-16 11:39:35 -05:00
Frank Praznik
5e2977709b wayland: Don't clear the cursor on leave events
Stop the frame callback and flag the cursor for a refresh when the pointer re-enters the surface, but don't set a null cursor, as it may have already been set after entering a surface that is part of the window decorations, resulting in an unwanted invisible cursor.
2026-01-16 11:39:35 -05:00
Frank Praznik
55ba268e66 wayland: Don't process null leave events in the pointer frame handler
This can cause the cursor to become invisible when passing over libdecor surfaces.
2026-01-16 11:39:35 -05:00
William Horvath
f9395a766f thread: Use a flexible array member for "array" in SDL_TLSData.
Avoids UBSan warning (among other similar ones in SDL_thread.c):
src/thread/SDL_thread.c:109:13: runtime error: index 1 out of bounds for type 'struct (unnamed struct at src/thread/SDL_thread_c.h:70:5)[1]'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior src/thread/SDL_thread.c:109:13
2026-01-16 08:32:06 -08:00
Frank Praznik
e62d6a95b9 events: Raise keyboard keys before sending the focus lost message
Otherwise, the key raises may end up being ignored.
2026-01-15 15:02:43 -05:00
Cameron Cawley
02c9f2045b Fix touch screen display IDs on the 3DS 2026-01-14 15:06:57 -08:00
Sam Lantinga
77290f9788 You can't change the size of a window while in macOS fullscreen space 2026-01-14 15:05:14 -08:00
Frank Praznik
2a0d04613c wayland: Increase the read timeout when reading from SDL_GetClipboardData()
The default timeout value of 14ms is ideal when querying clipboard data while polling events, to prevent excessive lag if the source takes a long time to respond, however, when reading from SDL_GetClipboardData(), the timeout can be too short if a large amount of data must be processed or transferred. SDL_GetClipboardData() is not called while polling events, so using a longer read timeout to greatly increase the chance of success is acceptable.

Use a 5 second timeout when reading from SDL_GetClipboardData() and GetPrimarySelectionText() to greatly increase the chances of a successful read, even if the requested format requires heavy processing.
2026-01-14 11:00:50 -05:00
Sam Lantinga
206989a22d Revert "Fix duplicate event dispatch in Cocoa event pump"
This reverts commit dd52dd8995.

After that commit mouse input is not received and the window cannot be closed or resized.

Fixes https://github.com/libsdl-org/SDL/issues/14818
2026-01-13 16:23:41 -08:00
Sam Lantinga
54fdeb9e79 Added support for the Razer Raiju V5 Pro in wireless mode 2026-01-13 16:23:05 -08:00
Sam Lantinga
015d0fc2e4 Added support for the Razer Raiju V5 Pro 2026-01-13 15:48:12 -08:00
Frank Praznik
2212c4f085 wayland: Send exposure events when deferring resize events
Clients that defer repainting may hang in SDL_WaitEvent() while interactively resizing if they only redraw when an appropriate event is received, as resizing defers the new state until a frame callback is received, and if too much time elapsed since the last redraw, the last frame callback may have already occurred. Send an exposure event when deferring resizes so the client will make forward progress and trigger a frame callback to ack the pending configure state.
2026-01-12 19:22:38 -05:00
Edgar San Martin, Jr.
7c9ae67706 Add write buffering to Windows SDL_IOStream (#12424) (#14794) 2026-01-12 11:39:06 -08:00
Qiu Qiang
dd52dd8995 Fix duplicate event dispatch in Cocoa event pump
Prevent mouse and keyboard events from being processed twice by
skipping [super sendEvent:] for events SDL has already handled via
Cocoa_DispatchEvent. Other event types still go through AppKit's
normal handling.
2026-01-12 11:29:45 -08:00
Frank Praznik
ca537d651b wayland: Dispatch pointer leave when destroying the pointer or a surface
No pointer frame event will occur when synthesizing a leave event, so dispatch immediately.
2026-01-11 11:37:03 -05:00
Frank Praznik
55acc0b829 joystick/win32: Fix function return type mismatch
Fixes #14804
2026-01-11 10:56:06 -05:00
Ethan Lee
5b009640fe events: Buildfix for targets with C++ build units 2026-01-09 14:50:56 -05:00
Frank Praznik
d102022c95 wayland: Handle all mouse state in a frame
The hybrid handling can still result in cases where a final event is dropped when the pointer leaves a surface. The spec says that all pointer events should be handled within a frame, so, do so.
2026-01-09 13:42:15 -05:00
Katharine Chui
2bb463921f haptic hidapi: maintain effects array for external checking 2026-01-08 14:05:01 -08:00
Ozkan Sezer
ab900a389f stb_image.h (stbi__start_mem): initialize io.skip and io.eof to NULL
Patch authored by @NBickford-NV: https://github.com/miniupnp/stb/pull/1
c.f.: https://github.com/nothings/stb/pull/1751
2026-01-08 23:21:56 +03:00
Sam Lantinga
f369e804e2 Fixed crash when the broken EZFRD64.DLL is present
Fixes https://github.com/ppy/osu/issues/13634
2026-01-07 17:11:57 -08:00