Simple DirectMedia Layer

Simple DirectMedia Layer
Original author(s)Sam Lantinga
Developer(s)SDL Community
Initial release1998; 27 years ago (1998)
Stable release
3.2.2[1] Edit this on Wikidata / 2 February 2025
2.32.0 / 8 February 2025
Repository
Written inC
Operating systemVersion 3 supports same (current) platforms as version 2, such as 32- and 64-bit Windows 10+ and 64-bit macOS 10.7+ (support dropped for outdated e.g. Windows Phone/UWP[2]).[3]

Support for version 2: Linux (e.g. SteamOS), Windows, macOS 10.4+, iOS 3.1.3+, tvOS,[4] Android 2.3.3+, FreeBSD 8.4+, Nintendo Switch, PlayStation 2, Haiku, RISC OS 3.5+,[5] MorphOS 0.4+[6][7]

Additionally before v2.0.0: e.g. AmigaOS and MorphOS, and consoles (PlayStation, XBox, Wii, etc), Nintendo DS
Platform'IA-32' (i386), 'x86-64', 'PowerPC', AArch64
TypeAPI
Licensezlib License
Before 2.0.0:
GNU LGPL[8]
Websitewww.libsdl.org

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.[9]

SDL manages video, audio, input devices, threads, shared object loading, networking and timers.[10] For 3D graphics, it can handle an OpenGL, Vulkan,[11] 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.[12] 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.[8] Under the zlib License, SDL 2.0 is freely available for static linking in closed-source projects, unlike SDL 1.2,[13] although it is possible for the user to override the statically linked library with one provided by them.[14] SDL 2.0, released in 2013, was a major departure from previous versions, offering more opportunity for 3D hardware acceleration, but breaking backwards-compatibility, a wrapper library made to translate 1.2 calls to 2.0 was later made available.[15]

SDL is extensively used in the industry in both large and small projects. By 2010, over 700 games, 180 applications, and 120 demos had been posted on the library website.[16]

SDL supports Emscripten (i.e. programs that run on a web page).

SDL 3 was released, as a stable version, in January 2025. It has a migration guide, and Coccinelle tool support to help migrate to the new major version. SDL 3 has a new way to control the entry point of your program,[17] and you can optionally control execution in a non-framework way.

  1. ^ "Release 3.2.2". 2 February 2025. Retrieved 5 February 2025.
  2. ^ "winrt: Removed WinRT/Windows Phone/UWP support. by icculus · Pull Request #10731 · libsdl-org/SDL". GitHub. Retrieved 9 February 2025.
  3. ^ "SDL/docs/README-platforms.md at main · libsdl-org/SDL". GitHub. Retrieved 9 February 2025.
  4. ^ "Oh look, we'll have official tvOS support in SDL 2.0.5, for people that want their SDL-based games on Apple TV!". 15 September 2016.
  5. ^ "SDL/docs/README-riscos.md at 9d83c0a65d969a902c91f4f94fd5a904c0828a33 · libsdl-org/SDL". GitHub. Retrieved 17 March 2024.
  6. ^ "Great galaga style true color game for MorphOS (uses SDL)".
  7. ^ "SDL 2.30.7 Libraries". Retrieved 6 November 2024.
  8. ^ a b "SDL license". Retrieved 3 March 2014.
  9. ^ "a list of the platforms SDL supports". Libsdl.org. Archived from the original on 1 April 2016. Retrieved 9 April 2016.
  10. ^ "SDL official website". Libsdl.org. Retrieved 19 March 2010.
  11. ^ "CategoryVulkan - SDL Wiki'". wiki.libsdl.org. Retrieved 9 February 2025.
  12. ^ "SDL Language Bindings". libsdl.org. Simple DirectMedia Layer. Retrieved 13 August 2014.
  13. ^ "Licensing the Simple DirectMedia Layer library". Retrieved 30 January 2012.
  14. ^ "SDL/docs/README-dynapi.md at main · libsdl-org/SDL". GitHub. Retrieved 25 June 2024.
  15. ^ libsdl-org/sdl12-compat, Simple Directmedia Layer, 1 June 2024, retrieved 25 June 2024
  16. ^ "Simple DirectMedia Layer". 29 June 2010. Archived from the original on 29 June 2010. Retrieved 7 August 2021.
  17. ^ "SDL3/README/main-functions". wiki.libsdl.org. Retrieved 9 February 2025.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne