Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
sdl [Le 29/07/2020, 08:32]
79.91.215.183 [Bibliothèques complémentaires]
sdl [Le 17/01/2021, 12:40]
amiralgaby [Compiler vos programmes SDL avec des librairies annexes] amélioration de la mise en page
Ligne 1: Ligne 1:
-{{tag>​Xenial programmation ​BROUILLON}}+{{tag>​Xenial programmation }}
  
 ---- ----
Ligne 5: Ligne 5:
 ====== SDL : Simple DirectMedia Layer ====== ====== SDL : Simple DirectMedia Layer ======
  
- +La [[http://​www.libsdl.org/​|SDL]] //(Simple DirectMedia Layer)// est une [[wpfr>​Bibliothèque logicielle]] permettant de développer des programmes gérant le son, la vidéo, le clavier, la souris et le lecteur CD.
-La [[http://​www.libsdl.org/​|SDL]] //(Simple DirectMedia Layer)// est une [[wpfr>​Bibliothèque logicielle]] permettant de développer des programmes gérant le son, la vidéo, le clavier, la souris et le lecteur CD avec plusieurs langages (la liste complète est disponible sur le [[http://​www.libsdl.org/​|site officiel]].+
 Elle a notamment été utilisée pour le portage du jeu [[wpfr>​Civilization|Civilization II]] sous Linux et le jeu [[wpfr>​Doom]] sous BeOS. Elle a notamment été utilisée pour le portage du jeu [[wpfr>​Civilization|Civilization II]] sous Linux et le jeu [[wpfr>​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 [[http://​www.libsdl.org/​|site officiel]]).
  
 +Elle possède plusieurs bibliothèques annexes gérant chacune des éléments additionnels : images, polices, réseau, sons, etc
 ===== Pour une utilisation simple ===== ===== Pour une utilisation simple =====
  
 [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​libsdl1.2debian]]**. [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt>​libsdl1.2debian]]**.
  
 +La **[[apt>​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) (voir plus bas pour une utilisation simple des librairies complémentaires)
  
Ligne 54: Ligne 57:
 ===== Bibliothèques complémentaires ===== ===== Bibliothèques complémentaires =====
  
-Pour installer SDL_image, SDL_ttf et SDL_mixer: [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt://libsdl-image1.2 libsdl-image1.2-dev ​libsdl-ttf2.0-0 , libsdl-ttf2.0-dev libsdl-mixer1.2 libsdl-mixer1.2-dev|libsdl-image1.2 ​libsdl-image1.2-dev ​libsdl-ttf2.0-0 , libsdl-ttf2.0-dev ​,libsdl-mixer1.2 ,libsdl-mixer1.2-dev]]**.+Vous pouvez trouver une liste complète des librairies annexes avec cette commande ​: 
 + 
 +<​code>​sudo apt search libsdl</​code>​ 
 + 
 +---- 
 + 
 +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 | **[[apt>​libsdl-mixer1.2|libsdl-mixer1.2]]**| **[[apt>libsdl-mixer1.2-dev|libsdl-mixer1.2-dev]]** |  
 +|ttf| écrire sur la fenêtre| **[[apt>libsdl-ttf1.2|libsdl-ttf1.2]]**| **[[apt>libsdl-ttf1.2-dev|libsdl-ttf1.2-dev]]** | 
 +|image| gestion d'​image | **[[apt>libsdl-image1.2|libsdl-image1.2]]****[[apt>libsdl-image1.2-dev|libsdl-image1.2-dev]]** | 
 +|net| gestion du réseau| **[[apt>libsdl-net1.2|libsdl-net1.2]]**| **[[apt>​libsdl-net1.2-dev|libsdl-net1.2-dev]]** | 
 +|gfx| dessin/​effet graphique | **[[apt>​libsdl-gfx1.2-5|libsdl-gfx1.2-5]]** | **[[apt>​libsdl-gfx1.2-dev|libsdl-gfx1.2-dev]]** | 
 +|sound| format des fichiers sonores| **[[apt>​libsdl-sound1.2|libsdl-sound1.2]]** | **[[apt>​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 | **[[apt>​libsdl2-mixer-2.0-0|libsdl2-mixer-2.0-0]]**| **[[apt>​libsdl2-mixer-dev|libsdl2-mixer-dev]]** |  
 +|ttf| écrire sur la fenêtre| **[[apt>​libsdl2-ttf-2.0-0|libsdl2-ttf2.0-0]]**| **[[apt>​libsdl2-ttf-dev|libsdl2-ttf-dev]]** | 
 +|image| gestion d'​image | **[[apt>​libsdl2-image-2.0-0|libsdl2-image-2.0-0]]**| **[[apt>​libsdl2-image-dev|libsdl2-image-dev]]** | 
 +|net| gestion du réseau| **[[apt>​libsdl2-net-2.0-0|libsdl2-net-2.0-0]]**| **[[apt>​libsdl2-net-dev|libsdl2-net-dev]]** ​
 +|gfx| dessin/​effet graphique | **[[apt>​libsdl2-gfx-1.0-0|libsdl2-gfx-1.0-0]]** | **[[apt>​libsdl2-gfx-dev|libsdl2-gfx-dev]]** | 
 + 
 +==== SDL_mixer (Audio) ==== 
 +Cette librairie annexe permet la gestion de l'​**audio** [[https://​www.libsdl.org/​projects/​SDL_mixer/​ | 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). 
 + 
 +[[https://​www.libsdl.org/​projects/​SDL_ttf/​ | site officiel]] 
 + 
 +Vous aurez besoin de polices d'​écriture. 
 +Voici des sites où vous pouvez trouver vos polices libres : [[https://​fonts.google.com/​ | Google Fonts]] , [[https://​www.fontsquirrel.com/​ | FontSquirrel.com]] , [[https://​fontain.org/​ | Fontain.org]] 
 + 
 +==== SDL_image (gestion des images) ==== 
 +Cette librairie permet de charger des images, d'​analyser un fichier pour connaître son format d'​image. 
 +[[https://​www.libsdl.org/​projects/​SDL_image/​ | site officiel]] 
 + 
 +==== SDL_net (gestion des paquets/​trames) ==== 
 +Cette librairie permet de former des sockets et des paquets pour les protocoles TCP et UDP [[https://​www.libsdl.org/​projects/​SDL_net/​ | site officiel]] 
 + 
 +===== Compiler vos programmes SDL avec des librairies annexes ===== 
 +<​note>​Les links doivent être placés après ''​-lSDL_main''​ et ''​-lSDL''​ pour **SDL1** ou après ''​-lSDL2_main''​ et ''​-lSDL2''​ si vous utilisez **SDL2**, sauf si vous utilisez sdl-config bien évidemment</​note>​ 
 +Toutes les librairies se link en respectant ce modèle : ''​-lSDL_**type**''​ pour SDL1 et ''​-lSDL2_**type**''​ pour SDL2
  
-Les options respectives à ajouter à la compilation avec GCC (après **-lSDLmain -lSDL**) sont +Par exemple ​
-<​code>​ +<​code>​gcc -o prog fichier1.c fichier2.c `sdl-config --cflags --libs` ​-lSDL_mixer</​code>​ 
--lSDL_image # pour SDL_image +<​code>​gcc -o prog fichier1.c fichier2.c `sdl2-config --cflags --libs` -lSDL2_ttf</​code>​
--lSDL_ttf # pour SDL_ttf +
--lSDL_mixer ​# pour SDL_mixer +
-</​code>​+
  
 ===== Pour aller plus loin ===== ===== Pour aller plus loin =====
  
 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 : 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 :
-  * [[http://fr.openclassrooms.com/|OpenClassrooms]] +  * [[https://zestedesavoir.com/​tutoriels/​1014/​utiliser-la-sdl-en-langage-c/|Zest de savoir]] (dernière mise à jour 27/12/2018) 
-  * [[http://c.developpez.com/​|Développez.com]] +  * [[https://loka.developpez.com/​tutoriel/​sdl/​|Développez.com]]  
-  * [[http://www.gnurou.org/writing/linuxmag/sdl|gnurou.org]]+  * [[https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/​17117-installation-de-la-sdl|OpenClassrooms]] (dernière mise à jour 09/06/2020)
  
 Voir aussi, si pour préférez [[:​python]],​ la librairie [[wpfr>​pygame]] Voir aussi, si pour préférez [[:​python]],​ la librairie [[wpfr>​pygame]]
Ligne 74: Ligne 124:
 ---- ----
  
-//​Contributeurs : [[:​utilisateurs:​lost-in-the-shell]],​ [[:​utilisateurs:​sully]].//​+//​Contributeurs : [[:​utilisateurs:​lost-in-the-shell]],​ [[:​utilisateurs:​sully]], [[:​utilisateurs:​amiralgaby]].//
  • sdl.txt
  • Dernière modification: Le 19/03/2023, 16:52
  • par Amiralgaby