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.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 |
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.
SFML obsługuje akcelerację sprzętową grafiki 2D przy użyciu OpenGL[5]. 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 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
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
- CSFML – C
- SFML.Net – platformy .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 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ż
- Simple DirectMedia Layer (SDL)
- Allegro
Przypisy
- ↑ SFML is multi-platform – SFML. [dostęp 2015-01-23]. (ang.).
- ↑ SFML 1.0 – SourceForge.net. [dostęp 2015-01-23]. [zarchiwizowane z tego adresu (2014-07-14)]. (ang.).
- ↑ Licencja – SFML. [dostęp 2014-07-11]. (ang.).
- ↑ license.txt – kod źródłowy SFML w serwisie GitHub. [dostęp 2014-07-11]. (ang.).
- ↑ Hardware acceleration for SFML drawing? – SFML forums. [dostęp 2014-07-11]. (ang.).
- ↑ 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
- Strona na temat silnika w serwisie IndieDB
- Wiki SFML w serwisie GitHub