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
Dernière révision Les deux révisions suivantes
sfml [Le 02/01/2014, 17:54]
77.203.125.9 [Simple and Fast Multimedia Library]
sfml [Le 24/01/2022, 15:29]
lyondif02 [Structure] typo.
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.
  
-----+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.
  
-=====  Simple and Fast Multimedia Library =====+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.
  
-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. +===== Structure =====
-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.+
  
-Site officiel ​de la bibliothèque (Français/​Anglais) : http://www.sfml-dev.org/​index-fr.php +La SFML est divisée en 5 modules : 
-Vous y trouverez documentation,​ tutoriels et forums+  * **System** :​ base de la bibliothèque, et multi-threading 
 +  * **Window** :​ fenêtrage 
 +  * **Graphics** :​ gestion de la 2D (sprites, chaînes de caractères affichables,​ effets…) 
 +  * **Audio** gestion du son 
 +  * **Network** gestion du réseau.
  
-==== Fonctionnement ====+La division en modules permet à chacun de n’utiliser que ce dont il a besoin.
  
-La SFML se divise ​en 5 modules : +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 OpenGLvoire mixer les rendus SFML/OpenGL.
-  * **System**: Base de la bibliothèque, et multi-threading +
-  * **Window**: Fenêtrage +
-  * **Graphics**:​ Gestion de la 2D (spriteschaînes de caractères affichableseffets...) +
-  * **Audio**: Gestion du son +
-  * **Network**:​ Gestion du réseau+
  
-La division en modules permet à chacun ​de n'​utiliser que ce dont il a besoin.+===== Installation ​de la SFML ===== 
 +==== Depuis les dépôts ====
  
-D'un point de vue graphique, ​SFML utilise OpenGL en interneainsi 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.+SFML est disponible dans les dépôts Ubuntu dans sa version 2.5.1dans les paquets libsfml-*.
  
- +Installez le paquet **[[apt>libsfml-dev]]** ou tapez dans un terminal ​la commande suivante :
-==== Installation de la SFML ==== +
-=== Version 1.6 === +
- +
-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 ​:+
  
 <​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 [[https://​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.txt
  • Dernière modification: Le 11/09/2022, 11:51
  • par moths-art