Aller au contenu

Simple and Fast Multimedia Library

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 7 mai 2013 à 19:40 et modifiée en dernier par Silex6 (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
Simple and Fast Multimedia Library
Description de l'image SFML2.svg.

Informations
Développé par

Laurent Gomila

Marco Antognini (portage Mac OS X)
Dernière version 3.0.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/SFML/SFMLVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Système d'exploitation Multiplateforme (en)Voir et modifier les données sur Wikidata
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 une Interface de programmation destinée à construire des jeux vidéo ou des programmes interactifs. Elle est écrite en C++, mais également disponible en C, D, Python, Ruby, OCaml et Microsoft .NET. Elle a entre autres pour but de proposer une alternative orientée objet à la SDL.

Elle a également la particularité de fournir un graphisme 2D accéléré en utilisant OpenGL 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 que système de fenêtrage minimal pour s'interfacer avec OpenGL, ou en tant que bibliothèque multimédia riche en fonctionnalités pour construire des jeux vidéo ou des programmes interactifs.

Modules

Les modules actuellement présents sont :

  • Le module Système : il gère l'horloge et les threads.
  • Le module Fenêtre : il gère la création des fenêtres et les interactions avec l'utilisateur.
  • Le module Graphique : il permet d'afficher des formes simples et des images aisément.
  • Le module Son : il constitue une interface pratique pour tous les sons utilisés.
  • Le module Réseau : il permet d'utiliser de manière portable les sockets.

Ces différents modules sont tous utilisables séparément (sauf le module graphique qui dépend aussi du module Fenêtre) mais dépendent tous du module système. D'autres modules seraient en cours de formation (notamment un module vidéo) et un système d'interface graphique est prévu.[réf. nécessaire]

Hello World

Ce qui suit est un programme simple permettant d'avoir un aperçu rapide de la SFML 2.0. Ce code se contente d'ouvrir une fenêtre et d'y afficher le texte "Hello World" sur une image affichée en arrière-plan.

#include <SFML/Graphics.hpp>
int main()
{
    // Crée la fenétre principale avec comme titre "Hello World"
    sf::RenderWindow window(sf::VideoMode(800, 600), "Hello World");

    // Charge un sprite à afficher
    sf::Texture texture;
    if (!texture.loadFromFile("background.jpg"))
        return EXIT_FAILURE;
    sf::Sprite sprite(texture);

    // Crée un texte
    sf::Font font;
    if (!font.loadFromFile("arial.ttf"))
        return EXIT_FAILURE;
    sf::Text text("Hello World", font, 18);

    // Bouble principale
    while (window.isOpen())
    {
        // Gestion des événements
        sf::Event event;
        while (window.pollEvent(event))
        {
            // Fermeture de la fenètre
            if (event.type == sf::Event::Closed)
                window.close();
        }
        
        window.clear(); // Efface l'écran
        window.draw(sprite); // Affiche le sprite
        window.draw(text); // Affiche le texte
        window.display();  // Met à jour la fenétre
    }
    return EXIT_SUCCESS;
}

Langages supportés

Le numéro indiqué donne la version à laquelle la bibliothèque est disponible.

Bindings officiels

  • C++ : 1.6 et 2.0-RC
  • C : 1.6 et 2.0-RC
  • .Net : 1.6

Bindings externes

Historique des versions

Logo de la version 1.6
  • 1.0 (Juillet 2007)
    • 1.1 (18 Septembre 2007)
    • 1.2 (16 Janvier 2008)
    • 1.3 (22 Juin 2008)
    • 1.4 (7 Janvier 2009)
    • 1.5 (4 Juin 2009)
    • 1.6 (6 Avril 2010) : il s'agit principalement de corrections de bogues, l'équipe travaillant principalement sur la version 2.0 de la bibliothèque.
  • 2.0 (Avril 2013) : Refonte complète de la bibliothèque.

Voir aussi

Articles connexes

Liens externes

  1. « Release 3.0.1 », (consulté le )