Simple DirectMedia Layer

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Simple DirectMedia Layer
Simple DirectMedia Layer, Logo.svg
Тип библиотека функций
Автор Sam Lantinga[d]
Разработчик Sam Lantinga[d]
Написана на Си[4]
Операционная система Microsoft Windows, GNU/Linux[d], Android, macOS, iOS, FreeBSD и Haiku
Первый выпуск 1998
Последняя версия
Лицензия лицензия zlib[5] и LGPL-2.1[d]
Сайт libsdl.org​ (англ.)
Commons-logo.svg Медиафайлы на Викискладе
Simple DirectMedia Layer

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

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

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[7], Rust и Ruby[8].

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

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

История[править | править код]

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 — поддержка различных растровых форматов[10][11]
  • SDL_mixer — функции для организации сложного аудио, в основном, сведение звука из нескольких источников[12][13]
  • SDL_net — поддержка сетевых функций[14][15]
  • SDL_ttf — поддержка шрифтов TrueType[16][17]
  • SDL_rtf — отрисовка текста в формате RTF (доступна только для SDL 1.2)[18]

Γалерея[править | править код]

Примечания[править | править код]

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

См. также[править | править код]

Литература[править | править код]

Ссылки[править | править код]