Рубрики
2D мир Программирование

SDL: сравнение версий

История развития библиотеки и сравнение мажорных версий библиотеки SDL

Введение

SDL (Simple DirectMedia Layer) — это мощная, свободная и кроссплатформенная мультимедийная библиотека, написанная на языке C. Данная библиотека может быть использована так же с C++, а так же имеет версии для множества популярных языков: Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike, Pliant, Python, Ruby и Smalltalk.

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

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

SDL 1.x

SDL 1.x предоставлял базовый набор функций для работы с 2D-графикой, аудио и устройствами ввода, такими как клавиатура, мышь и джойстики. Библиотека быстро завоевала популярность благодаря:

  • кросплатформенности;
  • единому API для работы с графикой, звуком и пользовательским вводом;
  • открытому исходному коду и лицензии GNU LGPL 2.

Финальная версия SDL 1.2 поддерживала: Linux, Windows, BeOS, MacOS Classic, Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX и QNX. Так же исходные тексты содержали поддержку для Dreamcast, Atari, AIX, OSF/Tru64, RISC OS, SymbianOS, Nintendo DS и OS/2, но официально не поддерживались.

Данная версия имела ряд ограничений:

  • отсутствие аппаратного ускорения — использовалась программная отрисовка на CPU, что негативно влияло на производительность;
  • ограниченная поддержка современных устройств ввода;
  • отсутствие поддержки работы с несколькими окнами.

На данный момент SDL 1 помечен как «устаревший» и более не поддерживается.

Оригинальный репозиторий, который может быть использован для сборки или в целях изучения: Github

Оригинальная wiki по версии 1.2 была стерта спустя некоторое время после релиза 2 версии, но все же доступна через зеркало или web архив.

Проекты использовавшие SDL 1.2:

  • OpenTTD — открытая реализация игры Transport Tycoon Deluxe;
  • Freeciv — свободная многопользовательская игра в жанре 4X, основанная на серии Civilization;
  • Lincity — симулятор строительства и управления городом;
  • SuperTux — платформер с открытым кодом, вдохновленный серией игр про водопроводчика Марио.

Так же библиотека использовалась для портирования на конкретные системы:

  • Civilization: call to power — linux версия;
  • Quake III Arena — linux версия;
  • Unreal Tournament 2004 — linux версия
  • Heroes of Might and Magic III — linux версия
  • Neverwinter Nights — linux версия.

SDL 2.x

SDL 2.0 был официально выпущен в августе 2013 года после нескольких лет активной разработки и бета-тестирования. Новая версия включала в себя множество значительных улучшений и новых возможностей:

  • аппаратное ускорение графики;
  • мультиоконность;
  • расширенная поддержка ввода;
  • поддержка мобильных платформ — добавлена совместимость в iOS и Android.

Вторая версия доступна на отдельной ветке основного репозитория, так как на момент написания заметки на основной ветке доступны исходные тексты третьей версии.

На момент написания заметки оригинальная вики доступна по ссылке.

Проекты использующие SDL 2:

  • Celeste;
  • FTL: Faster Than Light;
  • Stardew Valley;
  • Hollow Knight;
  • Dwarf fortress — платная GUI версия для steam;
  • Factorio;
  • X4 Foundations;
  • Steam;
  • игры на движке Source;
  • и многие другие.

Стоит заметить что не все перечисленные игры целиком используют функциональность, представленную библиотекой. Некоторые используют библиотеку только для создания контекста окна и обработки пользовательского ввода.

SDL 3.x

На момент написания заметки в октябре 2024 SDL 3.x все ещё находится в разработке.

Данная версия имеет в себе глобальные изменения:

  • новые API для файловых диалогов, камер и стилусов;
  • расширенные возможности работы с аудио, включая отдельные устройства и потоки;
  • улучшенная поддержка многопоточности и синхронизации;
  • доступ к современному 3D-рендерингу и вычислениям на GPU на разных платформах;
  • возможность получения системной темы (светлая/темная);
  • поддержка цветовых пространств.

Третья версия доступна на основной ветке официального репозитория.

Официальная wiki находится по ссылке.

Заключение

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Управление cookie