Cet article est uneébauche concernant unlogiciel libre.
| Développé par | Laurent Gomila Marco Antognini (portage Mac OS X) |
|---|---|
| Dernière version | 3.0.2 ()[1] |
| Dépôt | github.com/SFML/SFML |
| Écrit en | C++ |
| Système d'exploitation | Multiplateforme(d) |
| Environnement | Mac OS X,Windows,GNU/Linux |
| Langues | Multilingue |
| Type | Bibliothèque logicielle |
| Licence | Licence zlib/png |
| Site web | www.sfml-dev.org |
SFML est uneinterface de programmationbas niveau destinée à construire desjeux vidéo ou des programmes interactifs. Elle est écrite enC++, mais également disponible dans divers langages commeC,D,Python,Ruby,OCaml ouMicrosoft .NET. Elle a entre autres pour but de proposer une alternativeorientée objet à laSDL.
Elle a également la particularité de fournir un graphisme2D accéléré en utilisantOpenGL en interne, qui permet à l'utilisateur de s'affranchir de la gestion d'une pseudo-3D.
Composée de nombreux modules, elle peut être utilisée en tant quesystème de fenêtrage minimal pour s'interfacer avec OpenGL, ou en tant que bibliothèquemultimédia riche en fonctionnalités pour construire des jeux vidéo ou des programmes interactifs.
SFML possède actuellement cinq modules distincts spécialisés. Ces différents modules sont tous utilisables séparément (sauf le module graphique qui dépend aussi du module de fenêtrage) mais dépendent tous du module système.
Lemodule système gère principalement le temps (horloge...). Il propose aussi un système dethread permettant d'exécuter en parallèle plusieurs séquences d'instructions, par exemple pour améliorer les performances ou créer une gestion efficace du réseau. Néanmoins les développeurs conseillent l'utilisation de la classe std::thread présente au sein de labibliothèque standard depuis la normeC++11[2].
Lemodule de fenêtrage gère la création desfenêtres et leurs caractéristiques (taille, plein-écran,anticrénelage,synchronisation verticale,framerate...). Il gère aussi les interactions avec l'utilisateur grâce à un système d'événements (clavier,souris,joystick...). Enfin il peut servir à utiliser SFML comme interface avec OpenGL, qui n'est pas suffisant à lui seul pour créer un programme complet et nécessite entre autres un système de fenêtrage et d'interactions avec l'utilisateur.
Lemodule graphique permet de dessiner tout objet qui sera visible dans la fenêtre (rectangles,disques,polygones, textes... mais aussi formes plus complexes grâce aux tableaux de points) et d'y appliquer unetexture. Ces objets peuvent être transformés (translation,rotation,homothétie). Il gère aussi la caméra 2D et permet l'exécution deshaders écrits enGLSL.
Lemodule audio permet de jouer des sons et des musiques, aux formatsWAV,OGG/Vorbis ouFLAC (pour des raisons de licence le formatMP3 n'est pas supporté[3]). Il gère aussi des effets simples comme le volume, lahauteur, laspatialisation ou la lecture en boucle.
Lemodule réseau permet d'utiliser de manière portable lessockets, avec leprotocole TCP (connecté) ou leprotocole UDP (non connecté) et propose un système depaquets poursérialiser aisément des données. Il permet aussi de communiquer avec unserveur HTTP et de transférer des fichiers avec le protocoleFTP.
Le numéro indiqué donne la version à laquelle la bibliothèque est disponible.

