Введение в Simple DirectMedia Layer


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


Видео

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

<


Начало  Назад  Вперед



Книжный магазин