Przejdź do zawartości

Simple and Fast Multimedia Library

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez M4tx (dyskusja | edycje) o 23:19, 11 lip 2014. Może się ona znacząco różnić od aktualnej wersji.

Szablon:Software infobox Simple and Fast Multimedia Library (SFML) – wieloplatformowa biblioteka programistyczna ułatwiająca tworzenie gier oraz programów multimedialnych. Jest napisana w C++ i posiada bindingi do C, platformy .NET, D, Pythona, Javy i kilku innych języków.

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

Budowa

W skład SFML wchodzi 5 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 bingdingom, używać w innych językach. Istnieją 2 oficjalne bindingi (dla C i platformy .NET), a także kilkanaście nieoficjalnych dla innych języków[2].

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. Hardware acceleration for SFML drawing? – SFML forums. [dostęp 2014-07-11]. (ang.).
  2. 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