Simple and Fast Multimedia Library

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Simple and Fast Multimedia Library
Biblioteka programistyczna
SFML2.svg
Logo programu
Producent Laurent Gomila
Platforma sprzętowa Wieloplatformowa
System operacyjny Linux, OS X, Windows, Android, iOS[1]
Napisane w C++
Pierwsze wydanie 1.0 / 9 sierpnia 2007[2]
Aktualna wersja stabilna 2.1 / 27 lipca 2013[3]
Licencja zlib[4][5]
http://www.sfml-dev.org/

Simple and Fast Multimedia Library (SFML) – wieloplatformowa biblioteka programistyczna ułatwiająca tworzenie gier oraz programów multimedialnych. Jest napisana w C++ i może być wykorzystywana w języku C, platformie .NET, D, Pythonie, Javie i kilku innych językach.

SFML obsługuje akcelerację sprzętową grafiki 2D przy użyciu OpenGL[6]. Biblioteka jest otwartym oprogramowaniem wydanym na licencji zlib.

Budowa[edytuj | edytuj kod]

W skład SFML wchodzi pięć modułów:

  • System – obsługuje czas i wątki
  • Window – obsługuje okna i interakcję z użytkownikiem
  • Graphics – umożliwia renderowanie grafiki
  • Audio – dostarcza interfejsu do odtwarzania muzyki i dźwięków
  • Network – odpowiedzialny za komunikację sieciową

Niemal wszystkie moduły mogą być używane niezależnie – wyjątek stanowi moduł Graphics, który wymaga modułu Window, oraz wszystkie moduły wymagają modułu System.

Bindingi[edytuj | edytuj kod]

Oprócz C++ – języka, w którym biblioteka została napisana – SFML można także, dzięki tzw. „bindingom”, używać w innych językach. Istnieją dwa oficjalne bindingi (dla C i platformy .NET), a także kilkanaście nieoficjalnych dla innych języków[7].

Oficjalne[edytuj | edytuj kod]

  • CSFML – C
  • SFML.Net – .NET

Nieoficjalne[edytuj | edytuj kod]

  • JSFML – Java
  • DerelictSFML2 – D
  • DSFML – D
  • SFML-D – D
  • pySFML – Python
  • rbSFML – Ruby
  • Ocsfml – OCaml
  • ocaml-sfml – OCaml
  • GoSFML2 – Go
  • nimrod-sfml – Nimrod
  • EuSFML2 – Euphoria
  • rust-sfml – rust

Przykład[edytuj | edytuj kod]

Przykładowy program w SFML tworzący okno i wypełniający je czerwonym kolorem:

#include <SFML/Graphics.hpp>
 
int main() {
    // Utwórz okno
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Hello World - SFML");
 
    // Główna pętla
    while (App.isOpen()) {
        // Obsługa zdarzeń
        sf::Event Event;
        while (App.pollEvent(Event)) {
            // Zamknięcie okna spowoduje zakończenie programu
            if (Event.type == sf::Event::Closed)
                App.close();
        }
 
        // Wyczyść ekran i wypełnij go czerwonym kolorem
        App.clear(sf::Color(255, 0, 0));
 
        // Wyświetl zawartość bufora (renderowany obraz) na ekranie
        App.display();
    }
}

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. SFML is multi-platform – SFML (ang.). [dostęp 2014-07-11].
  2. SFML 1.0 - SourceForge.net (ang.). [dostęp 2014-07-11].
  3. Lista wydań SFML – GitHub (ang.). [dostęp 2014-07-11].
  4. Licencja – SFML (ang.). [dostęp 2014-07-11].
  5. license.txt – kod źródłowy SFML w serwisie GitHub (ang.). [dostęp 2014-07-11].
  6. Hardware acceleration for SFML drawing? – SFML forums (ang.). [dostęp 2014-07-11].
  7. Bindings – SFML (ang.). [dostęp 2014-07-11].

Bibliografia[edytuj | edytuj kod]

  • Artur Moreira, Jan Haller, Henrik Vogelius Hansson: SFML Game Development. Packt Publishing, czerwiec 2013. ISBN 9781849696845.

Linki zewnętrzne[edytuj | edytuj kod]