Simple DirectMedia Layer
# Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones, gestión de efectos de sonido y música, además de carga y gestión de imágenes. Fueron desarrolladas inicialmente por Sam Lantinga, un desarrollador de videojuegos para la plataforma GNU/Linux.

Pese a estar programado en C, tiene wrappers a otros lenguajes de programación como C++, Ada, C#, BASIC, Erlang, Lua, Java, Python, Pascal, etc. También proporciona herramientas para el desarrollo de videojuegos y aplicaciones multimedia. Una de sus grandes virtudes es el tratarse de una biblioteca multiplataforma, siendo compatible oficialmente con los sistemas Microsoft Windows, GNU/Linux, Mac OS, Android, iOS, y HTML5 usando EMScripten así como consolas de videojuegos de forma no oficial, además de otras arquitecturas y sistemas como Sega Dreamcast, GP32, GP2X, etc.

La biblioteca se distribuye bajo la licencia LGPL, que es la que ha provocado el gran avance y evolución de SDL.

Aunque a partir de la versión 2.0 esta librería se encuentra bajo la Licencia ZLib, la cual permite el linkeado estático.

## Componentes adicionales

Se han desarrollado una serie de bibliotecas adicionales que complementan las funcionalidades y capacidades de la biblioteca base.

* SDL Mixer: Extiende las capacidades de SDL para la gestión y uso de sonido y música en aplicaciones y juegos. Es compatible con formatos de sonido como Wave, MP3 y OGG, y formatos de música como MOD, S3M, IT y XM.
* SDL Image: Extiende notablemente las capacidades para trabajar con diferentes formatos de imagen. Los formatos compatibles son los siguientes: BMP, JPEG, TIFF, PNG, PNM, PCX, XPM, LBM, GIF, y TGA,
* SDL Net: Proporciona funciones y tipos de dato multiplataforma para programar aplicaciones que trabajen con redes.
* SDL RTF: Posibilita el abrir para leer en aplicaciones SDL archivos de texto usando el formato Rich Text Format RTF.
* SDL TTF: Permite usar tipografías TrueType en aplicaciones SDL.

## Versiones disponibles

La nueva versión SDL 2.0 está disponible en los siguientes lenguajes de programación:

| C C++ C# (SDL.net) Genie | Pascal Python (PySDL2.0) Vala Gambas |
| - | - |

La antigua versión SDL 1.2 está disponible en los siguientes lenguajes de programación:

| Ada BASIC (sdlBasic) C C++ C# (SDL.net) D (Derelict) Eiffel Erlang Euphoria Guile Genie Haskell (HSDL) | Java Lisp Lua Objective-C Pascal Perl PHP Pike Pliant Python (pygame) Ruby Vala |
| - | - |

### Versión para .NET

SDL.NET es una biblioteca para .NET orientada a objetos compatible con CLS para SDL escrita por David Y. Hudson. Provee un acceso de alto nivel a las funciones de audio, teclado, ratón, mandos, tipografías TrueType, varios formatos de imagen, mezcla de sonido, películas en MPEG-1 y hardware 3D mediante OpenGL y framebuffer 2D de vídeo.

## Galería

* Unknown Horizons
* 0 A.D.
* Hedgewars
* Frets on Fire
* OpenTTD
* The Battle for Wesnoth
* Oolite (Elite Clone)
* Secret Maryo Chronicles
* Trine
