Skip to content

Releases: libsdl-org/SDL

3.2.26

30 Oct 17:16

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Improved validation and fixed memory leaks in the GPU subsystem
  • Fixed a delay at shutdown when the mouse is grabbed under X11
  • Do full rectangle intersection for empty rectangles
  • Fixed destination coordinates when using scale with the software renderer
  • Clipboard callbacks are only called with the mime types they expect
  • Fixed the Moonlander MK1 Keyboard being detected as a controller
  • Fixed the 8BitDo Ultimate 2C Wireless Controller showing up twice on some systems
  • Added a Linux mapping for the 8BitDo Pro 3 controller
  • Fixed getting keyboard events from gamepads on iOS 26
  • Added support for the Zenaim Arcade Controller
  • Fixed emulated touch on Android
  • Added a workaround for the Android 14 OS bug "java.lang.NullPointerException android.view.View.onResolvePointerIcon"
  • Fixed page alignment for the Android release archive
  • Corrected texture colors on PS2

3.3.2

23 Oct 22:51

Choose a tag to compare

3.3.2 Pre-release
Pre-release

This is a preview of the upcoming 3.4 release!

The API and ABI are still in progress, but we wanted to get this out so everyone can try out the new features and provide feedback.

Please report any issues on GitHub:
https://github.com/libsdl-org/SDL/issues

Here are the highlights of this preview release:

  • Added SDL_CreateAnimatedCursor() to create animated color cursors
  • Added SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState(), and SDL_GetWindowProgressValue() to show progress in the window's taskbar icon on Windows and Linux
  • Added SDL_GetGPUDeviceProperties() to get the properties of an SDL GPU device
  • Added SDL_GetPixelFormatFromGPUTextureFormat() and SDL_GetGPUTextureFormatFromPixelFormat()
  • Added SDL_CreateGPURenderer() and SDL_GetGPURendererDevice() to create a 2D renderer for use with GPU rendering.
  • Added SDL_CreateGPURenderState(), SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState(), and SDL_DestroyGPURenderState() to use fragment shaders with a GPU 2D renderer
  • Added support for YUV textures and HDR colorspaces to the GPU 2D renderer
  • Added support for textures with palettes, and SDL_GetTexturePalette() and SDL_SetTexturePalette() to interact with them
  • Added SDL_RenderTexture9GridTiled() to do tiled instead of stretched 9-grid texture rendering
  • Added SDL_GetDefaultTextureScaleMode() and SDL_SetDefaultTextureScaleMode() to set the texture scale mode for new textures
  • Added SDL_GetRenderTextureAddressMode() and SDL_SetRenderTextureAddressMode() to change the texture addressing mode
  • Added SDL_TEXTURE_ADDRESS_WRAP to allow wrapping of textures if the renderer has SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN set
  • Added SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG(), and SDL_SavePNG_IO() to load and save PNG images
  • Added SDL_RotateSurface() to create a rotated copy of a surface
  • Added SDL_PutAudioStreamDataNoCopy() to do more efficient audio stream processing in some cases
  • Added SDL_PutAudioStreamPlanarData() to add planar audio data instead of interleaved data to an audio stream
  • Added SDL_HINT_AUDIO_DEVICE_RAW_STREAM to signal that the OS shouldn't do further audio processing, useful for applications that handle noise canceling, etc.
  • Added enhanced support for 8BitDo controllers
  • Added enhanced support for FlyDigi controllers
  • Added enhanced support for Hand Held Legend SInput controllers
  • Added SDL_hid_get_properties() to associate SDL properties with HID devices
  • Added SDL_SetRelativeMouseTransform() to add custom mouse input transformation
  • Added SDL_GetPenDeviceType() to determine whether a pen is on the screen or on a separate touchpad
  • Added SDL_GetEventDescription() to get an English description of an event, suitable for logging
  • Added verbose log output when the DEBUG_INVOCATION environment variable is set to "1"
  • Added SDL_AddAtomicU32()
  • Added SDL_GetSystemPageSize() to get the system page size

Windows:

  • Added SDL_HINT_RENDER_DIRECT3D11_WARP to enable D3D11 software rasterization
  • SDL_HINT_AUDIO_DEVICE_STREAM_ROLE is used by the WASAPI audio driver to set the audio stream category
  • SDL_HINT_WINDOWS_GAMEINPUT is disabled by default

Linux:

  • Added atomic support for KMSDRM
  • Added SDL_HINT_KMSDRM_ATOMIC to control whether KMSDRM will use atomic functionality

Emscripten:

  • Added SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT for applications that don't want to be fullscreen, but would like to fill the window

PlayStation 2:

  • Added the following hints to control the display parameters: SDL_HINT_PS2_GS_WIDTH, SDL_HINT_PS2_GS_HEIGHT, SDL_HINT_PS2_GS_PROGRESSIVE, SDL_HINT_PS2_GS_MODE

