Simple DirectMedia Layer
Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.
Original author(s) | Sam Lantinga |
---|---|
Developer(s) | SDL Community |
Initial release | 1998 |
Stable release | |
Repository | |
Written in | C |
Operating system | Linux, Windows, AmigaOS, macOS 10.4+, iOS 3.1.3+, tvOS, Android 2.3.3+, FreeBSD 8.4+, Haiku Additionally before v2.0.0 (deprecated): RISC OS |
Type | API |
License | zlib License Before 2.0.0: GNU LGPL |
Website | www |
SDL manages video, audio, input devices, CD-ROM, threads, shared object loading, networking and timers. For 3D graphics, it can handle an OpenGL, Vulkan, Metal, or Direct3D11 (older Direct3D version 9 is also supported) context. A common misconception is that SDL is a game engine. However, the library is suited to building games directly, or is usable indirectly by engines built on top of it.
The library is internally written in C and possibly, depending on the target platform, C++ or Objective-C, and provides the application programming interface in C, with bindings to other languages available. It is free and open-source software subject to the requirements of the zlib License since version 2.0, and with prior versions subject to the GNU Lesser General Public License. Under the zlib License, SDL 2.0 is freely available for static linking in closed-source projects, unlike SDL 1.2. SDL 2.0, released in 2013, was a major departure from previous versions, offering more opportunity for 3D hardware acceleration, but breaking backwards-compatibility.
SDL is extensively used in the industry in both large and small projects. Over 700 games, 180 applications, and 120 demos have been posted on the library website.