Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| sdl [Le 29/10/2020, 19:30] – Finition pour des liens apt SDL2 amiralgaby | sdl [Le 17/05/2025, 14:44] (Version actuelle) – correction mineures Amiralgaby | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Xenial | + | {{tag>Noble programmation}} |
| ---- | ---- | ||
| Ligne 5: | Ligne 5: | ||
| ====== SDL : Simple DirectMedia Layer ====== | ====== SDL : Simple DirectMedia Layer ====== | ||
| - | La [[http:// | + | La [[http:// |
| - | Elle a notamment été utilisée pour le portage du jeu [[wpfr> | + | Elle a notamment été utilisée pour le portage du jeu [[wpfr> |
| - | Cette page traite des 2 versions de la SDL. | + | Cette page traite des deux versions de la SDL. |
| - | La bibliothèque est compatible avec le langage C++ nativement | + | La bibliothèque est compatible |
| - | Elle possède plusieurs bibliothèques annexes gérant chacune des éléments | + | Elle possède plusieurs bibliothèques annexes gérant chacune des éléments |
| - | ===== Pour une utilisation simple ===== | + | |
| - | [[: | + | < |
| + | ===== Installation ===== | ||
| + | < | ||
| + | |||
| + | ==== Première version de SDL ==== | ||
| + | Pour installer les fichiers de développement, | ||
| + | Pour la version 1 stable [[: | ||
| + | |||
| + | ==== Pour une utilisation simple de SDL2 ==== | ||
| La **[[apt> | La **[[apt> | ||
| (voir plus bas pour une utilisation simple des librairies complémentaires) | (voir plus bas pour une utilisation simple des librairies complémentaires) | ||
| - | ===== Installation complète | + | ==== Installation complète |
| Utiliser la commande suivante pour installer SDL2 avec toutes ces libraires: | Utiliser la commande suivante pour installer SDL2 avec toutes ces libraires: | ||
| - | < | + | |
| - | ===== Installer la version pour les développeurs ===== | + | ==== Installer la version |
| + | [[: | ||
| + | ==== Version en cours de développement - compilation/ | ||
| + | La version 3 de SDL (qui est actuellement en développement) est disponible sur le GitHub du projet [[https:// | ||
| - | [[: | + | Clonez |
| + | cmake -S . -B build && cmake --build build && cmake --install build | ||
| - | + | Ensuite pourrez l' | |
| - | + | ||
| - | ===== Compiler un programme en C/SDL avec GCC ou g++===== | + | |
| - | + | ||
| - | 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é | + | |
| - | + | ||
| - | 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=.: | + | |
| - | executable | + | |
| - | + | ||
| - | Ou, plus simplement, sans modifier la variable PATH, avec : | + | |
| - | + | ||
| - | ./ | + | |
| ===== Bibliothèques complémentaires ===== | ===== Bibliothèques complémentaires ===== | ||
| Ligne 59: | Ligne 46: | ||
| Vous pouvez trouver une liste complète des librairies annexes avec cette commande : | Vous pouvez trouver une liste complète des librairies annexes avec cette commande : | ||
| - | < | + | |
| ---- | ---- | ||
| Ligne 65: | Ligne 52: | ||
| Le tableau ci-dessous contient des liens pour télécharger les paquets des librairies annexes de la SDL1 : | 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** | | + | ^ Nom ^ Utilité |
| - | |mixer| gestion de l' | + | |mixer| gestion de l' |
| |ttf| écrire sur la fenêtre| **[[apt> | |ttf| écrire sur la fenêtre| **[[apt> | ||
| |image| gestion d' | |image| gestion d' | ||
| Ligne 72: | Ligne 59: | ||
| |gfx| dessin/ | |gfx| dessin/ | ||
| |sound| format des fichiers sonores| **[[apt> | |sound| format des fichiers sonores| **[[apt> | ||
| - | |||
| ---- | ---- | ||
| + | |||
| Celui-ci pour les bibliothèques annexes de SDL2 | 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. | + | Toutes bibliothèques SDL2 sont classifiées ainsi : __libsdl2-**nom**-2.0-0__ pour les versions stable et __libsdl2-**nom**-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** | | + | ^ Nom ^ Utilité |
| - | |mixer| gestion de l' | + | |mixer| gestion de l' |
| |ttf| écrire sur la fenêtre| **[[apt> | |ttf| écrire sur la fenêtre| **[[apt> | ||
| |image| gestion d' | |image| gestion d' | ||
| Ligne 87: | Ligne 74: | ||
| ==== SDL_mixer (Audio) ==== | ==== SDL_mixer (Audio) ==== | ||
| - | Cette librairie annexe permet la gestion de l' | + | Cette librairie annexe permet la gestion de l' |
| + | ==== SDL_ttf (Écriture dans fenêtre graphique)==== | ||
| + | Cette librairie est utile pour écrire dans une fenêtre, elle s' | ||
| - | ==== SDL_tff (Écriture dans fenêtre graphique)==== | + | [[https:// |
| - | Cette librairie est utile pour écrire dans une fenêtre, elle s' | + | |
| - | Elle a besoin de polices d' | + | Vous aurez besoin de polices d' |
| Voici des sites où vous pouvez trouver vos polices libres : [[https:// | Voici des sites où vous pouvez trouver vos polices libres : [[https:// | ||
| + | |||
| + | ==== SDL_image (gestion des images) ==== | ||
| + | Cette librairie permet de charger des images, d' | ||
| + | [[https:// | ||
| + | |||
| + | ==== SDL_net (gestion des paquets/ | ||
| + | Cette librairie permet de former des sockets et des paquets pour les protocoles TCP et UDP [[https:// | ||
| + | |||
| + | ===== Compiler un programme en C/SDL avec GCC ou g++===== | ||
| + | < | ||
| + | <note important> | ||
| + | |||
| + | Placez-vous dans le répertoire où sont enregistrées vos sources. L' | ||
| + | |||
| + | gcc -o executable fichier1.c fichier2.c fichier3.c ... $(sdl2-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 $(sdl2-config --cflags) | ||
| + | gcc -o executable main.o fichier1.o $(sdl2-config --libs) | ||
| + | |||
| + | Pour exécuter : | ||
| + | |||
| + | ./ | ||
| ===== Compiler vos programmes SDL avec des librairies annexes ===== | ===== Compiler vos programmes SDL avec des librairies annexes ===== | ||
| - | < | + | < |
| - | Toutes les librairies se link en respectant ce modèle : //-lSDL_**type**// pour SDL1 et //-lSDL2_**type**// pour SDL2 | + | Toutes les librairies se link en respectant ce modèle : '' |
| - | Avec ces deux exemples vous comprendrez le principe qui est applicables à toutes les librairies | + | Par exemple : |
| - | |**Nom**| **link SDL1** | **link SDL2**| | + | gcc -o prog fichier1.c fichier2.c $(sdl-config --cflags --libs) -lSDL_mixer |
| - | |mixer| -lSDL_mixer | -lSDL2_mixer | | + | gcc -o prog fichier1.c fichier2.c $(sdl2-config --cflags --libs) -lSDL2_ttf |
| - | |ttf| -lSDL_ttf | -lSDL2_ttf| | + | |
| - | + | ||
| - | < | + | |
| - | < | + | |
| ===== 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 : | ||
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | * [[https:// |
| - | + | * [[https:// | |
| - | Voir aussi, si pour préférez [[: | + | |
| ---- | ---- | ||
| - | // | + | // |
