Почти все языки программирования обладают огромным ассортиментом дополнительных пакетов, инструментов, фреймворков и библиотек. Все это помогает создавать разнообразные проекты в считанные минуты. Готовые типовые решения в сфере разработки применяются как новичками, так и более опытными специалистами.
Сегодня предстоит познакомиться с библиотекой SDL. Она является частью известного языка программирования – C++, а также других языков. На нем можно создавать кроссплатформенные приложения различного типа: от бизнес-программ до полноценных игр AAA-класса.
Определение
Simple DirectMedia Layer – свободная мультимедийная библиотека. Она используется для реализации единого программного интерфейса к графической системе, звуковым устройствам и средствам ввода для широкого спектра устройств (платформ). Активно применяется в процессе разработки кроссплатформенных мультимедийных проектов. В основном – в игровом программировании.
Рассматриваемый инструмент предоставляет доступ к видео и аудио оборудованию компьютера, а также к его устройствам ввода: джойстику, мышке, клавиатуре. Его называют простым уровнем DirectMedia. Доступ к перечисленному ранее оборудованию предоставляется посредством OpenGL и Direct3D.
SDL официально поддерживается разными операционными системами. К ним относят:
- Microsoft Windows;
- Android;
- iOS;
- macOS;
- Linux.
Основная часть SDL включает в свой состав достаточно ограниченные функциональные возможности. Дополнительные опции обеспечивают библиотеки расширений. Они обычно уже включены в рассматриваемую библиотеку.
SDL изначально работала под лицензией GNU LGPL. Начиная со сборки 2.0, данный проект начал распространяется под условиями zlib.
Историческая справка
SDL – проект, который существует весьма продолжительное время. Он был создан Сэмом Лантингом, ведущим разработчиком компании Loki Entertainment Software. Тогда специалист работал над эмулятором Windows для Macintosh. Он отметил, что многие куски исходного кода способны без труда работать на Linux OS. Это привело к размышлениям о создании небольшой библиотеки, которой могли бы использовать другие программисты.
В октябре 1997 года SDL вышла под версией 0.3. Чуть позже она начала активно использоваться Loki Software для портирования игрового контента под Linux.
Когда компания обанкротилась, Сэм перешел работать в Blizzard в качестве ведущего программиста. Тогда там велись активные работы по портированию World of Warcraft на Linux. Но компания решила отказаться от этой затеи.
С 2012 года Лантинг стал частью Valve. Именно они теперь занимаются дальнейшим развитием рассматриваемого продукта.
Структурные особенности
SDL – проект, который сам по себе является очень простым. Он может рассматриваться в качестве тонкой прослойки, обеспечивающей поддержку:
- 2D-операций над пикселями;
- доступа к различным документам;
- обработки событий и так далее.
Изучаемый инструмент очень часто используется в качестве дополнения к OpenGL. Это делается за счет того, что он может предоставлять поддержку мышек, клавиатур и джойстиков.
Simple DirectMedia Layer включает в свой состав несколько подсистем: CD-ROM, Audio, Video, а также Timer и Joystick. Дополнительно предусматриваются некоторые стандартные библиотеки для рассматриваемого продукта. С их помощью можно обеспечить ему дополнительные функциональные возможности:
- mixer – функции организации сложного аудио, в основном – сведение звука из нескольких источников;
- net – сетевые функции;
- image – поддержка растровых форматов изображения;
- rtf – отрисовка текста в RTF-формате (работает только в версии инструмента 1.2);
- ttf – поддержка шрифтов TrueType.
Рассматриваемая технология очень полезна в геймдеве. Теперь можно получше изучить принцип ее работы.
Как работает
Основной задачей SDL является обеспечение простоты и удобства работы с мультимедиа на тех или иных платформах. Инструмент поддерживает огромное количество функций, позволяющих создавать окна, обрабатывать события пользовательского ввода, отрисовывать графику, проигрывать звук и так далее.
Приложение, использующее SDL, сначала будет инициализировать ее. После этого программа создает окно отображения графики и осуществляет звуковые настройки. Приложение занимается обработкой пользовательских событий: перемещение курсора мышки, нажатие на клавиши клавиатуры и так далее. При обнаружении событий программа может менять отображаемый контент или проигрывать звуки.
SDL использует для рисования графики поверхности и рендеры. Под поверхностью понимается двухмерный пиксельный массив. Рендер занимается обработкой поверхности и отображает ее на экране. Рассматриваемый инструмент поддерживает шейдеры, текстуры, а также иные средства работы с графикой.
При помощи изучаемой технологии можно получить контроль над аппаратной частью проекта, аппаратным ускорением графики и звука. Это позволяет оптимизировать производительность под конкретную платформу.
Особенности
К ключевым особенностям рассматриваемого инструмента можно отнести:
- простоту использования;
- широкие функциональные возможности;
- поддержку разнообразных форматов;
- прямой доступ к аппаратному обеспечению контроля над мультимедийными возможностями оборудования;
- кроссплатформенность.
Упомянутая технология – мощный и удобный инструмент разработки мультимедийных программ. Научиться пользоваться ей на профессиональном уровне (и не только на C++) помогут дистанционные компьютерные курсы.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!