Simple and Fast Multimedia Library
Logo programu | |
| Autor | Laurent Gomila |
|---|---|
| Pierwsze wydanie | 1.0 / 9 sierpnia 2007; około 19 lat temu[2] |
| Aktualna wersja stabilna | 3.1.0 (16 kwietnia 2026) [±] |
| 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ż
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
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.