SFML
| Тип | API |
|---|---|
| Автори | Laurent Gomila |
| Перший випуск | 9 липня 2009 |
| Стабільний випуск | 3.0.0 21 грудня 2024 |
| Операційна система | 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— мережевий модуль, забезпечує управління мережевими функціями за допомогою сокетів.
Приклад програми, що малює зелене коло на екрані[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.
- 1 2 Bindings (SFML / Download). www.sfml-dev.org. Процитовано 4 січня 2024.
- ↑ Modules (SFML / Learn / 2.0 Documentation). www.sfml-dev.org. Процитовано 4 січня 2024.
- ↑ SFML and Visual Studio (SFML / Learn / 2.6 Tutorials). www.sfml-dev.org. Процитовано 4 січня 2024.
- Official website [Архівовано 10 лютого 2021 у Wayback Machine.]