Simple Plan
- 1 year ago
- 0
- 0
Simple DirectMedia Layer (SDL) — свободная кроссплатформенная мультимедийная библиотека , реализующая единый программный интерфейс к графической подсистеме, звуковым устройствам и средствам ввода для широкого спектра платформ. Данная библиотека активно используется при написании кроссплатформенных мультимедийных программ (в основном игр).
Официально поддерживаемые операционные системы : Linux , Microsoft Windows , macOS , iOS и Android .
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 , Rust и Ruby .
Основная часть SDL содержит базовый, весьма ограниченный спектр возможностей. Дополнительную функциональность обеспечивают библиотеки расширений, которые обычно входят в поставку SDL.
Начиная с версии 2.0, SDL распространяется под условиями лицензии zlib ; до этого использовалась лицензия GNU LGPL .
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. В дополнение к этой базовой низкоуровневой функциональности, существует ряд стандартных библиотек, предоставляющих дополнительную функциональность: