We do often include affiliate links to earn us some pennies. See more here.

SDL 3.1.3 Stable ABI Preview released

By -

One missed in the inbox of no return from last week. The next-generation SDL 3 is closing in on a proper stable release now with the SDL 3.1.3 Stable ABI Preview now available for game developers.

Despite the version number, it's still pre-release and not officially released just yet. What is SDL used for? It's a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware on many different platforms like Linux, macOS, Windows, iOS and Android.

In the release announcement developer Sam Lantinga (Valve) said: "We have lots of bugs to fix before the 3.2.0 stable release, but SDL 3.0 has been battle tested by millions of people in DOTA, CS2 and Steam, and is ready for your eyes!". Additionally developer Ryan Gordon mentioned on Twitter / X: "I can't believe I finally get to say this. SDL3 is officially ABI locked! We will _add_ new things but not _change_ or _remove_ what's there, starting right now. Which means it's safe to start migrating your games to it, starting today!"

Some of what's new includes:

  • Extremely good documentation: We've spent a ton of effort writing and revising the API reference.
  • Example programs to get you started, running in your web browser!
  • More consistent API naming conventions. Everything is named consistently across the API now, instead of different subsystems taking different approaches. Also, we've tended toward more descriptive names for things in SDL3.
  • GPU API: access to modern 3D rendering and GPU compute in a cross-platform way.
  • Dialog API: access to system file dialogs (file and folder selection UI for opening/saving).
  • Filesystem API: simple directory management and globbing, access to topic-specific user folders.
  • Storage API: Abstract interface to platform-specific storage.
  • Camera API: access to webcams.
  • Main Callbacks: optionally run your program from callbacks instead of main().
  • Pen API: access to pens (like Wacom tablets and Apple Pencil, etc).
  • Logical audio devices: different parts of an app can get their own unique audio device to use.
  • Audio streams: handle buffering, converting, resampling, mixing, channel mapping, pitch, and gain. Bind to an audio device and go!
  • Default audio devices: SDL3 will automatically manage migrating to new physical hardware as devices are plugged in, ripped out, or changed.
  • Properties API: fast, flexible dictionaries of name/value pairs.
  • Process API: Spawn child processes and communicate with them in various ways.
  • Colorspace support: Surfaces and the renderer, etc, can manage multiple colorspaces.
  • The Clipboard API can support any data type (SDL2 only handled text), and apps can provide data in multiple formats upon request in a provided callback.
  • Better keyboard input, for all your keypress needs.
  • Customizable virtual keyboards on iOS and Android.
  • High DPI support is dramatically improved over SDL2.
  • App metadata API for letting SDL report things about your app correctly (like in the About dialog on macOS, etc).
  • Read/write thread locks, to let multiple threads access rarely-changing data in parallel.
  • Init State to help with multiple threads that might need to initialize something on-demand without racing.
Article taken from GamingOnLinux.com.
17 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
3 comments

aidalgol Oct 9
As a bonus for Rust lovers, the Rust bindings look actually good this time around! (Disclaimer: I have no idea whether that crate is official.)
soulsource Oct 10
Quoting: aidalgolAs a bonus for Rust lovers, the Rust bindings look actually good this time around! (Disclaimer: I have no idea whether that crate is official.)
I haven't looked at the SDL3 bindings yet, but the SDL2 bindings looked pretty good to me too (except for that one bug with setting the music-finished callback, that I still need to make a PR for...).
hardpenguin Oct 15
That looks like a major step forward that will make developing and shipping games on Linux much easier.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.