SFML

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Simple and Fast Multimedia Library
Тип API
Автори Laurent Gomila
Перший випуск 9 липня 2009; 14 років тому (2009-07-09)
Стабільний випуск 2.6.1 30 жовтня 2023; 5 місяців тому (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 до інших мов з офіційного вебсайту[4].

мова версія 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.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]

  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.
  4. Bindings (SFML / Download). www.sfml-dev.org. Процитовано 4 січня 2024.