Логотип SDL | |
Оригинальный автор (авторы) | Сэм Лантинга |
---|---|
Разработчик ( s) | Сообщество SDL |
Первоначальный выпуск | 1998 г.; 22 года назад (1998 г.) |
Стабильный выпуск | 2.0.12 / 11 марта 2020 г.; 7 месяцев назад (2020-03-11) |
Репозиторий | |
Написано в | C |
Операционной системе | Linux, Windows, macOS 10.4+, iOS 3.1.3+, tvOS, Android 2.3.3+, FreeBSD 8.4+, Haiku. Дополнительно до v2.0.0 (устаревшие версии): AmigaOS, ОС RISC |
Тип | API |
Лицензия | Лицензия zlib. До 2.0.0:. GNU LGPL |
Веб-сайт | www.libsdl.org |
Simple DirectMedia Layer (SDL ) - это кроссплатформенная библиотека разработки программного обеспечения разработан для обеспечения уровня абстракции оборудования для компьютерных мультимедиа аппаратных компонентов. Разработчики программного обеспечения могут использовать его для написания высокопроизводительных компьютерных игр и других мультимедийных приложений, которые могут работать во многих операционных системах, таких как Android, iOS, Linux, macOS и Windows.
SDL управляет видео, аудио, устройствами ввода, CD-ROM, потоки, общий объект загрузка, сеть и таймеры. Для трехмерной графики он может обрабатывать контекст OpenGL, Vulkan, Metal или Direct3D11 (также поддерживается более старая версия Direct3d 9).. Распространенное заблуждение состоит в том, что SDL - это игровой движок, но это неверно. Однако библиотека подходит для создания игр напрямую или косвенно может использоваться движками, построенными на ее основе.
Библиотека внутренне написана на C и, возможно, в зависимости от целевой платформы, C ++ или Objective-C, и предоставляет интерфейс прикладного программирования на языке C, с возможностью привязки к другим языкам. Это бесплатное программное обеспечение с открытым исходным кодом в соответствии с требованиями лицензии zlib начиная с версии 2.0, а с предыдущими версиями распространяется действие Стандартной общественной лицензии ограниченного применения GNU. В соответствии с лицензией zlib SDL 2.0 свободно доступен для статического связывания в проектах с закрытым исходным кодом, в отличие от SDL 1.2. SDL 2.0, выпущенный в 2013 году, сильно отличался от предыдущих версий, предлагая больше возможностей для аппаратного 3D-ускорения, но нарушая обратную совместимость.
SDL широко используется в отрасли как в крупных, так и в небольших проектах. На сайте библиотеки размещено более 700 игр, 180 приложений и 120 демонстраций.
Сэм Лантинга создал библиотеку, впервые выпустив ее в начале 1998 года, работая в Программное обеспечение Loki. Идея пришла ему в голову при переносе приложения Windows на Macintosh. Затем он использовал SDL для переноса Doom на BeOS (см. исходные порты Doom ). Для работы вместе с SDL было разработано несколько других бесплатных библиотек, таких как SMPEG и OpenAL. Он также основал в 2008 году, чтобы помочь коммерческой поддержке SDL, хотя планы компании в настоящее время приостановлены из-за нехватки времени.
Вскоре после приостановки Galaxy Gameworks Лантинга объявил, что SDL 1.3 (который позже станет SDL 2.0) будет лицензироваться на условиях лицензии zlib. Лантинга анонсировал SDL 2.0 14 июля 2012 года, одновременно объявив, что он присоединяется к Valve, первая версия которой была анонсирована в тот же день, когда он присоединился к компании. Lantinga объявила о выпуске стабильной версии SDL 2.0.0 13 августа 2013 года.
SDL 2.0 - это крупное обновление SDL 1.2 кодовой базы с другим, не обратно совместимым API. Он заменяет несколько частей API 1.2 более общей поддержкой нескольких параметров ввода и вывода. Некоторые дополнения к функциям включают поддержку нескольких окон, 2D-графику с аппаратным ускорением и улучшенную поддержку Unicode.
Добавлена поддержка Mir и Wayland в SDL 2.0.2 и включен по умолчанию в SDL 2.0.4. Версия 2.0.4 также обеспечивает лучшую поддержку Android.
SDL - это оболочка для специфических для операционной системы функций, к которым игра должна получить доступ. Единственная цель SDL - предоставить общую структуру для доступа к этим функциям для нескольких операционных систем (кроссплатформенность). SDL обеспечивает поддержку 2D-пиксельных операций, звука, доступа к файлам, обработки событий, синхронизации и потоковой передачи. Он часто используется для дополнения OpenGL путем настройки графического вывода и обеспечения ввода с помощью мыши и клавиатуры, поскольку OpenGL включает только визуализацию.
Игра, использующая Simple DirectMedia Layer, не будет автоматически запускаться во всех операционных системах, необходимо внести дополнительные изменения. Они сведены к минимуму, поскольку SDL также содержит несколько API абстракции для часто используемых функций, предлагаемых операционной системой.
Синтаксис SDL основан на функциях: все операции, выполняемые в SDL, выполняются путем передачи параметров в подпрограммы (функции). Специальные структуры также используются для хранения конкретной информации, которую необходимо обрабатывать SDL. Функции SDL подразделяются на несколько различных подсистем.
SDL разделен на несколько подсистем:
Помимо этой базовой, низкоуровневой поддержки, есть также несколько отдельных официальных библиотеки, которые предоставляют еще несколько функций. Они составляют «стандартную библиотеку», представлены на официальном сайте и включены в официальную документацию:
Другое, также существуют нестандартные библиотеки. Например: SDL_Collide на Sourceforge, созданный Амиром Тааки.
Библиотека SDL 2.0 имеет языковых привязок для:
Из-за способа SDL спроектирован, большая часть его исходного кода разделена на отдельные модули для каждой операционной системы, чтобы выполнять вызовы базовой системы. Когда SDL компилируется, соответствующие модули выбираются для целевой системы. Доступны следующие серверные части:
SDL 1.2, имеет поддержку RISC OS (упало в 2.0).
Для SDL 1.2 доступен неофициальный бэкэнд Sixel.
Прошивка MP3-плеера Rockbox также распространяет версию SDL 1.2, которая используется для запуска таких игр, как Quake.
На протяжении многих лет SDL использовался для многих коммерческих и некоммерческих проектов видеоигр. Например, MobyGames перечислил 120 игр, использующих SDL в 2013 году, а сам веб-сайт SDL перечислил около 700 игр в 2012 году. Важными коммерческими примерами являются Angry Birds и Unreal Tournament ; из домена с открытым исходным кодом: OpenTTD, The Battle for Wesnoth или Freeciv.
Кросс-платформенные релизы популярных игр Humble Indie Bundles для Linux, Mac и Android часто основаны на SDL.
SDL также часто используется для более поздних портов на новых платформах с устаревшим кодом. Например, игра для ПК Homeworld была перенесена на портативное устройство Pandora и Jagged Alliance 2 для Android через SDL.
Кроме того, SDL используется в нескольких программах, не относящихся к видеоиграм; примерами являются эмуляторы DOSBox и VisualBoyAdvance.
Было написано несколько книг для разработки с использованием SDL (см. дополнительную литературу).
SDL используется в университетских курсах обучения мультимедиа и информатике, например, на семинаре по программированию игр с использованием libSDL в Университете Кадиса в 2010 г. или дисциплина «Дизайн игр» в UTFPR (кампус Понта-Гросса) в 2015 г.