Simple DirectMedia Layer is a cross-platform software development library designed to provide low level access to audio, keyboard, mouse, joystick, 3D graphics hardware through OpenGL (Open Graphic Library) and 2D video framebuffer.
The library is internally written in C, works natively in C++ and there are bindings available for several other languages, including C# and Python.
SDL was created by Sam LANTINGA. He got the idea to create a cross-platform media interface by porting popular games from Windows to Linux.
The first release was in 1998. The V2 was released in 2013.
The new version in considered as a major update. It replaces several parts of the former version with more general support for multiple input and output options. Some feature additions include multiple window support, hardware-accelerated 2D graphics, and better Unicode support.
2/ What are SLD uses ?
The SDL’s API (Application Programming Interface) is used to create multimedia application in 2D, which can include sound, like videogames, playback software and emulators.
SDL manages Video Display, Events, Audio, Peripheral (like joystick, keyboard, mouse), Audio CD reading, Multithreading, Timers.
Because of the way SDL is designed, much of its source code is split into separate modules for each operating system, to make calls to the underlying system.
SDL is very popular and was used for many commercial and non-commercial video game projects. Angry Birds is one of the most famous example of video games using SDL.
Several books have been written for development with SDL.
SDL is also used in university courses to teach multimedia and computer science.
4/ Pros and cons
– It doesn’t require installing runtime libraries like Java or Adobe AIR.
– You can write codes once and compile them on most platforms. SDL supports Android and iOS mobile apps as well.
– It’s great for small and independent developers as it is Free and Open Source
– It is not design for enterprise software as Open Source mean no guarantees.
– It hides the hardware level so if there is something you don’t like, for exemple the behavior, there is nothing you can do about it.