Contenu | Rechercher | Menus
Cette page est en cours de rédaction.
Apportez votre aide…

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.

Site officiel de la bibliothèque (Français/Anglais) : http://www.sfml-dev.org/index-fr.php Vous y trouverez documentation, tutoriels et forums

Fonctionnement

La SFML se divise en 5 modules :

  • 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

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.

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 :

sudo apt-get install libsfml-dev

Dernière version (2.1 actuellement)

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 : 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:

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

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 : Sources de SFML 2.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 (SFML-2.1 dans mon cas).

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 :

sudo apt-get install cmake-gui

Maintenant, lancez cmake-gui depuis un terminal ou de façon graphique, une fenêtre s'affiche :

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.

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.

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.

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 :

cd /home/valentin/sfml-dev
make
sudo make install

Et voilà, la SFML est normalement installée !

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 : "/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 :

sudo su
nano /etc/ld.so.conf
ldconfig

Binding Python

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. Voyez pour cela le tutoriel : http://www.sfml-dev.org/tutorials/1.6/start-python.php


sfml.txt · Dernière modification: Le 02/01/2014, 21:35 par 77.203.125.9
Le contenu de ce wiki est sous licence : CC BY-SA v3.0