# Programmation avec la SDL/Introduction

La SDL ou Simple DirectMedia Layer est une bibliothèque multimédia sous licence GNU LGPL pour les versions 1.x, et sous licence zlib pour les versions 2.x. Le fait qu'elle soit sous cette licence (zlib) permet de l'utiliser gratuitement aussi bien pour le plaisir que pour la création de programmes à des fins commerciales, ou encore de modifier le code source. Ainsi, elle est très utilisée pour créer des applications multimédia en deux dimensions telles que des jeux vidéos, des démos graphiques, des émulateurs... Elle permet une grande liberté dans la création de ces programmes et l'existence de greffons tels que SDL_Image ou SDL_ttf permet d'étendre encore plus ses possibilités de création. Elle est compatible avec un grand nombre de systèmes d'exploitation dont Linux, Windows et Mac OS X.
En 2013 a eu lieu un grand changement au sein de la SDL qui a abouti à la naissance de la SDL 2.0. C'est cette version que nous étudierons, tout en proposant à l'habitué de la version 1.2 la possibilité de s'y convertir. Il faut souligner qu'il n'existe pas encore de Release officiel de la SDL 2.0 (elle est encore en construction) et ne peut donc pas être considérée comme stable bien que la version que nous vous proposerons de télécharger à la page suivante fonctionne bien. Cependant, nous avons pensé qu'apprendre à se servir de la SDL 1.2 aujourd'hui serait un effort vain puisque que l'on passera officiellement à la version 2.0 d'ici peu.
Ce livre a pour but de permettre au lecteur d'apprendre à utiliser la SDL de manière suffisamment approfondie pour qu'il soit ensuite capable de coder un jeu vidéo, un éditeur de texte, une calculatrice graphique, un tableur, pourquoi pas un logiciel de MAO, etc. Cela peut paraître beaucoup mais en fait, la SDL est tellement souple dans ce qu'on peut faire qu'il ne suffit que d'un peu d'imagination pour y arriver. Nous voulons également donner la possibilité de comprendre simplement la totalité des fonctions de la SDL.

## Prérequis

Il est indispensable de connaître le langage C afin de continuer la lecture de ce livre. C'est pourquoi il est fortement recommandé de lire tout d'abord le Wikilivre sur la Programmation C. Malgré cela, les prérequis ne consistent pas en une connaissance approfondie du langage C. Il est fort probable que nous n'utiliserons pas d'outil plus complexe que les pointeurs ou les tableaux, et s'il s'avérait qu'un chapitre nécessite une notion nouvelle pour vous, rien ne vous empêche de rapidement la découvrir, l'assimiler et reprendre la lecture de ce livre là où vous en étiez.

## Quelques liens utiles

Pour le moment, il n'existe que peu de ressources disponibles sur la SDL 2.0. Cependant, rien ne vous empêche de consulter certaines ressources sur la SDL 1.2 : il y a de nombreuses similitudes entre les deux versions.
* www.libsdl.org : Le site officiel de la SDL. Vous pouvez y télécharger la documentation officielle et le code source de la SDL 1.2. On y trouve aussi quelques ressources sur la SDL 2.0 dans la partie Documentation.
* wiki.libsdl.org : La principale documentation sur la SDL 2.0 (principalement en anglais)
* fr.wikipedia.org : Page Wikipédia sur la SDL.
* Zeste de Savoir: Cours de Karnaj sur l'utilisation de la SDL 2.0 en C, vous pouvez aussi y retrouver un cours sur le langage C écrit par Lucas-84, paraze, Taurre et informaticienzero.