Przejdź do zawartości

Simple and Fast Multimedia Library

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez MalarzBOT (dyskusja | edycje) o 23:59, 29 gru 2014. Może się ona znacząco różnić od aktualnej wersji.
Simple and Fast Multimedia Library
Logo Simple and Fast Multimedia Library
Logo programu
Autor Laurent Gomila
Pierwsze wydanie 1.0 / 9 sierpnia 2007; ponad 17 lat temu[2]
Aktualna wersja stabilna 2.1 / 27 lipca 2013; ponad 11 lat temu[3]
Język programowania C++
Platforma sprzętowa Wieloplatformowa
System operacyjny Linux, OS X, Windows, Android, iOS[1]
Rodzaj Biblioteka programistyczna
Licencja zlib[4][5]
Strona internetowa

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

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

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

  • CSFML – C
  • SFML.Net – .NET

Nieoficjalne

  • 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

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ż

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

Bibliografia

  • Artur Moreira, Jan Haller, Henrik Vogelius Hansson: SFML Game Development. Packt Publishing, czerwiec 2013. ISBN 978-1-84969-684-5.

Linki zewnętrzne