Simple DirectMedia Layer

2.0.16

Use this multimedia library whose purpose is to give you low-level access to the mouse, keyboard, joystick, etc. and help you with the entire development process

Relying on OpenGL as well as Direct3D in order to offer access to audio, mouse, keyboard, joystick, and graphics hardware, Simple DirectMedia Layer is a development library capable of working cross-platform.
Boasting support for OSes such as Windows, Linux, Mac OS X, Android, and iOS, Simple DirectMedia Layer was written in C and works with C++ natively. Nevertheless, other languages such as Python and C# are covered as well, considering that bindings are available.
It is safe to say that the spread of a software utility such as Simple DirectMedia Layer is quite impressive, given the fact that it is employed by emulators, video playback programs, and a multitude of games.
To name a few of the capabilities Simple DirectMedia Layer comes with, it can handle 3D graphics, it offers support for ease scaling, rotation, alpha blending, and acceleration, not to mention that it can create and manage multiple windows.
Regarding input events, lots of functionality is integrated as well. Resorting to SDL_EventState() in order to enable or disable each event, it can also handle force feedback.
What’s more, in terms of audio, playback can be set to 8-bit, 16-bit  audio, mono stereo, or 5.1 surround sound, with a separate thread is dedicated to the audio.
Share object support, CPU feature detection, endian independence, and much more are on the feature list as well.