Commit Graph

22522 Commits

Author SHA1 Message Date
Cameron Cawley
79a4ea1c54 Improve implementation of GetClosestSupportedFormat (#15577)
* Indexed textures are now used for <8bpp surfaces and for indexed surfaces with transparency.
* If the software renderer is using RGB565 or BGR565, it now successfully detects a suitable 32-bit alpha format for converting the colour key.
* Matching pixel layouts are prioritized rather than just the number of bytes per pixel.
2026-09-01 15:14:44 -07:00
Brenton Bostick
46a942a3e3 fix typo 2026-09-01 11:23:57 -07:00
Ryan C. Gordon
22e42e6e1e aaudio: Make input preset into a hint, don't set it by default.
Fixes #16130.
Reference Issue #13402.
2026-09-01 14:03:24 -04:00
Ethan Lee
c5f07f0990 gpu: Return early when attempting to bind 0 samplers.
This is a common occurrence for vertex shaders specifically, and allows backends
to not have to handle this edge case every time.
2026-09-01 08:25:20 -04:00
SDL Wiki Bot
9e6f0180a0 Sync SDL3 wiki -> header
[ci skip]
2026-08-31 17:34:01 +00:00
Ryan C. Gordon
fd28dc9d56 PULL_REQUEST_TEMPLATE.md: "Zlib" should not be capitalized. 2026-08-31 13:27:23 -04:00
Ryan C. Gordon
83ab835bfd AGENTS.md: Updated text with latest policy revisions.
Reference Issue #15350.
2026-08-31 13:27:23 -04:00
Frank Praznik
2ec0b24b54 x11: Only position the fullscreen window if not on the target display
Entering fullscreen and moving the window can be a racy operation on some desktops, and isn't needed when the window is already on the target display, so only do it when necessary.
2026-08-31 13:08:42 -04:00
Sam Lantinga
70e9cc86dd Don't use the HIDAPI driver for the Tarantula 8K controller with stock firmware
This controller needs a firmware update before we can interpret its reports.
2026-08-31 09:35:51 -07:00
Frank Praznik
013844b003 cocoa: Convert popup window coordinates to global when adjusting the pointer offset
Fixes a regression in 958c4cbf0d
2026-08-31 11:58:59 -04:00
Anonymous Maarten
46498bc247 ci: run controller on ubuntu-slim 2026-08-29 19:18:57 +02:00
Ryan C. Gordon
c71abd0860 bmp: Correctly load RLE-encoded bitmaps with irregular widths.
(Such as a 4-bpp image--two pixels per byte--with an odd number of pixels.)

Fixes #16210.
2026-08-28 21:23:59 -04:00
Frank Praznik
6b18df27f7 events: Add pinch event category
Needed to allow SDL_GetWindowFromEvent() to work with pinch events.
2026-08-28 11:32:28 -04:00
Sawkez
338768e23d PS2: fix textures rendering at half opacity when blend is enabled 2026-08-27 15:57:59 -07:00
Sam Lantinga
8d6c456fb3 Fixed reading the factory stick calibration for Nintendo Switch controllers 2026-08-27 11:43:21 -07:00
Ryan C. Gordon
af9dbb65f6 alsa: Manage device index, not just card ID.
Otherwise multiple devices on one card won't open correctly.

Fixes #16205.
2026-08-27 14:23:09 -04:00
Ryan C. Gordon
774a3a0ab1 joystick: Fixed \since version for new sensor APIs. 2026-08-27 11:06:05 -04:00
Ryan C. Gordon
4f3d7017b0 joystick: Expose sensor data at the SDL_Joystick level.
Previously this was only available through the gamepad API, but this state has
always actually lived on the lower-level joystick objects, so there's no sense
in not offering a public API for that level, as well.

Closes #16202.
2026-08-27 10:18:03 -04:00
Ryan C. Gordon
4f477c807c cocoa: Run the CFRunLoop for 20ms during SDL_Quit().
This lets the OS remove windows that were destroyed in cases where we aren't
terminating the process right after calling SDL_Quit(). Otherwise, they'll
stay on the screen, unresponsive.

Apparently there is some animation state that needs to complete, and that is
handled via the runloop.

Fixes #10081.
2026-08-27 00:23:20 -04:00
Ryan C. Gordon
618890f8fa emscripten: Don't fall back to simulating vsync if settings are still pending.
Fixes #16146.
Closes #16151.
2026-08-27 00:19:56 -04:00
Anonymous Maarten
368b6cedf6 cmake: fix indentation in CheckPipewire 2026-08-27 00:24:13 +02:00
Anonymous Maarten
3eb19e5fec ci: bump ninja version 2026-08-27 00:24:01 +02:00
Crispin
1f922d7c06 Add more 'see also's to header comments in SDL_gpu.h 2026-08-26 09:13:24 -07:00
Frank Praznik
bc0a43ec7f wayland: Don't perform hit testing during implicit pointer grabs
Skip hit testing when an implicit grab is active, or button raise events may be lost, and the cursor icon may be improperly set if the client reports hit test results while the pointer is outside the window bounds.
2026-08-26 12:05:15 -04:00
sxvlsl
6a3062fd6c joystick: Add VKB Gladiator NXT Evo to the flight stick device list 2026-08-26 07:44:01 -07:00
Vlad Zahorodnii
5e8eb0d4e7 x11: Skip announcing WM_TAKE_FOCUS in WM_PROTOCOLS
By putting the WM_TAKE_FOCUS atom in the WM_PROTOCOLS property, SDL
chooses either the "Locally Active" or "Globally Active" input model
depending on the input flag in WM_HINTS.

In order to assist the window manager with making the right decision,
for example, skip this window when choosing what window to activate
next, it will be better if the WM knows right away that the window
accepts or doesn't accept focus (in other words, have either both
the input flag set in WM_HINTS + WM_TAKE_FOCUS or none).

