SFML (Simple and Fast Multimedia Library, suom. Yksinkertainen ja nopea multimediakirjasto) on helppokäyttöinen ja monialustainen ohjelmointirajapinta multimediaohjelmointiin. SFML on kirjoitettu C++:lla, mutta sitä voi käyttää muidenkin ohjelmointikielten kanssa, kuten C, C#, D, Euphoria, Go, Haskell, Java(kehitys keskeytetty), OCaml, Pascal, Python, Ruby, Rust, ja Visual Basic. SFML voidaan sanoa oliopohjaiseksi vaihtoehdoksi SDL-kirjastolle.

SFML tarjoaa laitteistokiihdytetyn tuen 2D-grafiikalle käyttäen OpenGL:ää sekä useita moduuleita helpottamaan erityisesti pelien ja multimedian ohjelmointia. SFML-piirtokontekstit ovat aina OpenGL-konteksteja, joten niihin voidaan piirtää SFML:n omien funktioiden lisäksi myös suoraan myös OpenGL-komennoilla.

Kirjasto on saatavilla Linuxille, macOS:lle ja Windowsille 32- ja 64-bittisille versioille.

SFML on lisensoitu avoimen lähdekoodin zlib/png-lisenssillä.

Moduulit

Tällä hetkellä saatavilla olevat moduulit ovat:

Järjestelmämoduuli (System) Vastaa ohjelman ajan ja koodin rungon toiminnasta. Ikkunamoduuli (Window) Vastaa ikkunoista ja käyttäjän vuorovaikutuksesta. Grafiikkamoduuli (Graphics) Helpottaa yksinkertaisten muotojen ja kuvien esittämistä. Audiomoduuli (Audio) Tarjoaa käyttöliittymän äänien ja musiikkien hallintaan. Verkkomoduuli (Network) Käsittelee verkko-operaatiot

Kaikkia moduuleita voidaan käyttää itsenäisenä, paitsi grafiikkamoduulia joka tarvitsee ikkunamoduulin toimiakseen, sekä kaikki moduulit jotka tarvitsevat toimiakseen järjestelmämoduulia.

Esimerkkiohjelma Luodaan uusi ikkuna johon piirretään vihreä ympyrä.

#include <SFML/Graphics.hpp>

int main() { sf::RenderWindow window(sf::VideoMode(800, 800), "Ensimmäinen SFML-ohjelmani"); sf::CircleShape shape(100.f); shape.setFillColor(sf::Color::Green);

while (window.isOpen())

sf::Event event; while (window.pollEvent(event))

if (event.type == sf::Event::Closed) window.close();

window.clear(); window.draw(shape); window.display();

return 0; }

Katso myös Simple DirectMedia Layer Allegro (ohjelmointi)

Lähteet

Kirjallisuutta

Aiheesta muualla Viralliset websivut

Luokka:Ohjelmakirjastot