Simple and Fast Multimedia Library

wieloplatformowa biblioteka programistyczna ułatwiająca tworzenie gier oraz programów multimedialnych

Simple and Fast Multimedia Library (często skracane do 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.

Simple and Fast Multimedia Library
Logo Simple and Fast Multimedia Library
Logo programu
Autor Laurent Gomila
Pierwsze wydanie 1.0 / 9 sierpnia 2007; ponad 16 lat temu[2]
Aktualna wersja stabilna 2.6.1
(4 listopada 2023) [±]
Język programowania C++
Platforma sprzętowa Wieloplatformowa
System operacyjny Linux, OS X, Windows, Android, iOS[1]
Rodzaj Biblioteka programistyczna
Licencja zlib[3][4]
Strona internetowa

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

Budowa edytuj

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 interfejs 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 moduł System wymagany przez wszystkie inne.

Bindingi edytuj

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[6].

Oficjalne edytuj

Nieoficjalne edytuj

Przykład edytuj

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 window(sf::VideoMode(800, 600, 32), "Hello World - SFML");

    // Główna pętla
    while (window.isOpen()) {
        // Obsługa zdarzeń
        sf::Event event;
        while (window.pollEvent(event)) {
            // Zamknięcie okna spowoduje zakończenie programu
            if (event.type == sf::Event::Closed)
                window.close();
        }

        // Wyczyść ekran i wypełnij go czerwonym kolorem
        window.clear(sf::Color(255, 0, 0));

        // Wyświetl zawartość bufora (renderowany obraz) na ekranie
        window.display();
    }
}

Zobacz też edytuj

Przypisy edytuj

  1. SFML is multi-platform – SFML. [dostęp 2015-01-23]. (ang.).
  2. SFML 1.0 – SourceForge.net. [dostęp 2015-01-23]. [zarchiwizowane z tego adresu (2014-07-14)]. (ang.).
  3. Licencja – SFML. [dostęp 2014-07-11]. (ang.).
  4. license.txt – kod źródłowy SFML w serwisie GitHub. [dostęp 2014-07-11]. (ang.).
  5. Hardware acceleration for SFML drawing? – SFML forums. [dostęp 2014-07-11]. (ang.).
  6. Bindings – SFML. [dostęp 2014-07-11]. (ang.).

Bibliografia edytuj

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

Linki zewnętrzne edytuj