[Назад] Содержание [Дальше]

Что SDL может делать?

Видео

  • Установка видео режима с любой глубиной цвета (от 8 бит и выше) с необязательным преобразованием, если режим не поддерживается аппаратно.
  • Прямая запись в линейный графический буфер кадра.
  • Создание поверхностей с цветовым ключом (colorkey) или альфа-сопряжением (alpha blending).
  • Копирование поверхностей с автоматическим преобразованием в целевой формат используя оптимизированные процедуры и аппаратное ускорение, если возможно. На платформе x86 имеется MXX оптимизированные процедуры копирования.
  • Используется аппаратное ускорение операций копирования и заполнения если это поддерживается оборудованием.

Совет:
Вы можете установить строку заголовка вашего приложения и иконку используя функции SDL_WM_SetCaption() и SDL_WM_SetIcon() соответственно.

События

  • Предусмотрены события для:
    • Изменение вида приложения
    • Ввод с клавиатуры
    • Ввод мыши
    • Выход по требованию пользователя
  • Каждое событие может быть разрешено или запрещено функцией SDL_EventState().
  • События передаются через указанную пользователем фильтрующую функцию перед тем, как быть отправленными во внутреннюю очередь событий.
  • Очередь сообщений надежна при использовании потоков (thread-safe).

Совет:
Используйте SDL_PeepEvents() для поиска событий конкретного типа в очереди сообщений.

Звук

  • Воспроизведение 8-ми и 16-ти битных звуков, моно или стерео, с необязательным преобразованием, если формат не поддерживается оборудованием.
  • Звук воспроизводится в отдельном независимом потоке, заполняется через пользовательский механизм обратных функций (callback).
  • Спроектированы традиционные программные звуковые микшеры, но архив с примерами содержит законченную библиотеку для вывода звука и музыки.

Совет:
Используйте функции SDL_LockAudio() и SDL_UnlockAudio()  для синхронизации доступа к данным, разделяемым между звуковой функцией обратного вызова и остальной части программы.

CD-ROM audio

  • Полный CD audio управляющий API

Совет:
Если вы передадите NULL в качестве дескриптора CD-ROM в любую функцию CD-ROM API, это будет действовать как последний открытый CD-ROM.

Потоки

  • Простой API для создания потоков
  • Простые двоичные семафоры для синхронизации

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

Таймеры

  • Получение прошедшего числа миллисекунд
  • Ожидание указанного числа миллисекунд
  • Установка одиночных периодических таймеров с точностью 10 мс

Совет:
Вы можете спокойно заменить Win32 GetTickCount() на SDL_GetTicks().

Независимость от порядка байтов в слове

  • Определение порядка байтов в текущей системе
  • Подпрограммы для быстрого обмена значений
  • Чтение и запись данных с указанным порядком байтов

Совет:
При чтении ваших файлов данных вам может потребоваться перестановка байтов в 16-битной графике.

[Назад] Содержание [Дальше]