SDL Versions Save

Simple Directmedia Layer

prerelease-3.1.1

3 weeks ago

This is an update to the preview release of the new SDL 3.0 API.

Here are some of the highlights since the last preview:

  • Fixed a crash when rendering lots of content using the Vulkan renderer
  • Fixed text input being delivered when SDL_StartTextInput() hasn't been called
  • Added support for raw keyboard events on Windows
  • Fixed a performance regression initializing controllers on Linux
  • Separated the joystick power state into battery status and percentage
  • Added an optional user parameter to main callback entry points
  • Case insensitive string comparison functions are no longer affected by locale

release-2.30.2

3 weeks ago

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

  • Fixed performance regression initializing controllers on Linux
  • Added support for the 6-button SEGA Mega Drive Control Pad for Nintendo Online
  • Added support for the MadCatz Saitek Side Panel Control Deck
  • Added support for the Hori Fighting Stick EX2
  • Added support for the Yawman Arrow flightstick
  • Added a gamepad mapping for the Defender Joystick Cobra R4
  • Fixed the gamepad mapping for the Sanwa Supply JY-P76USV controller
  • Poll for the initial controller state when using DirectInput
  • Allow using SDL_RWFromFile() with named pipes

prerelease-3.1.0

1 month ago

This is a preview release of the new SDL 3.0 API.

The ABI hasn't been locked down yet, but it's fairly stable and feedback is welcome!

Check out README-migration.md for details on API changes since SDL 2.0, and tips on transitioning your code from SDL2 code to SDL3.

There have been too many changes to list them all, but here are some of the highlights:

  • The API has been significantly reworked to be easier to use and more consistent
  • The 2D rendering API now has support for more advanced colorspaces and HDR rendering
  • The 2D rendering API now has a Vulkan backend
  • An example of hardware accelerated video playback using ffmpeg has been added in test/testffmpeg.c
  • The shaped window API has been replaced with transparent windows
  • Time and date functions have been added in SDL_time.h
  • Support for webcam video capture has been added in SDL_camera.h
  • Support for handling pens and tablets has been added in SDL_pen.h
  • Support for file open and save dialogs has been added in SDL_dialog.h
  • Cross-platform functions for working with files and directories are available in SDL_filesystem.h
  • A cross-platform abstraction for working with user and game data has been added in SDL_storage.h
  • Handling of main() has been moved to a header library and an optional callback-based program flow is available
  • Support for simple object properties has been added in SDL_properties.h. These properties are available on many SDL objects, and can be used for more advanced functionality.

Please let us know about issues and feedback at: https://github.com/libsdl-org/SDL/issues

The development team is focused on code, moving towards the final release, and we would love volunteers to help improve the documentation. Please send e-mail to [email protected] if you'd like to help out!

Finally, a giant thank you to all the people who have contributed code and feedback to the SDL 3.0 improvements!

release-2.30.1

1 month ago

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

  • Fixed a regression causing SDL_WaitEvent() to return spurious failures
  • Fixed X11 cursors on the latest release of GNOME
  • Wayland windows automatically have OpenGL enabled again
  • Fixed memory corruption when converting signed 16-bit audio to float
  • Fixed audio artifacts when converting signed 8-bit audio to float
  • Fixed the clip rectangle not being updated when the viewport changes in the SDL renderer
  • Convert mouse wheel coordinates to the rendering view in the SDL renderer
  • Fixed a crash handling controllers on macOS
  • Fixed a crash setting a window fullscreen with Emscripten
  • Fixed the keyboard automatically popping up when resuming an application on Android

release-2.30.0

2 months ago

Thanks to all the people who contributed code and feedback, SDL 2.30.0 is now available!

In addition to lots of bug fixes, here are the major changes in this release:

General:

  • Added support for 2 bits-per-pixel indexed surface formats
  • Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
  • Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.
  • Added the environment variable SDL_LOGGING to control default log output

macOS:

  • Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
  • Added the hint SDL_HINT_JOYSTICK_MFI to control whether the GCController controller driver should be used
  • Added the hint SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE to choose whether high or low power GPU should be used for rendering, in the case where there are multiple GPUs available

Xbox:

  • Added the function SDL_GDKGetDefaultUser()

prerelease-2.29.3

2 months ago

This is a release candidate for 2.30.0

Thanks for all the feedback! This update fixes WASAPI audio issues, improves Android audio latency, fixes Android audio device hotplugging, fixes a crash when accidentally opening a directory as a file, improves the timing of SDL_WaitEventTimeout() on Windows, and adds the SDL_LOGGING environment variable.

In addition to lots of bug fixes, here are the major changes in this release: General:

  • Added support for 2 bits-per-pixel indexed surface formats
  • Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
  • Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.
  • Added the environment variable SDL_LOGGING to control default log output

macOS:

  • Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
  • Added the hint SDL_HINT_JOYSTICK_MFI to control whether the GCController controller driver should be used
  • Added the hint SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE to choose whether high or low power GPU should be used for rendering, in the case where there are multiple GPUs available

Xbox:

  • Added the function SDL_GDKGetDefaultUser()

prerelease-2.29.2

3 months ago

This is a release candidate for 2.30.0

This release fixes audio distortion and a crash when blitting that was introduced in 2.29.1.

In addition to lots of bug fixes, here are the major changes in this release:

General:

  • Added support for 2 bits-per-pixel indexed surface formats
  • Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
  • Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.

macOS:

  • Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
  • Added the hint SDL_HINT_JOYSTICK_MFI to control whether the GCController controller driver should be used
  • Added the hint SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE to choose whether high or low power GPU should be used for rendering, in the case where there are multiple GPUs available

Xbox:

  • Added the function SDL_GDKGetDefaultUser()

prerelease-2.29.1

3 months ago

This is a release candidate for 2.30.0

In addition to lots of bug fixes, here are the major changes in this release:

General:

  • Added support for 2 bits-per-pixel indexed surface formats
  • Added the function SDL_GameControllerGetSteamHandle() to get the Steam API handle for a controller, if available
  • Added the event SDL_CONTROLLERSTEAMHANDLEUPDATED which is sent when the Steam API handle for a controller changes. This could also change the name, VID, and PID of the controller.

macOS:

  • Added the hint SDL_HINT_JOYSTICK_IOKIT to control whether the IOKit controller driver should be used
  • Added the hint SDL_HINT_JOYSTICK_MFI to control whether the GCController controller driver should be used
  • Added the hint SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE to choose whether high or low power GPU should be used for rendering, in the case where there are multiple GPUs available

Xbox:

  • Added the function SDL_GDKGetDefaultUser()

release-2.28.5

5 months ago

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

  • Added support for the HP HyperX Clutch Gladiate controller
  • Fixed a crash if a controller is disconnected while SDL is opening it
  • Fixed a crash on Linux if XInput2 isn't available at runtime

release-2.28.4

6 months ago

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

  • Enable clipping for zero sized rectangles in the SDL renderer
  • Notify X11 clipboard managers when the clipboard changes
  • Fixed sensor timestamps for third-party PS5 controllers
  • Added detection for Logitech and Simagic racing wheels