Note: On Unix platforms SDL provides ELF notes describing its non-mandatory library dependencies in the format described by https://systemd.io/ELF_DLOPEN_METADATA/. Some of these libraries are quite important, so distribution vendors who package SDL should parse the ELF notes and consider generating dependencies at the packaging level, for example by using https://github.com/systemd/package-notes. Other libraries and games can add similar ELF notes to describe their own dependencies by using the SDL_ELF_NOTE_DLOPEN macro.

3.2.24

02 Oct 18:34

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed a crash at startup on some installations of macOS
  • Fixed the reported fullscreen window position on MacBooks with a camera notch
  • Fixed Android applications losing vsync when being resumed
  • Fixed SDL_RunOnMainThread() on Android when using SDL_WaitEvent()
  • Fixed a crash when enumerating Steam Controllers
  • Fixed rumble strength on DualSense Edge and Bluetooth connected controllers
  • Fixed the HP Deluxe Webcam KQ246AA being detected as joystick
  • Disable Windows.Gaming.Input by default, this functionality is already covered by other APIs
  • Use the correct controller name on iOS
  • Enabled high refresh rates on iOS when using main callbacks
  • Fixed VMware not capturing the mouse when relative mode is enabled
  • Increased the maximum color target bindings from 4 to 8 in the GPU API
  • When using SDL_SetRenderLogicalPresentation(), letterboxing now uses the clear color instead of black
  • Fixed crash at startup when redirecting X11 output over ssh
  • Fixed a memory leak when using detached threads

3.2.22

02 Sep 02:11

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed fullscreen transition edge cases on Windows and macOS
  • Fixed the dock occasionally showing on macOS when launching an SDL app
  • Update NDK to r28c, remove page size handling, and add 16kB page size verification
  • Fixed signed 8-bit audio on Android
  • Fixed fingerprint sensors being detected as joysticks on Android
  • Added support for rumbling joysticks on Emscripten
  • Support the "ambient" value for SDL_HINT_AUDIO_CATEGORY on iOS

2.32.10

01 Sep 21:51

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed the dock occasionally showing on macOS when launching an SDL app
  • Report the correct device audio format when using Pipewire
  • Fixed signed 8-bit audio on Android
  • Support the "ambient" value for SDL_HINT_AUDIO_CATEGORY on iOS
  • Improved thumbstick range for Nintendo Switch Pro Controllers
  • Fixed loading user calibration for Nintendo Switch Pro Controllers

3.2.20

04 Aug 18:51

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed a crash when passing large invalid coordinates to SDL_BlitSurfaceScaled()
  • Fixed doubled mouse wheel events on X11
  • Fixed doubled SDL_EVENT_GAMEPAD_ADDED events for controllers with automatic gamepad mappings
  • Added support for the Google Play 16 KB page size requirement
  • Fixed a crash on Android if using SDL for other functionality besides video
  • Fixed dynamic loading of the environ symbol on FreeBSD
  • Fixed audio playback on PSP

3.2.18

14 Jul 18:43

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Added SDL_PROP_WINDOW_CREATE_CONSTRAIN_POPUP_BOOLEAN to support non-constrained and non-grabbing popups
  • Fixed a crash in SDL_GetAudioDeviceChannelMap()
  • Fixed a crash on older Proton runtimes
  • Fixed unregistering raw input on Windows
  • Fixed duplicate mouse events when using a pen under X11
  • Handle quirks with window management on XMonad and fvwm
  • Fixed showing the dock briefly at launch on macOS
  • Fixed replacing existing gamepad mappings at runtime
  • Improved thumbstick range for Nintendo Switch Pro Controllers
  • Fixed loading user calibration for Nintendo Switch Pro Controllers
  • Added support for the ZEROPLUS P4 Wired Gamepad
  • Fixed input from the MayFlash GameCube adapter with version 7 firmware
  • Added support for the NACON Revolution X Unlimited controller over Bluetooth on macOS

3.2.16

02 Jun 22:55

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed a rare crash in SDL_WaitEvent()
  • Fixed entering fullscreen mode on some X11 window managers
  • Fixed mouse click coordinates on macOS Catalina
  • Fixed fullscreen windows occasionally losing mouse focus on macOS
  • Fixed touch not being delivered as mouse events by default on PS Vita
  • Fixed hang processing mouse input on Wayland
  • Fixed occasionally corrupt text input on Wayland
  • Respect the application text input area on Wayland
  • Use XInput instead of raw input for controllers by default on Windows
  • Fixed building for XBox

2.32.8

02 Jun 23:38

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed a rare crash in SDL_WaitEvent()
  • Fixed swapped red/blue channels when updating a YUV texture on OpenGL ES 2.0

3.2.14

14 May 18:07

Choose a tag to compare

This is a stable bugfix release, with the following changes:

  • Fixed a crash querying the name of logical audio devices
  • Fixed a rare crash when rumbling controllers on Windows
  • Fixed a TLS related black screen issue when pulseaudio audio output is active
  • Reverted dead key reporting on X11, which introduced bugs with IME handling
  • Fixed incorrect destination usage mode for storage buffer read/write bindings on Vulkan
  • Implemented SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES on Android
  • Fixed audio playback on PS Vita