Since the WM_TAKE_FOCUS atom is placed in the WM_PROTOCOLS property, the
WM wanting to adhere to the spec has no choice but send a client message
asking to activate the window and hope for the better.

At quick glance, it appears that the WM_TAKE_FOCUS atom is leftover from
SDL_WINDOWEVENT_TAKE_FOCUS, which was dropped a while ago, and is not
used anymore. So this change removes the WM_TAKE_FOCUS atom to help
window managers such as kwin work better.
2026-08-25 12:41:30 -04:00
Sam Lantinga
452c3634d4 Fixed two cases where joystick/haptic objects should be marked invalid on error during open. 2026-08-24 16:31:46 -07:00
muzikbike
40e1357e29 Add Wake Up key code for Windows
deduced experimentally via experimentation with consumer hardware
2026-08-24 15:36:53 -07:00
Sam Lantinga
6648b7966c Added a Windows mapping for the Gamesir-G5
Fixes https://github.com/libsdl-org/SDL/issues/16190
2026-08-24 13:14:22 -07:00
Sam Lantinga
05a0cb5894 Added detection for Turtle Beach Xbox 360 controllers 2026-08-24 13:08:06 -07:00
Frank Praznik
9d2579db26 wayland: Don't presume that the window is non-resizable when hidden
Don't presume that the window requires fixed size handling until a configure event sets the state. Fixes setting an initial size on a hidden window (regression from fcb5ef8a9c).
2026-08-24 14:07:46 -04:00
Eri the Switch
fb8a32cc75 joystick: Accept partial user calibration for sticks on Switch controllers
This allows user stick calibration to be applied on JoyCons and possibly
partially user calibrated Pro controllers.
2026-08-24 09:53:47 -07:00
quasar32
be51a15ba2 Hit test no longer executes when destroying wayland window
Signed-off-by: quasar32 <fontejam32@gmail.com>
2026-08-24 10:48:05 -04:00
muzikbike
9712c2c7fc Add some missing Microsoft keyboard codes
Deduced experimentally using https://git.stary.pc.pl/Grzesiek11/w32ev
2026-08-24 07:40:39 -07:00
SDL Wiki Bot
75ff9ae9a1 Sync SDL3 wiki -> header
[ci skip]
2026-08-24 07:00:49 +00:00
SDL Wiki Bot
75c35b8cce Sync SDL3 wiki -> header
[ci skip]
2026-08-24 04:52:59 +00:00
SDL Wiki Bot
b0827a48ab Sync SDL3 wiki -> header
[ci skip]
2026-08-24 04:38:07 +00:00
SDL Wiki Bot
bf889aaed5 Sync SDL3 wiki -> header
[ci skip]
2026-08-23 22:01:09 +00:00
SDL Wiki Bot
0dce67c74a Sync SDL3 wiki -> header
[ci skip]
2026-08-23 21:57:14 +00:00
Ryan C. Gordon
0932b559e8 wikisync: Testing wikiheaders bridge, disregard. 2026-08-23 16:29:53 -04:00
SDL Wiki Bot
36488c6257 Sync SDL3 wiki -> header
[ci skip]
2026-08-23 20:28:45 +00:00
SDL Wiki Bot
ae78aee61b Sync SDL3 wiki -> header
[ci skip]
2026-08-23 20:25:01 +00:00
SDL Wiki Bot
39333eb07b Sync SDL3 wiki -> header
[ci skip]
2026-08-23 20:00:06 +00:00
SDL Wiki Bot
a3d215933a Sync SDL3 wiki -> header
[ci skip]
2026-08-23 19:49:06 +00:00
Sam Lantinga
58702e533f GPU: D3D12: set MultisampleEnable for multisampled pipelines (thanks @sailro!)
Closes https://github.com/libsdl-org/SDL/pull/16183
2026-08-23 10:51:48 -07:00
Dario Binacchi
e721af3baf Fix build on PowerPC with uClibc
PPC_FEATURE_HAS_ALTIVEC is not defined by all C libraries. The following
error was raised while testing SDL3 in Buildroot with a PowerPC toolchain
using uClibc-ng:

  src/cpuinfo/SDL_cpuinfo.c: In function 'SDL_GetAltiVecFeatures':
  src/cpuinfo/SDL_cpuinfo.c:351:37: error: 'PPC_FEATURE_HAS_ALTIVEC' undeclared (first use in this function)
    351 |     altivec = getauxval(AT_HWCAP) & PPC_FEATURE_HAS_ALTIVEC;
        |                                     ^~~~~~~~~~~~~~~~~~~~~~~

Provide a fallback definition when it is not defined.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
2026-08-23 10:35:08 -07:00
Sam Lantinga
8b1e4aa41b Show the child process wait code instead of turning it into an error string
The exit code of the child process may not fit in 8 bits, it's more useful to provide the full child process status.

Fixes https://github.com/libsdl-org/SDL/issues/16188
2026-08-23 10:32:18 -07:00
Dav999-v
85260aa180 Fix SDL_PLATFORM_UNI typo in migration guide
SDL_PLATFORM_UNI doesn't actually exist, it seems like it's supposed to
be SDL_PLATFORM_UNIX.
2026-08-23 10:10:11 -07:00
Sam Lantinga
4601c46a68 Rebuilt test shader headers 2026-08-23 10:08:59 -07:00
momoko-h
902484f65c Update testgpurender_effects_grayscale.frag.hlsl
The formular did not use blue at all but red twice and the factor intended for blue was off.
2026-08-23 10:02:00 -07:00