SFML
![]() | |
Тип | 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.]