Описание тега sfml
SFML (Simple Fast Multimedia Library) - переносимый и простой в использовании мультимедийный API, написанный на C++. Вы можете рассматривать его как современную объектно-ориентированную альтернативу SDL. SFML состоит из нескольких пакетов, которые идеально подходят для ваших нужд. Вы можете использовать SFML как минимальную оконную систему для взаимодействия с OpenGL или как полнофункциональную мультимедийную библиотеку для создания игр или интерактивных программ.
Официальные ресурсы
- официальный сайт: http://sfml-dev.org
- официальный форум
- и другие официальные ресурсы, например, учебные пособия, документация, ...
Основные особенности
- Переносимость: SFML компилируется на стандартных платформах, таких как Windows (98, 2000, XP, Vista, 7, 8 и 10) и системы Unix (Linux и Mac OS X). По мере роста библиотеки будет добавлена поддержка большего количества операционных систем.
- Объектно-ориентированный: SFML написан на C++ и обеспечивает эффективный объектно-ориентированный дизайн. Он опирается на стандартные шаблоны и идиомы, чтобы обеспечить простую и надежную структуру.
- Простота использования: SFML нацелен на легкость управления. Во внутреннем коде стараются обеспечить простейший общедоступный интерфейс.
- Гибкость: вместо того, чтобы быть одним большим API, SFML скорее содержит множество небольших пакетов, которые можно выбирать и комбинировать в соответствии с предполагаемым использованием. Вы можете использовать только базовый пакет для ввода и работы с окнами, а также полный графический пакет со спрайтами и пост-эффектами.
- Легко интегрируется: SFML можно использовать в одном или нескольких окнах и / или интегрировать с существующими компонентами интерфейса. Интеграция с существующими библиотеками графического интерфейса пользователя (GUI) проста, так что вы можете добавлять представления SFML в сложные интерфейсы, построенные с помощью Qt, wxWidgets, MFC или чего-то еще.
Языки
SFML реализован на C++. Тем не менее, для других языков было создано несколько привязок, которые позволяют использовать SFML из C, C#, C++/CLI, D, Ruby, OCaml, Java, Python и VB.NET.
Система
- Портативное и точное измерение времени
- Простые и объектно-ориентированные потоки и мьютексы
- Модуль Unicode для правильного преобразования между кодировками UTF и кодировками, зависящими от локали
Окно
- Может использоваться как минимальный переносимый пакет для замены GLUT или SDL для управления окнами и ввода с помощью OpenGL.
- Может создавать несколько окон рендеринга
- Может быть интегрирован в компоненты существующих интерфейсов Qt, MFC, wxWidgets, Win32, X11 и др.
- Предоставляет интерфейс на основе сообщений и в реальном времени для обработки ввода
- Может работать с мышками с пятью кнопками
- Может работать с четырьмя джойстиками с семью осями и 32 кнопками
Графика
- Очень легко взаимодействует с OpenGL
- Доступны современные эффекты с аппаратным ускорением: альфа-смешивание, вращение, шейдеры, ...
- Эффективно управляет памятью, так что вам не нужно беспокоиться о сроке службы или хранении ресурсов; вы даже можете загрузить свои графические ресурсы до создания любого окна
- Может загружать и сохранять стандартные форматы изображений: BMP, DDS, JPEG, PNG, TGA и PSD.
- Может загружать все графические ресурсы прямо из файлов в памяти
- Можно использовать виды, как в 3D-сцене, для масштабирования / перемещения / поворота всего мира
- Использует упрощенный язык шейдеров для добавления пост-эффектов в реальном времени.
- Простое управление графическим текстом с помощью растровых шрифтов
- Поддерживает символы Юникода
- Может загружать стандартные форматы файлов шрифтов: TTF, CFF, PCF, FNT, BDF, PFR, SFNT, PostScript Type 1, Type 42
Аудио
- По возможности использует аппаратное ускорение
- Может загружать и сохранять стандартные звуковые форматы: Ogg, WAV, FLAC, AIFF, Au, RAW, paf, 8SVX, NIST, VOC, IRCAM, W64, MAT4, MAT5 PVF, HTK, SDS, AVR, SD2, Core Audio Format, WVE, MPC2K, RF64
- Может загружать все аудиоресурсы прямо из файлов в памяти
- Пространство 3D звука
- Простой интерфейс для записи звука
- Эффективно управляет памятью, так что вам не нужно беспокоиться о сроке службы ресурсов или хранилище
- Поддерживает потоковую передачу больших файлов; вы даже можете написать свой собственный класс потоковой передачи для любого источника (сеть, ...)
- Поддерживает многоканальные форматы (моно, стерео, 4.0, 5.1, 6.1, 7.1)
Сеть
- Реализует переносимый уровень через сокеты TCP и UDP.
- Простая передача данных с помощью расширяемых пакетов на основе потоков
- Классы для использования интернет-протоколов HTTP и FTP