Simple DirectMedia Layer (SDL) — свободная кроссплатформенная мультимедийная библиотека, реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).
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 (англ.) |
Медиафайлы на Викискладе |
Официально поддерживаемые операционные системы: 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 сам по себе довольно прост. Его можно рассматривать как тонкую прослойку, обеспечивающую поддержку для 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]
Γалерея
правитьСм. также
правитьПримечания
править- ↑ Release 2.30.9 — 2024.
- ↑ The sdl Open Source Project on Open Hub: Languages Page — 2006.
- ↑ https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt
- ↑ Simple DirectMedia Layer . Архивировано из оригинала 16 августа 2013 года.
- ↑ veandco/go-sdl2. — 2020-03-26. Архивировано 3 августа 2020 года.
- ↑ Simple DirectMedia Layer - Language Bindings . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 12 марта 2019 года.
- ↑ Simple DirectMedia Layer - License . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 13 марта 2019 года.
- ↑ SDL_image 2.0 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 28 февраля 2019 года.
- ↑ SDL_image 1.2 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 1 марта 2019 года.
- ↑ SDL_mixer 2.0 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 16 марта 2019 года.
- ↑ SDL_mixer 1.2 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 1 марта 2019 года.
- ↑ SDL_net 2.0 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 2 марта 2019 года.
- ↑ SDL_net 1.2 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 19 февраля 2019 года.
- ↑ SDL_ttf 2.0 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 6 марта 2019 года.
- ↑ SDL_ttf 1.2 . www.libsdl.org. Дата обращения: 5 марта 2019. Архивировано 2 марта 2019 года.
- ↑ 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.
Ссылки
править- Официальная страница Архивировано 7 июля 2013 года. (англ.)
- Введение в Simple DirectMedia Layer Архивная копия от 1 июня 2016 на Wayback Machine (рус.)
- Низкоуровневое расширение библиотеки SDL (рус.)
- Уроки по SDL (рус.)
- Справочник библиотеки SDL на русском языке Архивная копия от 13 июня 2018 на Wayback Machine