Видео
- Установка видеорежима с любой глубиной
цвета (от 8 бит и выше) с необязательным преобразованием, если режим
не поддерживается аппаратно.
- Прямая запись в линейный графический
видеобуфер.
- Создание поверхностей с атрибутами
прозрачности или альфа-сопряжения (alpha blending).
- Копирование поверхностей с автоматическим
преобразованием в целевой формат, используя оптимизированные процедуры
копирования и, по возможности, аппаратное ускорение. На платформе
x86 имеется MMX оптимизированные процедуры
копирования.
- Используется аппаратное ускорение
операций копирования и заполнения, если это поддерживается оборудованием.
|
Совет:
Вы можете установить строку заголовка вашего приложения и иконку, используя
функции SDL_WM_SetCaption() и SDL_WM_SetIcon() соответственно.
|
События
- Предусмотрены события для:
- Изменения вида приложения
- Ввода с клавиатуры
- Ввода мыши
- Выхода по требованию пользователя
- Каждое событие может быть разрешено
или запрещено функцией SDL_EventState().
- События передаются через указанную
пользователем фильтрующую функцию перед отправлением их во внутреннюю
очередь событий.
- Очередь событий надежна при использовании
потоков (thread-safe).
|
Совет:
Используйте SDL_PeepEvents()
для поиска событий конкретного типа в очереди событий.
|
Звук
- Воспроизведение 8-ми и 16-ти битных
звуков, моно или стерео, с необязательным преобразованием, если формат
не поддерживается оборудованием.
- Звук запускается независимо в отдельном
потоке, используя для заполнения механизм пользовательской функции
обратного вызова (callback).
- Предназначен для обычного программного
аудио микширования, но в архиве с примерами есть полноценная библиотека
для вывода музыки и звуков.
|
Совет:
Используйте функции SDL_LockAudio()
и SDL_UnlockAudio()
для синхронизации доступа к данным, разделяемым между
звуковой функцией обратного вызова и остальной частью программы.
|
CD-ROM аудио
- Полный API для управления CD аудио
|
Совет:
Если вы передадите NULL в качестве дескриптора CD-ROM в любую функцию
CD-ROM API, это будет действовать как последний открытый CD-ROM.
|
Потоки
- Простой API для создания потоков
- Простые двоичные семафоры для синхронизации
|
Совет:
Не используйте функции библиотеки C касающиеся ввода/вывода и управления памятью из потоков,
если вы можете избежать их– они блокируют ресурсы,
используемые другими потоками.
|
Таймеры
- Получение прошедшего числа миллисекунд
- Ожидание указанного числа миллисекунд
- Установка одиночных периодических
таймеров с точностью 10 мс
|
Совет:
Вы можете спокойно заменить Win32
GetTickCount()
на SDL_GetTicks().
|
Независимость от порядка байтов
в слове
- Определение порядка байтов в текущей
системе
- Процедуры для быстрого обмена значений
- Чтение и запись данных с указанным
порядком байтов
|
Совет:
При чтении ваших файлов данных вам может потребоваться перестановка байтов
в 16-битной графике.
|