URL: https://linuxfr.org/news/sortie-de-sfml-2-2 Title: Sortie de SFML 2.2 Authors: rewind BAud et Benoît Sibaud Date: 2014年05月08日T14:28:01+02:00 License: CC By-SA Tags: Score: 26 [Simple and Fast Multimedia Library (SFML)](http://www.sfml-dev.org/index-fr.php) est une bibliothèque C++ destinée à faciliter le développement d'applications multimédia et en particulier de jeux vidéo. Elle intègre à la fois les éléments graphiques, le réseau, la gestion des sons et la gestion des fontes. Cette bibliothèque est disponible sur les principaux systèmes d'exploitation et, en particulier, votre préféré. Le 7 décembre est sortie la version 2.2, soit un an et demi après la version 2.1. Cette nouvelle version apporte quelques nouvelles fonctionnalités, dont la prise en charge d'Android et iOS et la correction de nombreux bugs. ---- [Sur LinuxFr.org : Bibliothèque SFML version 2.1](http://linuxfr.org/news/bibliotheque-sfml-version-2-1) [Simple and Fast Multimedia Library](http://www.sfml-dev.org/index-fr.php) [SFML sur github](https://github.com/LaurentGomila/SFML) ---- SFML est une bibliothèque comparable à [Simple DirectMedia Layer (SDL)](https://www.libsdl.org/). Au niveau des différences, SDL est en C alors que SFML est en C++ ; SDL offre une API un peu plus bas niveau que SFML ; SDL est uniquement consacré à la partie graphique, mais il existe des bibliothèques annexes qui permettent d'avoir les mêmes fonctionnalités que SFML (`SDL_ttf`, `SDL_image`, `SDL_net`). # Nouveautés de SFML 2.2 ## Une nouvelle équipe Depuis SFML 2.1, l'équipe de développement s'est enrichie. D'un seul développeur, Laurent Gomila, on est passé à une équipe, principalement des développeurs qui utilisent beaucoup SFML et qui ont développé des bibliothèques d'extensions. On peut citer : - [Jan Haller alias Bromeon](https://github.com/Bromeon) qui a développé la bibliothèque [Thor](http://www.bromeon.ch/libraries/thor/) et qui s'occupe du port OSX ; - [Marco Antognini](https://github.com/mantognini) qui a développé [sftools](http://mantognini.github.io/sftools/) et qui s'occupe du port Android ; - [binary1248](https://github.com/binary1248) qui a développé [Simple and Fast Utility Network Library (SFNUL)](https://github.com/binary1248/SFNUL) ; - [Stefan Schindler alias TankOs](https://github.com/TankOs) qui a développé [SFGUI](http://sfgui.sfml-dev.de/) ; - [Jonathan De Wachter alias Sonkun](https://github.com/Sonkun) qui a développé beaucoup de _bindings_ Python vers toutes ces bibliothèques. ## Port Android et iOS Il est maintenant possible d'utiliser SFML sur ces deux plateformes mobiles. C'est la première version qui le permet et il faut donc s'attendre à quelques bogues. ## Compilation et outillage Plusieurs chaînes de compilation sont maintenant prises en charge (en plus de celles déjà existantes) : - compilateurs de Debian/kFreeBSD ; - VS2013 sur Windows. De même, le nom des système d'exploitation et des compilateurs est désormais plus clair dans les fichiers CMake. ## Dans les sous-systèmes... Dans le sous-système _System_, la classe `sf::String` permet maintenant de convertir depuis et vers n'importe quel codage UTF. Elle gagne également deux méthodes, remplacement et sous-chaîne. La classe `sf::Time` gagne les opérateurs modulo et division. Dans le sous-système _Window_, il est désormais possible de vérifier et demander le focus sur la fenêtre. La classe `sf::Joystick` expose désormais des données sur le matériel : nom, identifiant du fabricant, identifiant du produit. Dans le sous-système _Graphics_, la classe `sf::Font` expose beaucoup plus d'informations qu'auparavant. Elle fait maintenant ses calculs avec des flottants à la place d'entiers, pour une meilleure précision, notamment pour le souligné. La classe `sf::Color` gagne un opérateur de soustraction. Et surtout, un nouveau système plus flexible pour le [_blending_](https://www.opengl.org/wiki/Blending) est mis en place. Dans le sous-système _Audio_, les principales améliorations concernent la capture de son. Dans le sous-système _Network_, la classe `sf::Http` a gagné la prise en charge de `PUT` et `DELETE`. Les entiers 64 bits sont maintenant gérés par la classe `sf::Packet`. Et la classe `sf::Ftp` permet d'envoyer des commandes directement. ## Conclusion Sans apporter de révolution, cette version consolide l'existant. Le portage de la version 2.1 à la version 2.2 devrait se passer dans d'excellentes conditions. Il faut noter qu'il n'y a pas encore eu de sortie officielle, juste un tag sur github. En particulier, la documentation n'est pas encore en ligne, mais devrait arriver dans les prochaines semaines. # SFML 3 Des [discussions sur SFML3](http://en.sfml-dev.org/forums/index.php?topic=15027.0) ont commencé et vont se poursuivre. L'idée est de voir ce qui manque à SFML et qui ne peut pas être implémenté facilement en utilisant SFML. Le débat riche a déjà amené quelques idées intéressantes comme : - la prise en charge de C++11, éventuellement optionnelle - la lecture de vidéo (même si l'auteur principal n'est pas très chaud à cette idée au vu des dépendances) - meilleure séparation de la partie fenêtre et de la partie graphique, avec un contexte graphique bien à part (un peu comme SDL) - intégration de bibliothèques d'extension (même si l'idée ne fait pas l'unanimité) : - [Thor](http://www.bromeon.ch/libraries/thor/index.html) : une extension pour gérer les animations, les systèmes de particules, les grandes textures, etc. - [3DEE](http://en.sfml-dev.org/forums/index.php?topic=14829.0) : une extension pour faire de la 3D (avec une [implémentation](https://github.com/binary1248/SFML/tree/master/include/SFML) par un des membres de la nouvelle équipe). Aucune date n'est annoncée pour l'instant, évidemment. Mais ce fil de discussion montre le dynamisme autour de cette bibliothèque qui reste une valeur sûre quand on développe des jeux 2D simples en C++.