Format rendering Other, non-standard libraries also exist. For example: SDL_Collide on SourceForge created by Amir Taaki. Language bindings The SDL 2.0 library has language bindings for: Ada Beef C C++ C# D Fortran Gambas Genie Go Haskell Java (e.g. JSDL) Julia Lua Nim OCaml Pascal Perl (via SDL) PHP Python (several, e.g. pygame_sdl2 and sdl2hl) Raku Ring Rust Vala Common Lisp Supported back-ends 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. When SDL is compiled, the appropriate modules are selected for the target system. The following back-ends are available: GDI back-end for Microsoft Windows. DirectX back-end; older SDL 1.2 uses DirectX 7 by default, while 2.0 defaults to DirectX 9 and can access up to DirectX 11. Quartz back-end for macOS (dropped in 2.0). Metal back-end for macOS / iOS / tvOS since 2.0.8; older versions use OpenGL by default. Xlib back-end for X11-based windowing system on various operating systems. OpenGL contexts on various platforms. EGL back-end when used in conjunction with Wayland-based windowing system., Raspberry Pi and other systems. Vulkan contexts on platforms that support it. sceGu back-end, a Sony OpenGL-like backend native to the PSP. SDL 1.2 has support for RISC OS (dropped in 2.0). An unofficial Sixel back-end is available for SDL 1.2. The Rockbox MP3 player firmware also distributes a version of SDL 1.2, which is used to run games such as Quake. Reception and adoption Over the years SDL was used for many commercial and non-commercial video game projects. For instance, MobyGames listed 120 games using SDL in 2013, and the SDL website itself listed around 700 games in 2012. Important commercial examples are Angry Birds, Unreal Tournament, and games developed using Valve's Source Engine, which uses SDL extensively for cross-platform compatibility; ones from the open-source domain are OpenTTD, The Battle for Wesnoth or Freeciv. The cross-platform game releases of the popular Humble Indie Bundles for Linux, Mac and Android are often SDL-based. SDL is also often used for later ports on new platforms with legacy code. For instance, the PC game Homeworld was ported to the Pandora handheld and Jagged Alliance 2 for Android via SDL. Also, several non video game programs use SDL; examples are the emulators, such as DOSBox, FUSE ZX Spectrum emulator and VisualBoyAdvance. There were several books written for development