Введение в 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-битной графике.

    <


    Содержание  Назад  Вперед