
Recently, SDL 3.2 release was announced, which is presented as the first stable version of the SDL 3 branch and has introduced important improvements, new features, adjustments, APIs, corrections and more.
For those who are unaware of the SDL library, you should know that it provides tools such as hardware-accelerated 2D and 3D graphics output, input processing, audio playback, 3D output through OpenGL/OpenGL ES and many other related operations.
Main new features of SDL 3.2
In SDL 3.2, it is highlighted Improved support for Wayland, that now It is enabled by default on systems that offer compatibility both with Wayland and X11, as long as they support the fifo-v1 and commit-timing-v1 extensions. The PipeWire media server is also prioritized by default, as it is considered more efficient than PulseAudio. Additionally, the ability to capture video from webcams has been added, provided that PipeWire is available.
Another novelty is the Added support for graphics tablets and digital pens, along with optimized support for high DPI displays. Color space management has also been implemented, allowing for multiple configurations and providing initial support for HDR.
In sound improvements, In SDL 3.2 the code has been completely redesigned, incorporating new tools to manage audio logic devices, making it easier for different parts of a program to operate with independent devices. In addition, features for working with audio streams, performing conversions, adjusting sample rates, mixing sounds, and managing buffering have been included, along with the ability to modify pitch and volume. Finally, recognition of connected or disconnected sound devices and dynamic management of the default sound device have been automated.
Another of the most notable additions is the incorporation of a backend in the 2D rendering API, which allows you to take advantage of the power of Vulkan both for rendering and for manipulating surfaces using this API. In addition, significant cleanup of features considered obsolete was done, such as support for OpenGL ES 1.0 and DirectFB, along with the removal of support for legacy platforms such as QNX, Pandora, WinRT and OS/2.
SDL 3.2 also introduces the Possibility of structuring programs using callback and defining the processing loop of events directly in the main function of the code. In addition, sand implemented changes in the APAnd they break with previous compatibility, but seek greater coherence by unifying the nomenclature rules across all subsystems.
Within New tools included, highlighting several APIs designed to cover different needs. Between them:
- GPU API allows cross-platform access to 3D rendering features, while the dialog API facilitates selecting, opening, and saving files and directories.
- The File System API adds support for managing directories and searching for files, while the Storage API provides an abstract interface for interacting with various storage systems.
- Camera API for webcam access
- Pen API for working with graphics tablets
- Properties API for managing parameters in key-value format
- Process API that facilitates execution and communication with child processes.
- The Metadata API was also added to define information about applications, as used in menus in operating systems like macOS.
As for the clipboard, its functionality has been expanded, now allowing data to be transferred in multiple formats. Keyboard input management capabilities have been improved, adding options to configure virtual keyboards on iOS and Android devices. Additionally, the API documentation has been revised and improved, accompanied by practical examples that can be run directly from a browser.
Last but not least, it is also worth noting that Along with SDL 3.2, the sdl2-compat compatibility layer was released, designed to provide a seamless transition between SDL 2 and SDL 3This component allows you to run programs written for SDL 2 taking advantage of the new branch's functionalities, acting as a complete replacement for the previous version.
Interested in knowing more about it, you can consult the details In the following link.