SFML

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 

 Viralliset websivut
 SDL
 Allegro

Lähteet

Kirjallisuutta 
 

Ohjelmakirjastot