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 02/01/2014, 17:54]
77.203.125.9 [Simple and Fast Multimedia Library]
sfml [Le 14/06/2021, 16:34] (Version actuelle)
Amiralgaby [Installez le Binding Python] amélioration
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, 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 bibliothèque (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 :
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 de la SFML ==== +===== Installation de la SFML ===== 
-=== Version 1.6 ===+==== Depuis les dépôts ====
  
-SFML est disponible dans les dépôts Ubuntu dans sa version ​1.6, dans les paquets libsfml-*. ​Il vous suffit donc de faire la commande suivante ​pour installer SFML dans sa version 1.6 sur Ubuntu ​:+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 :
  
 <​code>​sudo apt-get install libsfml-dev</​code>​ <​code>​sudo apt-get install libsfml-dev</​code>​
  
-=== Dernière version (2.1 actuellement) ​===+==== Depuis les sources ====
  
-La dernière version de SFML (2.1 à l'​heure où j'​écris ces lignes) n'est pas disponible dans les dépôts d'​Ubuntu. Afin de l'​installer, 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.
 Depuis un terminal, récupérez ces paquets ainsi: Depuis un terminal, récupérez ces paquets ainsi:
-<​code>​sudo apt-get install g++ build-essential ​libpth-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 (SFML2.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 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 59: Ligne 57:
 {{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 à 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 67: Ligne 65:
 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 ​le 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 75: Ligne 73:
 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 compiler ​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. 
-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 : "/user/​local/​lib"​ (sans les guillemets). Enregistrez puis exécutez la commande "sudo ldconfig"​. Maintenant, votre programme devrait tourner !+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 !
 Voici un récapitulatif des commandes que j'ai faites : Voici un récapitulatif des commandes que j'ai faites :
  
Ligne 83: Ligne 81:
 ldconfig</​code></​note>​ ldconfig</​code></​note>​
  
-=== Binding Python ===+==== Installez le Binding Python ​==== 
 + 
 +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 [[http://​www.sfml-dev.org/​tutorials/​1.6/​start-python.php|le tutoriel]] (un peu dépassé)\\  
 + 
 +  sudo apt-get install libxcb-image0 libxcb-image0-dev 
 +  sudo apt-get install libudev-dev 
 +   
 +Ces deux entrées vous seront utiles pour que cmake parviennent a s'​installer sans soucis. FIXME (à vérifier) 
 + 
 +===== 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 bibliothèque 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/​1.6/start-python.php+
  
 +===== Désinstallation =====
  
 +Supprimer les paquets que vous avez installé en souhaitant l'​utiliser.
 +[[tutoriel:​comment_supprimer_un_paquet|Comment supprimer un paquet ?]]
  • sfml.1388681649.txt.gz
  • Dernière modification: Le 02/01/2014, 17:54
  • par 77.203.125.9