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
sfml [Le 26/12/2008, 19:03]
213.95.41.13
sfml [Le 15/12/2020, 09:59]
Amiralgaby [AJOUT] du titre, je l'avais enlevé :(
Ligne 1: Ligne 1:
-{{tag>brouillon développement multimedia ​}} +{{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, RubyPython ​([[https://​www.sfml-dev.org/​download/​bindings.php|voir les autres bindings]]). 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,​ à 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.
-=====  Simple and Fast Multimedia Library ===== +
- +
-SFML 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,​ à l'​audio,​ etc. Elle rassemble toutes les fonctionnalités de la SDL (et bien d'​autres),​ tout en proposant des performances largement supérieures,​ grâce à l'​utilisation d'​OpenGL (accélération matérielle). Elle est distribuée sous la licence zlib/png.+
 Un de ses avantages est d'​être multiplateforme. Un de ses avantages est d'​être multiplateforme.
  
-Site officiel de la librairie (Français/​Anglais) : http://​www.sfml-dev.org/​index-fr.php+[[http://​www.sfml-dev.org/​index-fr.php|lien vers le site officiel]] de la bibliothèque (Français/​Anglais) :
 Vous y trouverez documentation,​ tutoriels et forums Vous y trouverez documentation,​ tutoriels et forums
  
-=== Fonctionnement ​===+===== Structure =====
  
 La SFML se divise en 5 modules : La SFML se divise en 5 modules :
-  * **System**: Base de la librairie, 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...)
Ligne 23: Ligne 19:
 La division en modules permet à chacun de n'​utiliser que ce dont il a besoin. La division en modules permet à chacun de n'​utiliser que ce dont il a besoin.
  
-D'un point de vue graphique, SFML utilise 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 même mixer les rendus SFML/​OpenGL.
  
  
-=== Installation ===+===== Installation ​de la SFML ===== 
 +==== Depuis les dépôts ====
  
-SFML n'​étant pas encore ​disponible dans quelque dépôt que ce soit, deux voies s'​ouvrent à vous : soit télécharger simplement le SDK de la dernière ​version ​en date (http://www.sfml-dev.org/​download-fr.php)soit récupérer ​les sources depuis le dépôt SVN et les compiler vous-même (c'est cette option que je recommande, du moins en C++)+SFML est disponible dans les dépôts Ubuntu dans sa version ​2.5.1dans les paquets libsfml-*.
  
-Voici comment compiler soi-même la librairie:​ +Installez ​le paquet ​**[[apt>​libsfml-dev]]** ou tapez dans un terminal la commande suivante :
-Tout d'​abord,​ vous aurez besoin d'un client SVN. Pour ce faire, installez ​le paquet ​subversion: ​[[apt://​subversion]]+
  
-<note important>Le site n'est désormais plus hébergé sur SourceForge et possède son propre nom de domaine (sfml-dev.org). Néanmoins, le serveur SVN de SourceForge est toujours utilisé pour le développement.</note>+<code>sudo apt-get install libsfml-dev</code>
  
-Ensuite, depuis un terminal: +==== Depuis ​les sources ​====
-<​code>​svn co https://​sfml.svn.sourceforge.net/​svnroot/​sfml sfml</​code>​ +
-Ce qui aura pour effet de placer dans le répertoire courant un dossier nommé sfml, et d'y télécharger ​les sources ​et les exemples de la librairie, tous langages confondus.+
  
-Avant de compiler, il vous faudra certains paquets, car SFML dépend de certaines ​librairies. De plus et bien évidemment,​ g++ aura du être au préalable installé.+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.
 Depuis un terminal, récupérez ces paquets ainsi: Depuis un terminal, récupérez ces paquets ainsi:
-<​code>​sudo apt-get install build-essential libgl1-mesa-dev ​libglew1.4-dev libxrandr-dev ​libsndfile1-dev libopenal-dev libpng12-dev libfreetype6-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>​ 
-**Attention !** Il se peut que les noms des paquets ne soient pas exactement ​les mêmes ​(notamment ​en fonction ​de leur version)+ 
 +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 : 
 +[[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 
 + 
 +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 : 
 +<​code>​sudo apt-get install cmake-gui</​code>​ 
 + 
 +Maintenant, lancez cmake-gui depuis un terminal ou de façon graphique, une fenêtre s'​affiche : 
 + 
 +{{https://​dl.dropboxusercontent.com/​u/​28570337/​tuto_ubuntu/​img1.png}} 
 + 
 +Comme sur la capture d'​écran,​ vous devez indiquer le chemin du dossier où sont les sources dans le premier champ, et vous devez indiquer le chemin vers un dossier dans lequel les sources seront compilées et les makefile générés (dans mon cas le dossier sfml-dev). Cliquez ensuite sur "​Configure"​ en bas à gauche de la fenêtre. 
 + 
 +{{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.  
 + 
 +<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}} 
 + 
 +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|sudo]] nécessite votre mot de passe). Pour ma part, voici les commandes que j'​exécute : 
 + 
 +<​code>​cd /​home/​valentin/​sfml-dev 
 +make 
 +sudo make install</​code>​
  
-<​note>​ +Et voilà, la SFML est normalement installée ! 
-Sous Hardy Heron (8.04) : <​code>​sudo apt-get install build-essential libgl1-mesa-dev libglew1.5-dev libxrandr-dev libsndfile1-dev libopenal-dev libpng12-dev libfreetype6-dev</​code>​ +
-</​note>​+
  
-Ceci fait, allez dans le répertoire "sfml" ​créé par SVN <​code>​cd sfml</​code>​ +<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 librarieslibsfml-graphics.so.2:​ cannot open shared object file: No such file or directory"​ que ce soit sur système 32 ou 64 bits. 
-et compilez ​en faisant: +Pour résoudre ce problème (pour toute architecture 32 ou 64), il faut (en utilisateur root) éditer le fichier /​etc/​ld.so.conf et rajouter la ligne "/usr/​local/​lib"​ (sans les guillemets). Enregistrez puis exécutez la commande "sudo ldconfig"​. Maintenant, votre programme devrait tourner ! 
-<​code>​make sfml</code>+Voici un récapitulatif des commandes que j'ai faites :
  
-<note>Snapshot du 20 mai 2008 : Si vous avez une erreur à propos de SFML/Window/glew/glew.h, commentez simplement la ligne 65 du fichier src/SFML/​Graphics/​GLEW/​glxew.h ​</​note>​+<code>sudo su 
 +nano /etc/ld.so.conf 
 +ldconfig<​/code></​note>​
  
-Puis, vous n'avez plus qu'à installer ​le tout: +==== Installez ​le Binding Python ====
-<​code>​sudo make install</​code>​+
  
-Attention cependant aux droits d'​accès ! Les librairies ayant été installées ​en "​sudo"​, vous devrez ​modifier leurs droits d'​accès (autoriser ​la lecture/​exécution) si vous voulez les utiliser par la suite sans être en "​sudo":​ +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.
-<​code>​sudo chmod -R 755 /​usr/​include/​SFML +
-sudo chmod 755 /​usr/​lib/​libsfml*</​code>​+
  
-Pour finir, supprimez les fichiers temporaires de la compilation: +Voyez pour cela [[http://​www.sfml-dev.org/​tutorials/​1.6/​start-python.php|le tutoriel]] (un peu dépassé)
-<​code>​make clean</code>+
  
-Plutôt simple, n'est-ce pas ?+<code bash> 
 +sudo apt-get install libxcb-image0 libxcb-image0-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)
  
-=== Binding Python ​===+===== Programmer =====
  
-Si vous souhaitez profiter de la SFML en Python, vous devrez installer le binding Python, et ce après avoir installé bien sûr la librairie C++ originale. +Un cours [[https://​www.sfml-dev.org/​tutorials/2.5/start-linux.php|tutoriel sur la page officiel]] ​ pour débuter, à traduire.
-Voyez pour cela le tutoriel : http://​www.sfml-dev.org/​tutorials/​start-python-fr.php+
  
 +===== Désinstallation =====
  
 +Supprimer les paquets que vous avez installé en souhaitant l'​utiliser.
 +[[tutoriel:​comment_supprimer_un_paquet|Comment supprimer un paquet ?]]
  • sfml.txt
  • Dernière modification: Le 11/09/2022, 11:51
  • par moths-art