Commit Graph

21185 Commits

Author SHA1 Message Date
Sam Lantinga
bc68c1c920 Fixed conflict when linking both SDL and hidapi statically
Closes https://github.com/libsdl-org/SDL/pull/14772
2026-01-06 06:10:39 -08:00
Anonymous Maarten
cd31381185 cmake: rpi videocore needs brcmegl as well 2026-01-05 23:45:32 +01:00
Anonymous Maarten
d73e74f9bf cmake: add SDL_FULL_VERSION target property containing full SDL version 2026-01-05 23:34:46 +01:00
Mathieu Eyraud
c9baf208bd Fix Mouse button index 2026-01-05 16:07:21 -05:00
Frank Praznik
fab42a1432 wayland: Check focus when dispatching relative motion
In rare cases, a leave event can be grouped with relative motion in a frame. Ensure a valid focus window when dispatching relative motion.
2026-01-05 13:43:35 -05:00
Frank Praznik
8a2fbef5b2 wayland: Define the magic values for stylus buttons
Use the Linux defines if available, and if not, define the buttons with the rest of the values, as is done for mouse buttons.
2026-01-05 11:57:00 -05:00
Katharine Chui
6c2f9bc41e hidapi: Disable hidapi LG4FF on windows (#14762)
hid.dll simply cannot send 7 bytes reports unlike other platforms

It enforces full length repots of 17 from the device's descriptor,
which does not work on the device.

This breaks ffb and led control, so we disable this by default on
windows.
2026-01-05 08:14:26 -08:00
Sam Lantinga
c742038aa9 Don't call SDL_Gtk_Quit() on private platforms 2026-01-05 08:08:33 -08:00
Sam Lantinga
ce6a6d1b39 Fixed handling status changes in the FlyDigi controller driver 2026-01-05 08:00:03 -08:00
Ethan Lee
b12a88af76 render: Add support for private-platform shaders in GPU backend 2026-01-05 09:48:34 -05:00
Lucas Murray
cced3ce8b9 GPU: Add error message to Vulkan buffer creation error path 2026-01-04 15:17:53 -08:00
SDL Wiki Bot
6a449ae1f3 Sync SDL3 wiki -> header
[ci skip]
2026-01-04 22:26:46 +00:00
Sam Lantinga
726a94efa9 Use full names of SDL functions to fix wiki links 2026-01-04 14:24:32 -08:00
Sam Lantinga
504041a1ba Fixed building with Xcode 15.4
Fixes https://github.com/libsdl-org/SDL/issues/14740
2026-01-03 08:03:44 -08:00
Frank Praznik
24156f5471 pipewire: Check for the audio service when determining driver preference
Wireplumber now exposes a list of session services, so check the "session.services" property for an "audio" entry to determine whether Pipewire is configured for audio playback/capture.
2026-01-02 22:00:27 -05:00
Qiu Qiang
3ee8d1406c Cache CGDisplayPixelsHigh result on macOS to reduce IPC overhead
CGDisplayPixelsHigh(kCGDirectMainDisplay) involves an IPC call to the
Window Server on each invocation. Cache the main display height in
SDL_CocoaVideoData and update it only when display configuration changes,
reducing overhead during high-frequency mouse event processing.
2026-01-02 12:29:02 -08:00
Ethan Lee
91f22b15cd ci: Add steamrt4 workflows 2026-01-02 12:18:43 -05:00
Sam Lantinga
7edcc413e8 Update the iOS Xcode build requirements 2026-01-02 08:53:04 -08:00
Sam Lantinga
a0307589bd iOS: if the file doesn't exist in the pref path, use the current directory
Fixes https://github.com/libsdl-org/SDL/issues/14743
2026-01-02 08:19:28 -08:00
Joshua Vandaële
4a29b6a651 Fix dynamic library handling for LibUSB
`target_get_dynamic_library` should not be called if `SDL_HIDAPI_LIBUSB_SHARED` is set to OFF, it otherwise causes a warning at best, or a build failure if libusb is provided by a parent project and not installed on the system
2026-01-02 07:39:30 -08:00
Ethan Lee
f472f93db8 gpu: D3D12 uploads should also factor in block size for height, not just width.
It turns out the reason this function was having so many overread issues was because our row copies were wrong - for compressed images we also need to reduce the row count based on the block size, similar to what we already do for pitch calculation - these copies are byte copies, not pixel copies!
2026-01-02 07:37:30 -08:00
Kadir
cbcc565ca9 Add ProGuard rule for joystickSetLED method in SDLControllerManager 2026-01-02 07:30:36 -08:00
Zack Middleton
6247568a1b Improve hint documentation 2026-01-02 02:51:41 -05:00
Sam Lantinga
ce0da58755 Made udev hwdb functionality optional 2026-01-01 15:39:00 -08:00
Sam Lantinga
4984eb8c16 Use udev to get the manufacturer name if possible (thanks gdb!) 2026-01-01 15:39:00 -08:00
Brad Smith
1d51671cbe cmake: Enable Vulkan support on OpenBSD 2026-01-01 11:44:50 -08:00
SDL Wiki Bot
165bfd3e83 Sync SDL3 wiki -> header
[ci skip]
2026-01-01 19:18:39 +00:00
Sam Lantinga
5f086e7623 Updated copyright for 2026 2026-01-01 09:40:08 -08:00
Anonymous Maarten
fc4f45f0e3 Updated to version 3.5.0 for development 2026-01-01 17:30:41 +01:00
Sam Lantinga
d15ecb21be Updated to version 3.4.1 for development 2025-12-31 18:18:45 -08:00
Sam Lantinga
a962f40bbb Updated to version 3.4.0 for release release-3.4.0 2025-12-31 16:43:54 -08:00
Frank Praznik
cac2460623 x11: Don't dedup move/size events
The event core will do so automatically, and this may end up dropping events in rare cases when exiting fullscreen if an event with the final bordered window size is sent before the event notifying that the borders have come back on.
2025-12-31 17:55:32 -05:00
Ryan C. Gordon
25e33948af emscripten: Handle mouse button events more correctly.
Don't decide if the button is pressed by the `buttons` bitmask, but rather by
event type. On macOS, the trackpad might produce a mousedown event with taps
instead of full clicks--if tapping is enabled in System Preferences--and in
this case might not set the flag in the bitmask.

Fixes #14640.
2025-12-31 17:23:42 -05:00
Sam Lantinga
9698e20399 gpu renderer: fixed memory leak when resizing the backbuffer
Fixes https://github.com/libsdl-org/SDL/issues/14734
2025-12-31 08:00:26 -08:00
Sam Lantinga
0ac6f972f9 Added enhanced support for the Flydigi Vader 5 Pro controller 2025-12-31 07:46:56 -08:00
Anonymous Maarten
d7a2d007d0 Remove superfluous comma from SDL_missing_dependency calls 2025-12-31 04:23:27 +01:00
Frank Praznik
cb4f33b644 gpu: Use the window event watcher list for Vulkan and D3D12
Events won't be delivered to the regular event watcher list callbacks if a client event filter discards events. Use the special window event watcher list to watch for resizes in the GPU renderers, as events are delivered to this list before a client can potentially discard them.
2025-12-30 22:18:19 -05:00
Ryan C. Gordon
4d8f84f161 timer: Use the emscripten-specific code on Emscripten, even with threading.
Fixes #14640.
2025-12-30 18:57:55 -05:00
dwillbarron
618eb57519 DirectInput FFB: Calculate appropriate update flags (#14570)
Anecdotally, some force-feedback wheels have been reported to experience a
reduced "definition", "texture", "precision", or "je ne sais quoi", which
appears to be caused by sending more update flags than necessary to
DirectInput.

This may be related to the fact that there are two USB PID packets that are
sent when updating a device: One contains the "general" force data, and the
other contains the "type-specific" data. My speculation is that many wheels
expect to only receive the latter, and misbehave when receiving both.

This has been tested and validated anecdotally by others who have received
a hacked-together version of PCSX2 that corrects the flags sent to DirectInput,
who noted a significant improvement in the "feeling" of the FFB effects.

The only way to validate this at a technical level is to grab a wheel that uses
the "generic" DirectInput FFB drivers (which map nearly 1:1 with the USB PID
specification), and inspect the USB packets (e.g. with USBPcap) to check whether
redundant data is being sent.
2025-12-30 14:43:49 -08:00
Sam Lantinga
128b9260ec Added SDL_HINT_HIDAPI_LIBUSB_GAMECUBE
Fixes https://github.com/libsdl-org/SDL/issues/14682
2025-12-30 14:14:51 -08:00
Ryan C. Gordon
1a27b5b838 emscripten: set window->w and ->h when creating with external css sizing.
Fixes #14711.
2025-12-30 16:56:45 -05:00
Ryan C. Gordon
7d66d3271b emscriptenaudio: Don't force reset SDL3.audio_recording/audio_playback.
Otherwise, opening devices for recording and playback at the same time will
cause problems.
2025-12-30 15:40:25 -05:00
Ryan C. Gordon
b681862f14 emscripten: Don't pass an argument to MAIN_THREAD_EM_ASM_INT we don't use.
This upsets things, because you end up calling a javascript function with
more arguments than it expects, and if asserts are enabled, Emscripten notices
this and aborts the program when you hit this code.

Reference Issue #14670.
2025-12-30 15:40:25 -05:00
Eddy Jansson
3d354eeaad Prefer SDL_arraysize()
Replace uses of (sizeof(arr)/sizeof(arr[0]), and similar,
with the SDL_arraysize() macro.
2025-12-30 12:22:03 -08:00
Sam Lantinga
d33642b710 Filter libusb devices early in enumeration
Some device drivers crash if you query things like manufacturer and product name, so make sure we only touch devices that we're really interested in.
2025-12-30 10:52:56 -08:00
Frank Praznik
95ac0ff4d6 wayland: Center non-square icon images
Center icon images instead of scaling to preserve the aspect ratio.
2025-12-29 13:35:18 -05:00
MAJigsaw77
cb04dcd6f8 android: Add RGB LED support for joysticks. 2025-12-29 10:32:02 -08:00
Frank Praznik
4fcb92e0df wayland: Scale non-square icon images
Wayland icons must be square, so scale non-square images to fit a square region instead of failing. This matches X11 behavior.

A warning that the image will be scaled will be logged.
2025-12-29 12:56:42 -05:00
Sam Lantinga
48d6c70f2c Revert "Added note for migrating SDL2 code using SDL_ThreadID()"
This reverts commit becd08f376.
2025-12-29 09:50:18 -08:00
Sam Lantinga
d10fe8bf2f Added a Linux mapping for the Nacon GC100 controller (thanks @elkabyliano!) 2025-12-29 09:43:47 -08:00