Commit Graph
100 Commits
Author SHA1 Message Date
Sam Lantinga cc2a272d6f Enable RLE more often in the software renderer
We don't need to aggressively disable RLE acceleration anymore because the original pixels remain available for operations that aren't supported by the RLE blitter.
2025-11-08 14:51:27 -08:00
Sam Lantinga ac0edbe9d2 Just assert that RLE encoding isn't active
We undo RLE encoding in the calling code, so we shouldn't need to do anything here.
2025-11-08 14:51:27 -08:00
Sam Lantinga 2b365983db Save the original pixels when RLE encoding is enabled
Trying to reconstruct the original image when undoing RLE encoding was never completely accurate.

Fixes https://github.com/libsdl-org/SDL/issues/14424
2025-11-08 12:56:25 -08:00
Sam Lantinga 78152d13ee Added SDL_ConvertSurfaceRect() for internal use 2025-11-08 12:56:25 -08:00
Sam Lantinga d145e78cd6 Improved performance scaling 8-bit surfaces 2025-11-08 12:56:25 -08:00
Sam Lantinga 01d359c1df Don't create a larger surface than we need when scaling 2025-11-08 12:56:25 -08:00
Sam Lantinga 7d628ef76c Fixed scaling YUV surfaces 2025-11-08 12:56:25 -08:00
Sam Lantinga 7553d5892e Fixed software renderer 8-bit scaling and rotation (thanks @jroatch!)
Fixes https://github.com/libsdl-org/SDL/issues/14422
2025-11-08 08:46:58 -08:00
Sam Lantinga 1fb663b429 Make sure that SDL_PIXELFORMAT_ARGB8888 is the first texture format for OpenGL
Fixes https://github.com/libsdl-org/SDL/issues/1440
2025-11-07 11:13:50 -08:00
Sam Lantinga 3489a45216 Use srcpixel now that we've set it 2025-11-07 11:12:10 -08:00
Sam Lantinga 294beceec7 Fixed error: 'srcpixel' may be used uninitialized 2025-11-07 11:11:31 -08:00
Sam Lantinga 0f21e46586 Added support for SDL_PIXELFORMAT_INDEX8 to SDL_BlitTriangle_Slow()
Fixes https://github.com/libsdl-org/SDL/issues/14419
2025-11-07 11:01:23 -08:00
Sam Lantinga 547b2a2e37 SDL_SetSurfaceRLE() has a boolean parameter 2025-11-07 11:01:23 -08:00
Sam Lantinga 9a19cc8323 Fixed unaligned load in Xbox HIDAPI driver 2025-11-07 10:37:58 -08:00
Sam Lantinga 118dcf27ce Added D mode mappings for the 8BitDo 64 Bluetooth Controller
The HID descriptor maps the C buttons as a right thumbstick, but this mapping matches the HIDAPI Nintendo 64 mapping.

The start button resets the controller in both USB and Bluetooth mode on macOS, but I've kept the mapping assuming this is a macOS bug that will be fixed.
2025-11-07 10:18:49 -08:00
Sam Lantinga 9ff737efbd Updated the Nintendo Switch N64 controller mapping
This mapping matches the Linux kernel default mapping.
2025-11-07 10:18:49 -08:00
Sam Lantinga f211a3bb69 Fixed initial rumble on the 8BitDo 64 Bluetooth Controller 2025-11-07 10:18:49 -08:00
Sam Lantinga a2ed1a4197 Fixed blitting bitmaps with a non-zero x offset
Also added basic testautomation coverage of bitmap blits

