SFML

Simple and Fast Multimedia Library
ТипAPI
АвториLaurent Gomila
Перший випуск9 липня 2009; 14 років тому (2009-07-09)
Стабільний випуск2.6.1 30 жовтня 2023; 7 місяців тому (2023-10-30)
Операційна системаUnix-подібні; Windows; Mac OS
Мова програмуванняC++
ЛіцензіяZlib license
Репозиторійgithub.com/SFML/SFML
Вебсайтsfml-dev.org

SFML (англ. Simple and Fast Multimedia Library) — кросплатформне мультимедійне API написане мовою С++. Існують прив'язки для C, C#, Java, Python, Go, Ruby, Rust, Haskell та OCaml[1]. Наразі підтримується платформами Linux, Windows та Mac OS. Розробниками планується підтримка для Android та IOS.

Являє собою об'єктно-орієнотовану альтернативу SDL.

Використовує апаратне прискорення OpenGL для створення 2D графіки. Використовує бібліотеку FreeType для відображення тексту та OpenAL для взаємодії зі звуком. Підтримує роботу з транспортними протоколами TCP/UDP і протоколами прикладного рівня HTTP та FTP.

Вихідний код поширюється згідно з умовами zlib/png ліцензії.

Модулі

SFML на данний момент складається з 5 модулів[2]:

  • System — системний модуль, додає математичні структури та підтримку багатонитковості.
  • Window — віконний модуль, забезпечує управління вікнами та взаємодію з програмою через клавіатуру, мишу та джойстик.
  • Graphics — графічний модуль, забезпечує відображення графічних елементів та роботу з шейдерами GLSL.
  • Audio — звуковий модуль, надає інтерфейс для обробки звуків та музики.
  • Network— мережевий модуль, забезпечує управління мережевими функціями за допомогою сокетів.

Hello World

Приклад програми, що малює зелене коло на екрані[3].

#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    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;
}

Мови

Перелік прив'язок SFML до інших мов з офіційного вебсайту[1].

мова версія SFML
Ada 2.4 / 2.5
Beef 2.5
C 2.5
C# 2.5
Crystal 2.3 - 2.6
D 2.0 - 2.5
Euphoria 2.4
Go 2.5.1
Haskell 2.3
Java 2.2
Julia 2.2
Nim 2.3
OCaml 2.5.1
Pascal 2.4
Plutonium 2.5
Nelua 2.5.1
Python 2.3.2
Ruby 2.3.2
Rust 2.5.1
Zig 2.5.1
Node.js 2.5.1

Версії

  • 1.0 (Липень 2007 р.)
  • 1.1 (18 Вересня 2007 р.)
  • 1.2 (16 Січня 2008 р.)
  • 1.3 (22 Червня 2008 р.)
  • 1.4 (7 Січня 2009 р.)
  • 1.5 (4 Червня 2009 р.)
  • 1.6 (6 Квітня 2010 р.) : Bug-fix реліз, на даний момент команда працює над версією 2.0.

Див. також

  • SDL
  • ClanLib
  • Allegro

Посилання

  • Official website [Архівовано 10 лютого 2021 у Wayback Machine.]
  1. а б Bindings (SFML / Download). www.sfml-dev.org. Процитовано 4 січня 2024.
  2. Modules (SFML / Learn / 2.0 Documentation). www.sfml-dev.org. Процитовано 4 січня 2024.
  3. SFML and Visual Studio (SFML / Learn / 2.6 Tutorials). www.sfml-dev.org. Процитовано 4 січня 2024.