SFML
Тип | API |
---|---|
Автори | Laurent Gomila |
Перший випуск | 9 липня 2009 |
Стабільний випуск | 2.6.1 30 жовтня 2023 |
Операційна система | 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.
- Official website [Архівовано 10 лютого 2021 у Wayback Machine.]
- ↑ а б 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.