Ceci est une ancienne révision du document !



SDL : Simple DirectMedia Layer

La SDL (Simple DirectMedia Layer) est une Bibliothèque logicielle permettant de développer des programmes gérant le son, la vidéo, le clavier, la souris et le lecteur CD. Elle a notamment été utilisée pour le portage du jeu Civilization II sous Linux et le jeu Doom sous BeOS.

Cette page traite des 2 versions de la SDL.

La bibliothèque est compatible avec le langage C++ nativement et possède des bindings pour d'autres langages (la liste complète est disponible sur le site officiel).

Elle possède plusieurs bibliothèques annexes gérant chacune des éléments additionnels : images, polices, réseau, sons, etc

Installez le paquet libsdl1.2debian.

La libsdl2-2.0-0 permet de gérer plusieurs fenêtres et est celle couramment utilisée (voir plus bas pour une utilisation simple des librairies complémentaires)

Utiliser la commande suivante pour installer SDL2 avec toutes ces libraires:

sudo apt install libsdl2-2.0-0 libsdl2-gfx-1.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-net-2.0-0 libsdl2-ttf-2.0-0

Installez le paquet libsdl2-dev pour utiliser SDL2 mais le paquet libsdl1.2-dev est toujours utilisable.

Placez-vous dans le répertoire où sont enregistrées vos sources. L'installation d'SDL fourni un petit script sdl-config qui, appelé avec les paramètres –cflags ou –libs, renseigne correctement le compilateur. tapez alors :

gcc -o executable fichier1.c fichier2.c fichier3.c ...  `sdl-config --cflags --libs` 

gcc peut etre remplacé par g++ si vous programmez en C++.

Pour compiler plusieurs fichiers séparément puis les linker, utilisez :

gcc -c -Wall -Wextra main.c `sdl-config --cflags`
gcc -c -Wall -Wextra fichier1.c `sdl-config --cflags`
gcc -o executable main.o fichier1.o `sdl-config --libs`

Si vous avez installé le paquet libsdl2-dev et que vous programmez avec SDL2, utilisez sdl2-config au lieu de sdl-config.

Une fois la compilation terminée, vous pourrez lancer votre programme avec :

PATH=.:$PATH
executable

Ou, plus simplement, sans modifier la variable PATH, avec :

./executable

Vous pouvez trouver une liste complète des librairies annexes avec cette commande :

sudo apt search libsdl

Le tableau ci-dessous contient des liens pour télécharger les paquets des librairies annexes de la SDL1 :

Nom Utilité installation stable SDL1 installation dev SDL1
mixer gestion de l'audio libsdl-mixer1.2 libsdl-mixer1.2-dev
ttf écrire sur la fenêtre libsdl-ttf1.2 libsdl-ttf1.2-dev
image gestion d'image libsdl-image1.2 libsdl-image1.2-dev
net gestion du réseau libsdl-net1.2 libsdl-net1.2-dev
gfx dessin/effet graphique  libsdl-gfx1.2-5 libsdl-gfx1.2-dev
sound format des fichiers sonores libsdl-sound1.2  libsdl-sound-dev

Celui-ci pour les bibliothèques annexes de SDL2

Toutes bibliothèques SDL2 sont classifiées ainsi : libsdl2-type-2.0-0 pour les versions stable et libsdl2-type-dev pour celles en développement. Grâce à cette indexage vous pouvez les installer facilement depuis un terminal.

Nom Utilité installation stable SDL2 installation dev SDL2
mixer gestion de l'audio libsdl2-mixer-2.0-0 libsdl2-mixer-dev
ttf écrire sur la fenêtre libsdl2-ttf2.0-0 libsdl2-ttf-dev
image gestion d'image libsdl2-image-2.0-0 libsdl2-image-dev
net gestion du réseau libsdl2-net-2.0-0 libsdl2-net-dev
gfx dessin/effet graphique libsdl2-gfx-1.0-0 libsdl2-gfx-dev

SDL_mixer (Audio)

Cette librairie annexe permet la gestion de l'audio site officiel de cette librairie

SDL_tff (Écriture dans fenêtre graphique)

Cette librairie est utile pour écrire dans une fenêtre, elle s'appuie sur freetype2 (donc il faut freetype2) Elle a besoin de polices d'écriture. Voici des sites où vous pouvez trouver vos polices libres : Google Fonts , FontSquirrel.com , Fontain.org

Les links doit être placés après -lSDL_main et -lSDL pour SDL1 ou après -lSDL2_main et -lSDL2 si vous utilisez SDL2

Toutes les librairies se link en respectant ce modèle : -lSDL_type pour SDL1 et -lSDL2_type pour SDL2

Avec ces deux exemples vous comprendrez le principe qui est applicables à toutes les librairies

Nom link SDL1 link SDL2
mixer -lSDL_mixer  -lSDL2_mixer
ttf -lSDL_ttf -lSDL2_ttf
gcc -o prog `sdl-config --cflags --libs` -lSDL_mixer
gcc -o prog `sdl2-config --cflags --libs` -lSDL2_ttf

Si vous savez déjà programmer en C/C++ et que vous voulez apprendre à utiliser la SDL pour vos programmes, il y a de très bons tutoriels :

Voir aussi, si pour préférez python, la librairie pygame


Contributeurs : lost-in-the-shell, sully.

  • sdl.1603996255.txt.gz
  • Dernière modification: Le 29/10/2020, 19:30
  • par amiralgaby