SFML (англ. Simple and Fast Multimedia Library) — кросплатформне мультимедійне API написане мовою С++. Існують прив'язки для C, C#, Java, Python, Go, Ruby, Rust, Haskell та OCaml. Наразі підтримується платформами Linux, Windows та Mac OS. Розробниками планується підтримка для Android та IOS.
Являє собою об'єктно-орієнотовану альтернативу SDL.
Використовує апаратне прискорення OpenGL для створення 2D графіки. Використовує бібліотеку FreeType для відображення тексту та OpenAL для взаємодії зі звуком. Підтримує роботу з транспортними протоколами TCP/UDP і протоколами прикладного рівня HTTP та FTP.
Вихідний код поширюється згідно з умовами zlib/png ліцензії.
Модулі SFML наразі складається з 5 модулів: System — системний модуль, додає математичні структури та підтримку багатонитковості. Window — віконний модуль, забезпечує управління вікнами та взаємодію з програмою через клавіатуру, мишу та джойстик. Graphics — графічний модуль, забезпечує відображення графічних елементів та роботу з шейдерами GLSL. Audio — звуковий модуль, надає інтерфейс для обробки звуків та музики. Network— мережевий модуль, забезпечує управління мережевими функціями за допомогою сокетів.
Hello World Приклад програми, що малює зелене коло на екрані. #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 до інших мов з офіційного вебсайту. +моваверсія SFMLAda2.4 / 2.5Beef2.5C2.5C#2.5Crystal2.3 - 2.6D2.0 - 2.5Euphoria2.4Go2.5.1Haskell2.3Java2.2Julia2.2Nim2.3OCaml2.5.1Pascal2.4Plutonium2.5Nelua2.5.1Python2.3.2Ruby2.3.2Rust2.5.1Zig2.5.1Node.js2.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