Fixes https://github.com/libsdl-org/sdl2-compat/issues/546
2025-11-06 22:47:50 -08:00
Sam Lantinga 2a873be9cd Return false from SDL_SetWindowMouseRect() if it's not supported 2025-11-06 11:59:47 -08:00
Sam Lantinga 599bd1a6aa Fixed building if SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_SCROLLINFO isn't defined 2025-11-06 11:30:59 -08:00
Sam Lantinga e24eeefbd1 The default render texture format is SDL_PIXELFORMAT_ARGB8888
We do this for consistency across backends
2025-11-06 09:46:43 -08:00
Sam Lantinga ca072c9fc6 Don't do anything if the window mouse rect hasn't changed 2025-11-06 09:18:58 -08:00
Sam Lantinga c94da8977d Validate SPI read command in the Nintendo Switch HIDAPI driver 2025-11-05 17:34:22 -08:00
Sam Lantinga 9a1745f2c8 Fixed unaligned access in the Nintendo Switch HIDAPI driver 2025-11-05 17:08:22 -08:00
Sam Lantinga 49134ecf25 Pass the error through from the SetRelativeMouseMode() implementation 2025-11-03 13:07:17 -08:00
Sam Lantinga 05887f2087 Return false from SDL_SetWindowRelativeMouseMode() if relative mode isn't available
Fixes https://github.com/libsdl-org/SDL/issues/14388
2025-11-03 13:01:41 -08:00
Sam Lantinga eedc0b19fd Fixed build warning when X11 XInput isn't available 2025-11-03 13:01:41 -08:00
Sam Lantinga 4560fae07e Fail configuration if X11 dependency packages aren't available
It happens fairly often that people enable X11 support but don't install the extension libraries that SDL depends on. This makes those required if not explicitly disabled, which should help prevent accidentally broken builds.
2025-11-03 13:01:41 -08:00
Sam Lantinga a6351ac474 Added libxtst-dev to Linux CI build dependencies 2025-11-03 13:01:41 -08:00
Sam Lantinga ea8e66ccd1 Don't use getpagesize() on Windows
Fixes https://github.com/libsdl-org/SDL/issues/14328
2025-11-03 08:36:29 -08:00
Sam Lantinga 6493be9eea Removed SDL_AUTO_ENABLE_ENHANCED_FLYDIGI 2025-11-03 08:20:41 -08:00
Sam Lantinga 97e2951875 Removed redundant wait at shutdown in the ALSA audio driver 2025-11-02 18:30:12 -08:00
Sam Lantinga 4db63e323e Save a copy of the D3D12 semantic string
Fixes https://github.com/libsdl-org/SDL/issues/14383
2025-11-02 16:16:20 -08:00
Sam Lantinga 0882623092 Clamp the audio drain delay to 100 ms
Fixes https://github.com/libsdl-org/SDL/issues/9829
2025-11-02 11:15:25 -08:00
Sam Lantinga 889e4787d6 Clarify when we want to auto-enable Apex 5 enhanced functionality 2025-11-02 11:14:41 -08:00
Sam Lantinga 3336aa95f1 Fixed the paddle mapping for Steam Controllers
Fixes https://github.com/libsdl-org/SDL/issues/14380
2025-11-02 10:06:49 -08:00
Sam Lantinga b695e5c24b Fixed whitespace 2025-11-02 09:31:55 -08:00
Sam Lantinga eb87a36940 Fixed the right touchpad calculation for the BLE Steam Controller
Fixes https://github.com/libsdl-org/SDL/issues/14368
2025-11-02 08:31:37 -08:00
Sam Lantinga 6c4f2bd83d Use DefWindowProc for the initial SDL window proc
This makes sure that anything that hooks window creation to set up window proc hooks will call DefWindowProc instead of infinitely recursing when we set up our window proc afterwards.

