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. 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.
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
Bibliografia
Linki zewnętrzne Strona na temat silnika w serwisie IndieDB Wiki SFML w serwisie GitHub
Kategoria:Biblioteki graficzne Kategoria:Wolne i otwarte oprogramowanie Kategoria:Produkcja gier komputerowych