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
sfml [Le 03/12/2020, 18:15]
Amiralgaby [modif de la page] restructuration de la page
sfml [Le 11/09/2022, 11:51] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 {{tag>​programmation multimédia BROUILLON}} {{tag>​programmation multimédia BROUILLON}}
 +====== SFML : Simple and Fast Multimedia Library======
 +**SFML** (Simple and Fast Multimedia Library) est une API Multimedia 2D, créée à l’origine en C++, et maintenant également disponible en C, Ruby, Python – voir également les [[https://​www.sfml-dev.org/​download/​bindings.php|autres bindings]]. Elle est apparue en juillet 2007.
  
-**SFML** (Simple and Fast Multimedia Library) est une API Multimedia 2D, créée à l'​origine en C++, et maintenant également disponible en C, Ruby et Python. Elle est apparue en Juillet 2007. +Elle est orientée objet et fournit un accès bas niveau et haut niveau aux graphismes, aux évènements,​ à laudio, etc. Elle rassemble toutes les fonctionnalités de la [[:​sdl|SDL]] (et bien dautres), tout en proposant des performances largement supérieures,​ grâce à lutilisation d[[:​opengl|OpenGL]] (accélération matérielle). Elle est distribuée sous la licence ​//zlib/png//. Un de ses avantages est dêtre multiplateforme.
-Elle est orientée objet et fournit un accès bas niveau et haut niveau aux graphismes, aux évènements,​ à l'audio, etc. Elle rassemble toutes les fonctionnalités de la [[:​sdl|SDL]] (et bien d'autres), tout en proposant des performances largement supérieures,​ grâce à l'utilisation d'[[:​opengl|OpenGL]] (accélération matérielle). Elle est distribuée sous la licence zlib/png. +
-Un de ses avantages est d'être multiplateforme.+
  
-Site officiel ​de la bibliothèque (Français/​Anglais) ​http://​www.sfml-dev.org/​index-fr.php +Site web officiel, en français et en anglais [[https://​www.sfml-dev.org/​index-fr.php|sfml-dev.org]] (lien visité le 24/​01/​2022). 
-Vous y trouverez documentation,​ tutoriels et forums+Vous y trouverez documentation,​ tutoriels et forums.
  
 ===== Structure ===== ===== Structure =====
  
-La SFML se divise ​en 5 modules : +La SFML est divisée ​en 5 modules : 
-  * **System**: ​Base de la bibliothèque,​ et multi-threading +  * **System** : ​base de la bibliothèque,​ et multi-threading 
-  * **Window**: ​Fenêtrage +  * **Window** : ​fenêtrage 
-  * **Graphics**: ​Gestion ​de la 2D (sprites, chaînes de caractères affichables,​ effets...+  * **Graphics** : ​gestion ​de la 2D (sprites, chaînes de caractères affichables,​ effets
-  * **Audio**: ​Gestion ​du son +  * **Audio** : ​gestion ​du son 
-  * **Network**: ​Gestion ​du réseau+  * **Network** : ​gestion ​du réseau.
  
-La division en modules permet à chacun de n'utiliser que ce dont il a besoin+La division en modules permet à chacun de nutiliser que ce dont il a besoin.
- +
-D'un point de vue graphique, SFML utilise [:​opengl|OpenGL] en interne, ainsi vous pouvez sans aucun problème et encore plus simplement qu'​avec la SDL (pas d'​initialisation nécessaire) utiliser vos propres appels OpenGL, voire même mixer les rendus SFML/OpenGL.+
  
 +D’un point de vue graphique, SFML utilise [[:​opengl|OpenGL]] en interne. Ainsi vous pouvez sans aucun problème, et encore plus simplement qu’avec la SDL (pas d’initialisation nécessaire),​ utiliser vos propres appels OpenGL, voire mixer les rendus SFML/​OpenGL.
  
 ===== Installation de la SFML ===== ===== Installation de la SFML =====
 ==== Depuis les dépôts ==== ==== Depuis les dépôts ====
  
-SFML est disponible dans les dépôts Ubuntu dans sa version 2.5, dans les paquets libsfml-*.+SFML est disponible dans les dépôts Ubuntu dans sa version 2.5.1, dans les paquets libsfml-*.
  
 Installez le paquet **[[apt>​libsfml-dev]]** ou tapez dans un terminal la commande suivante : Installez le paquet **[[apt>​libsfml-dev]]** ou tapez dans un terminal la commande suivante :
Ligne 33: Ligne 32:
 ==== Depuis les sources ==== ==== Depuis les sources ====
  
-Pour compiler et installer SFML depuis le code source, on peut suivre le tutoriel de Laurent Gomila à l'​adresse suivante : [[http://​sfml-dev.org/​tutorials/​2.1/​compile-with-cmake-fr.php|Compiler SFML avec CMake]]. Je vais suivre ce tutoriel et vous indiquer ce qu'il faut faire pour Ubuntu.+Pour compiler et installer SFML depuis le code source, on peut suivre le tutoriel de Laurent Gomila à l'​adresse suivante : [[http://​sfml-dev.org/​tutorials/​2.5/​compile-with-cmake-fr.php|Compiler SFML avec CMake]]. Je vais suivre ce tutoriel et vous indiquer ce qu'il faut faire pour Ubuntu.
  
 Tout d'​abord,​ il vous faudra certains paquets, car SFML dépend de certaines bibliothèques. Tout d'​abord,​ il vous faudra certains paquets, car SFML dépend de certaines bibliothèques.
Ligne 39: Ligne 38:
 <​code>​sudo apt-get install g++ build-essential libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew-dev libjpeg-dev libsndfile1-dev libopenal-dev</​code>​ <​code>​sudo apt-get install g++ build-essential libpthread-stubs0-dev libgl1-mesa-dev libx11-dev libxrandr-dev libfreetype6-dev libglew-dev libjpeg-dev libsndfile1-dev libopenal-dev</​code>​
  
-Ensuite, téléchargez les sources depuis la page de téléchargements de SFML, voici le lien direct vers les sources de la version 2.1 : +Ensuite, téléchargez les sources depuis la page de téléchargements de SFML, voici le lien direct vers les sources de la version 2.5.1 : 
-[[http://​sfml-dev.org/​download/​sfml/​2.1/​SFML-2.1-sources.zip|Sources de SFML 2.1]]+[[https://www.sfml-dev.org/​download/​sfml/​2.5.1/index-fr.php|Sources de SFML 2.5.1]]
  
 Si la version a changé depuis, vous pouvez aller sur la page générale des téléchargements pour trouver les nouvelles sources (en bas de la page de la dernière version stable) : http://​sfml-dev.org/​download-fr.php Si la version a changé depuis, vous pouvez aller sur la page générale des téléchargements pour trouver les nouvelles sources (en bas de la page de la dernière version stable) : http://​sfml-dev.org/​download-fr.php
  
-Une fois le code source téléchargé,​ dézippez l'​archive dans votre dossier home (chemin : /​home/​votreNom/​) par exemple. Vous devez avoir un fichier CMakeLists.txt accessible via le chemin /​home/​votreNom/​SFML-x.x/​CMakeLists.txt avec SFMLx.x votre version de SFML (SFML-2.1 dans mon cas).+Une fois le code source téléchargé,​ dézippez l'​archive dans votre dossier home (chemin : **/​home/​votreNom/​**) par exemple. Vous devez avoir un fichier CMakeLists.txt accessible via le chemin ​**/​home/​votreNom/​SFML-x.x/​CMakeLists.txt** avec SFMLx.x votre version de SFML.
  
-Installez [:​cmake|cmake] avec la version graphique cmake-gui, qui vous permettra de générer des makefile correspondant à votre système avec les sources de SFML :+Installez ​[[:​cmake|cmake]] avec la version graphique cmake-gui, qui vous permettra de générer des makefile correspondant à votre système avec les sources de SFML :
 <​code>​sudo apt-get install cmake-gui</​code>​ <​code>​sudo apt-get install cmake-gui</​code>​
  
Ligne 57: Ligne 56:
 {{https://​dl.dropboxusercontent.com/​u/​28570337/​tuto_ubuntu/​img2.png}} {{https://​dl.dropboxusercontent.com/​u/​28570337/​tuto_ubuntu/​img2.png}}
  
-Sur la fenêtre qui apparaît, laissez les options par défaut et cliquez sur Finish. Cmake vérifie que vous avez toutes les dépendances nécessaires à la compilation de SFML. Si tout se passe bien, le message "​Configuratig done." s'​affiche en bas de la fenêtre, et des lignes apparaissent sur fond rouge comme dans la capture d'​écran ci-dessous. ​+Sur la fenêtre qui apparaît, laissez les options par défaut et cliquez sur Finish. Cmake vérifie que vous avez toutes les dépendances nécessaires à la compilation de SFML. Si tout se passe bien, le message "​Configuratig done." s'​affiche en bas de la fenêtre, et des lignes apparaissent sur fond rouge comme dans la capture d'​écran ci-dessous.
  
-<note important>​Si quelque chose s'est mal passé, c'est qu'il vous manque quelque chose, réinstallez les librairies (commande plus haut) ou référez-vous au tutoriel officiel du site SFML.</​note>​+<note important>​Si quelque chose s'est mal passé, c'est qu'il vous manque quelque chose, réinstallez les librairies (commande plus haut) ou référez-vous au [[https://​www.sfml-dev.org/​tutorials/​2.5/​compile-with-cmake-fr.php|tutoriel officiel]] du site SFML.</​note>​
  
 {{https://​dl.dropboxusercontent.com/​u/​28570337/​tuto_ubuntu/​img3.png}} {{https://​dl.dropboxusercontent.com/​u/​28570337/​tuto_ubuntu/​img3.png}}
Ligne 65: Ligne 64:
 Pour ma part, j'ai laissé les options par défaut, vous avez les détails de ces options sur le tutoriel officiel du site SFML. Recliquez sur "​Configure",​ le fond des lignes passe alors en blanc. Pour générer les makefile, cliquez maintenant sur "​Generate"​. Une fois que le message "​Generating done" apparaît, vous pouvez fermer cmake-gui : les makefile sont générés. Pour ma part, j'ai laissé les options par défaut, vous avez les détails de ces options sur le tutoriel officiel du site SFML. Recliquez sur "​Configure",​ le fond des lignes passe alors en blanc. Pour générer les makefile, cliquez maintenant sur "​Generate"​. Une fois que le message "​Generating done" apparaît, vous pouvez fermer cmake-gui : les makefile sont générés.
  
-Pour effectuer l'​installation de SFML, allez dans le dossier où vous avez généré les fichiers, et effectuez les commandes "​make"​ puis "sudo make install"​ (le sudo nécessite votre mot de passe). Pour ma part, voici les commandes que j'​exécute :+Pour effectuer l'​installation de SFML, allez dans le dossier où vous avez généré les fichiers, et effectuez les commandes "​make"​ puis "sudo make install"​ (le [[:sudo|sudo]] ​nécessite votre mot de passe). Pour ma part, voici les commandes que j'​exécute :
  
 <​code>​cd /​home/​valentin/​sfml-dev <​code>​cd /​home/​valentin/​sfml-dev
Ligne 71: Ligne 70:
 sudo make install</​code>​ sudo make install</​code>​
  
-Et voilà, la SFML est normalement installée ! +Et voilà, la SFML est normalement installée !
  
 <note important>​Mais il reste encore une chose à faire dans certains cas. En effet, après avoir compilé mon programme SFML (ou essayé d'​exécuter les exemples), j'ai eu l'​erreur suivante : "error while loading shared libraries: libsfml-graphics.so.2:​ cannot open shared object file: No such file or directory"​ que ce soit sur système 32 ou 64 bits. <note important>​Mais il reste encore une chose à faire dans certains cas. En effet, après avoir compilé mon programme SFML (ou essayé d'​exécuter les exemples), j'ai eu l'​erreur suivante : "error while loading shared libraries: libsfml-graphics.so.2:​ cannot open shared object file: No such file or directory"​ que ce soit sur système 32 ou 64 bits.
Ligne 83: Ligne 82:
 ==== Installez le Binding Python ==== ==== Installez le Binding Python ====
  
-Si vous souhaitez profiter de la SFML en [[:pyhton|Python]], vous devrez installer le binding Python, et ce après avoir installé bien sûr la bibliothèque C++ originale.+Si vous souhaitez profiter de la SFML en [[:python|Python]], vous devrez installer le binding Python, et ce après avoir installé bien sûr la bibliothèque C++ originale.
  
-Voyez pour cela le tutoriel : http://​www.sfml-dev.org/​tutorials/​1.6/​start-python.php (un peu dépassé)+Voyez pour cela [[https://​www.sfml-dev.org/​tutorials/​1.6/​start-python.php|le tutoriel]] ​(un peu dépassé)
  
-<code bash> +  ​sudo apt-get install libxcb-image0 libxcb-image0-dev 
-sudo apt-get install libxcb-image0 libxcb-image0-dev +  sudo apt-get install libudev-dev 
-sudo apt-get install libudev-dev +   
-</​code>​ +Ces deux entrées vous seront utiles pour que cmake parviennent a s'​installer sans soucis. FIXME (à vérifier)
-ces deux entrées vous seront utiles pour que cmake parviennent a s'​installer sans soucis. FIXME (à vérifier)+
  
 ===== Programmer ===== ===== Programmer =====
  • sfml.1607015734.txt.gz
  • Dernière modification: Le 03/12/2020, 18:15
  • par Amiralgaby
  • Actuellement bloqué par: 18.223.209.254,10.42.2.254