Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) — свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).

Simple DirectMedia Layer
Логотип программы Simple DirectMedia Layer
Тип библиотека функций
Автор Sam Lantinga[вд]
Разработчик Sam Lantinga[вд]
Написана на Си[2]
Операционные системы Windows, GNU/Linux, Android, macOS, iOS, FreeBSD и Haiku
Первый выпуск 1998
Последняя версия
Репозиторий github.com/libsdl-org/SDL
Лицензия лицензия zlib[3] и LGPL-2.1[вд]
Сайт libsdl.org (англ.)
Логотип Викисклада Медиафайлы на Викискладе
Simple DirectMedia Layer

Официально поддерживаемые операционные системы: Linux, Microsoft Windows, macOS, iOS и Android[4].

SDL API доступны для языков: C, C++, C#, VB.NET, D, Ada, Vala, Eiffel, Haskell, Erlang, Euphoria, Java, Lisp, Lua, ML, Pascal, Perl, PHP, Pike, PureBasic, Python, Go[5], Rust и Ruby[6].

Основная часть SDL содержит базовый, весьма ограниченный спектр возможностей. Дополнительную функциональность обеспечивают библиотеки расширений, которые обычно входят в поставку SDL.

Начиная с версии 2.0, SDL распространяется под условиями лицензии zlib; до этого использовалась лицензия GNU LGPL.[7]

История

править

SDL создал Сэм Лантинга, будучи ведущим программистом компании Loki Entertainment Software. История SDL начинается со времён, когда Сэм работал над программой-эмулятором Microsoft Windows для Macintosh. Он заметил, что многие куски кода без проблем могут работать на Linux. И он решил создать небольшую библиотеку, чтобы ей могли воспользоваться другие программисты. В октябре 1997 был выпущен релиз библиотеки с версией 0.3, а позже эту библиотеку вовсю использовала компания Loki Software для портирования игр под Linux.

После банкротства Loki Software Сэм работал в качестве ведущего разработчика в Blizzard, где велись работы по портированию World of Warcraft на Linux, но в компании решили закрыть проект.

С июля 2012 года Сэм присоединился к команде разработчиков Valve, где занимается дальнейшей разработкой SDL.

Структура

править
 
Архитектура SDL

SDL сам по себе довольно прост. Его можно рассматривать как тонкую прослойку, обеспечивающую поддержку для 2D-операций над пикселями, звука, доступа к файлам, обработки событий и т. п. Он часто используется в дополнение к OpenGL, предоставляя поддержку мыши, клавиатуры и джойстиков.

Библиотека состоит из нескольких подсистем, таких как Video, Audio, CD-ROM, Joystick и Timer. В дополнение к этой базовой низкоуровневой функциональности, существует ряд стандартных библиотек, предоставляющих дополнительную функциональность:

  • SDL_image — поддержка различных растровых форматов[8][9]
  • SDL_mixer — функции для организации сложного аудио, в основном, сведение звука из нескольких источников[10][11]
  • SDL_net — поддержка сетевых функций[12][13]
  • SDL_ttf — поддержка шрифтов TrueType[14][15]
  • SDL_rtf — отрисовка текста в формате RTF (доступна только для SDL 1.2)[16]

Γалерея

править

См. также

править

Примечания

править
  1. Release 2.30.9 — 2024.
  2. The sdl Open Source Project on Open Hub: Languages Page — 2006.
  3. https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt
  4. Simple DirectMedia Layer. Архивировано из оригинала 16 августа 2013 года.
  5. veandco/go-sdl2. — 2020-03-26. Архивировано 3 августа 2020 года.
  6. Simple DirectMedia Layer - Language Bindings. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 12 марта 2019 года.
  7. Simple DirectMedia Layer - License. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 13 марта 2019 года.
  8. SDL_image 2.0. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 28 февраля 2019 года.
  9. SDL_image 1.2. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 1 марта 2019 года.
  10. SDL_mixer 2.0. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 16 марта 2019 года.
  11. SDL_mixer 1.2. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 1 марта 2019 года.
  12. SDL_net 2.0. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 2 марта 2019 года.
  13. SDL_net 1.2. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 19 февраля 2019 года.
  14. SDL_ttf 2.0. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 6 марта 2019 года.
  15. SDL_ttf 1.2. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 2 марта 2019 года.
  16. SDL_rtf 0.1. www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 27 февраля 2019 года.

Литература

править
  • Rankin, K. Linux Multimedia Hacks: Tips & Tools for Taming Images, Audio, and Video. — O'Reilly Media, 2006. — P. 139. — ISBN 9780596100766.
  • Loki Software, Inc and Hall, J.R. Ch. 4. Mastering SDL // Programming Linux Games. — No Starch Press, 2001. — ISBN 9781886411494.

Ссылки

править