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 19/01/2021, 10:22]
amiralgaby utilisation du double espace plutot que la balise code
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 20: Ligne 23:
  
 Utiliser la commande suivante pour installer SDL2 avec toutes ces libraires: Utiliser la commande suivante pour installer SDL2 avec toutes ces libraires:
-<​code>​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</​code>​+  ​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
  
 ===== Installer la version pour les développeurs ===== ===== Installer la version pour les développeurs =====
Ligne 43: Ligne 46:
 **Si vous avez installé le paquet libsdl2-dev et que vous programmez avec SDL2, utilisez sdl2-config au lieu de sdl-config.** **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 : +Simplement, sans modifier la variable ​[[:​variables_d_environnement#​variables_liees_aux_emplacements_de_fichiers|PATH]], avec :
- +
-  PATH=.:​$PATH +
-  executable +
-   +
-Ou, plus simplement, sans modifier la variable PATH, avec :+
  
   ./​executable   ./​executable
Ligne 54: Ligne 52:
 ===== 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>​ +  ​gcc ​-o prog fichier1.c fichier2.c `sdl-config --cflags --libs` ​-lSDL_mixer 
--lSDL_image # pour SDL_image +  gcc -o prog fichier1.c fichier2.c `sdl2-config --cflags --libs` -lSDL2_ttf
--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 119:
 ---- ----
  
-//​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