Fixes https://github.com/libsdl-org/SDL/issues/10529
2025-11-02 07:23:29 -08:00
Sam Lantinga a82e8a701d Allow dynamically switching mode of the Apex 5 controller
The controller can be in XInput mode or enhanced mode, so it will always show up as an XInput controller, and the enhanced mode controller will come and go as enhanced mode is enabled or disabled in the FlyDigi Space Station app.
2025-11-01 14:49:31 -07:00
Sam Lantinga 28849fd789 Manually enable acquiring the Apex 5 controller if necessary
The FlyDigi Space Station app isn't available on non-Windows platforms, so we need to manually enable acquiring the controller on those platforms.
2025-11-01 14:49:31 -07:00
Sam Lantinga 524739900a Fixed potential double-free when creating a renderer (thanks @Sackzement!)
Closes https://github.com/libsdl-org/SDL/pull/14371
2025-11-01 11:24:14 -07:00
Sam Lantinga aafbf7183f Copy shader params instead of caching a pointer to them
It's possible for a new texture to be allocated with the same address as a previous one, so we can't just cache the pointer value.

Fixes https://github.com/libsdl-org/SDL/issues/14369
2025-11-01 11:24:14 -07:00
Sam Lantinga de5d8616bf Updated SDL tests XCode project 2025-10-31 10:34:42 -07:00
Sam Lantinga d97e8bd49b Removed SDL_uikitwindow
This was only needed as a workaround for buggy behavior in iOS 8
2025-10-31 10:34:42 -07:00
Sam Lantinga b46e26e65a Added support for the UIScene life cycle on Apple platforms
Fixes https://github.com/libsdl-org/SDL/issues/12680
2025-10-31 10:34:42 -07:00
Sam Lantinga b6f67dd2b2 tests: add a template Info.plist that uses the whole screen
The OS uses the presence of the UILaunchScreen key to determine whether to display the application in compatibility mode or display using the whole screen.
2025-10-31 10:34:42 -07:00
Sam Lantinga 09f00e397c testsymbols: include SDL_main.h 2025-10-31 10:34:42 -07:00
Sam Lantinga 446fb65ca6 Mark the Apex 5 controller as being acquired by SDL 2025-10-30 22:35:06 -07:00
Sam Lantinga 1502c2fd8b Added support for the Flydigi Apex 5 controller (#14218) 2025-10-30 21:20:44 -07:00
Sam Lantinga 2f5279eb01 Clarify SDL_ConvertEventToRenderCoordinates() documentation
Fixes https://github.com/libsdl-org/SDL/issues/14360
2025-10-30 09:00:14 -07:00
Sam Lantinga c21b7f8cb8 Check to see if joysticks are actually initialized in SDL_UpdateJoysticks()
Fixes https://github.com/libsdl-org/SDL/issues/14362
2025-10-30 08:53:57 -07:00
Sam Lantinga a7147f327f Temporarily disable WASAPI device roles
Setting AudioCategory_GameChat breaks audio on several devices, including Behringer U-PHORIA UM2 and RODE NT-USB Mini. We'll disable this for now until we understand more about what's happening.
2025-10-30 07:27:23 -07:00
Sam Lantinga d9ca0457b5 Make sure we don't allocate a TLS ID clobbering an application defined one
Fixes https://github.com/libsdl-org/SDL/issues/14359
2025-10-29 14:05:49 -07:00
Sam Lantinga b3612f6462 testautomation: fixed RLE operation test on big endian systems
Fixes https://github.com/libsdl-org/SDL/issues/14348
2025-10-29 16:26:31 +00:00
Sam Lantinga 8b8c51573b Disabled incorrect 16-bit Altivec blitters 2025-10-29 16:11:25 +00:00
Sam Lantinga 84fac6ca44 testautomation: verify that RLE operation output is correct 2025-10-29 09:07:56 -07:00
Sam Lantinga bf0752a8d7 Fixed converting RLE encoded surfaces to other formats 2025-10-29 09:06:25 -07:00
Sam Lantinga c4cef905ae Updated internal documentation 2025-10-29 08:39:56 -07:00
Sam Lantinga cecf4b0d4e Fixed the right shoulder button on the 8BitDo Pro 3 2025-10-28 14:55:06 -07:00
Sam Lantinga 78f9cb44c3 Added a Linux mapping for the 8BitDo Pro 3 2025-10-28 14:13:40 -07:00
Sam Lantinga 2d14a237dc Fixed trying to grab the mouse when losing keyboard focus
Fixes https://github.com/libsdl-org/SDL/issues/14350
2025-10-28 07:15:43 -07:00
Sam Lantinga 933beeb18b Fixed warning: no previous extern declaration for non-static variable 2025-10-27 17:52:05 -07:00
Sam Lantinga 965ac7f406 Fixed warning: implicit conversion loses integer precision: 'long' to 'int' 2025-10-27 17:49:49 -07:00
Sam Lantinga 90242312fe Restored the original OpenBSD Xbox 360 controller mapping 2025-10-27 17:39:29 -07:00
Sam Lantinga b305534edc Completed removing predefined Xbox 360 mappings for Linux
Also removed them for OpenBSD, since it's not clear which ones, if any, are needed.
2025-10-27 17:34:23 -07:00
Sam Lantinga be1d44279c Fixed error: incompatible function pointer types passing
SDL/src/sensor/emscripten/SDL_emscriptensensor.c:80:5: error: incompatible function pointer types passing
      'int (*)(int, const EmscriptenDeviceMotionEvent *, void *)' (aka 'int (*)(int, const struct EmscriptenDeviceMotionEvent *, void *)') to parameter of type 'em_devicemotion_callback_func' (aka
      'bool (*)(int, const struct EmscriptenDeviceMotionEvent *, void *)') [-Wincompatible-function-pointer-types]
   80 |     emscripten_set_devicemotion_callback((void *)0, false, &SDL_EMSCRIPTEN_SensorCallback);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2025-10-27 10:13:57 -07:00
Sam Lantinga f5966890b0 Added a note that SDL_LoadPNG() is designed for trusted images
Fixes https://github.com/libsdl-org/SDL/issues/14338
2025-10-27 08:38:00 -07:00
Sam Lantinga 01aa1882f8 Added a patch note for SDL_ELF_NOTE_DLOPEN
Fixes https://github.com/libsdl-org/SDL/issues/14337
2025-10-27 08:28:05 -07:00
Sam Lantinga 0ea20a5f86 Fix NULL pointer dereference in SDL_RenderGeometryRaw with NPOT textures (thanks @bleeqer!)
Fixes https://github.com/libsdl-org/SDL/issues/14329
Closes https://github.com/libsdl-org/SDL/pull/14331
2025-10-26 08:10:52 -07:00
Sam Lantinga e08edab180 Log object leaks at debug level
End users don't care about this. Developers can enable debug logs, run with DEBUG_INVOCATION=1, or use other leak checking tools to detect these.
2025-10-25 15:13:37 -07:00
Sam Lantinga ffd0ca4391 Perform full rectangle intersection for empty rects
If we don't do that, we leave the x and y values uninitialized.

Fixes https://github.com/libsdl-org/sdl12-compat/issues/365
2025-10-25 13:48:48 -07:00
Sam Lantinga 51b401d418 Fixed OTP text entry on iOS (thanks @pipiwoaini!)
Fixes https://github.com/libsdl-org/SDL/issues/13717
2025-10-24 11:02:37 -07:00
Sam Lantinga 1506c40ec8 Fixed line endings in FindLibUSB.cmake 2025-10-24 10:48:25 -07:00
Sam Lantinga 404ec13fbb Fixed building with libusb on FreeBSD 2025-10-24 10:41:08 -07:00
Sam Lantinga d2c6aeea7d Add the bundle framework path to the libMoltenVK.dylib paths
Fixes https://github.com/libsdl-org/SDL/issues/14313
2025-10-24 10:33:22 -07:00
Sam Lantinga c959f9f0d8 Define SDL_FILE as __FILE_NAME__, if available 2025-10-24 10:01:01 -07:00
Sam Lantinga be781fc8f5 Updated to version 3.3.3 for development 2025-10-23 22:41:03 -07:00
Sam Lantinga b31c4b70b3 Updated version and documentation for 3.3.2 preview release 2025-10-23 15:20:26 -07:00
Sam Lantinga 1fa6475c90 Added support for saving indexed PNG images
Fixes https://github.com/libsdl-org/SDL/issues/14303
2025-10-23 12:40:41 -07:00
Sam Lantinga 6d095575e8 Clarify thread-safety information for surface functions 2025-10-23 07:52:48 -07:00
Sam Lantinga e18d63a4e2 Added SDL_RotateSurface()
Fixes https://github.com/libsdl-org/SDL/issues/14269
2025-10-22 17:55:02 -07:00
Sam Lantinga a402af506c Removed SDL_FILE from source code 2025-10-22 10:52:18 -07:00
Sam Lantinga f79ede100b Removed __FILE__ from source code 2025-10-22 10:48:36 -07:00
Sam Lantinga 999f782ad3 Be more selective when blacklisting controller touchpads
On Android, the PS4 controller is called "Wireless Controller Touchpad"
Fixes https://github.com/libsdl-org/SDL/issues/14294
2025-10-22 10:44:08 -07:00
Sam Lantinga e58648d592 Removed call to ID3D11DeviceContext1_DiscardView() (thanks @pipiwoaini!)
This is unnecessary and can cause issues after a resize or device removal.

Fixes https://github.com/libsdl-org/SDL/issues/14283
2025-10-21 13:01:30 -07:00
Sam Lantinga 9d32e0e881 Fixed data alignment for PNG cursors (thanks @Kontrabant!) 2025-10-21 10:50:09 -07:00
Sam Lantinga af6f517453 Use CreateIconFromResource() for all cursors (#14285)
This allows us to properly adjust the size for DPI scaling and both static and animated cursors have consistent behavior.

Fixes https://github.com/libsdl-org/SDL/issues/14281
2025-10-21 09:38:26 -07:00
Sam Lantinga 0e351efbbc testcustomcursor: set the hotspot to the middle of the cross 2025-10-20 09:48:03 -07:00
Sam Lantinga 2f810e0a5f Copy properties when converting a surface to a new format
This fixes retaining the cursor hotspot when converting cursor frames to SDL_PIXELFORMAT_ARGB8888
2025-10-19 23:51:19 -07:00
Sam Lantinga 23fcf53c53 Treat a single frame animated cursor as a normal color cursor 2025-10-19 23:03:54 -07:00
Sam Lantinga bd86e85249 Added fallback support for animated cursors 2025-10-19 22:53:10 -07:00
Sam Lantinga 0e87ba163f Fixed crash if the animated cursor had a NULL frame 0 2025-10-19 22:53:10 -07:00
Sam Lantinga cae27a0ec7 Set an error if a cursor image is too large 2025-10-19 18:25:05 -07:00
Sam Lantinga b16ad6f10f Allow any init flags to be passed to SDLTest_CommonCreateState() 2025-10-15 21:57:37 -07:00
Sam Lantinga 6109fa6794 The names of joysticks and gamepads are valid after they've been removed 2025-10-15 21:57:37 -07:00
Sam Lantinga f844f3e10b Only pass UIPress from game controllers and remotes if the're not open
Fixes https://github.com/libsdl-org/SDL/issues/14080
2025-10-14 12:43:22 -07:00
Sam Lantinga d819106c65 Try matching gamepad mappings with CRC first
Fixes https://github.com/libsdl-org/SDL/issues/13874
2025-10-14 10:30:03 -07:00
Sam Lantinga 98944ecd0c Added the 8BitDo Ultimate 2C Wireless Controller to the Xbox controller list
Fixes https://github.com/libsdl-org/SDL/issues/14127
2025-10-13 18:46:58 -07:00
Sam Lantinga 23b487ceda Added testyuv to the SDLTest Xcode project 2025-10-13 15:27:13 -07:00