Видео
- Установка
видеорежима с любой глубиной цвета (от 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-битной графике.
|