article

Simple DirectMedia Layer


Simple DirectMedia Layer (SDL) — это кроссплатформенная мультимедийная библиотека, обеспечивающая интерфейс для низкоуровневого доступа к звуку, клавиатуре, мыши, джойстику, 3D оборудованию и фреймбуферу. Библиотека используется при написании медиа плееров, эмуляторов и многих популярных игр для операционной системы Linux. На ней написан порт игры "Civilization: Call To Power" для Linux.

SDL — кроссплатформенная библиотека. Официально поддерживаются операционные системы Linux, Windows, BeOS, MacOS, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX и QNX. Так же есть неофициальная поддержка для Windows CE, AmigaOS, MorphOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS и SymbianOS.

SDL написана на C, но работает с C++. API доступны для языков: Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python и Ruby.

На данный момент это самый серьёзный конкурент DirectX. Имеет открытую лицензию LGPL.

SDL содержит базовый, весьма ограниченый, спектр возможностей. Большое количество дополнительных возможностей доступно при использовании дополнительных библиотек, которые обычно входят в поставку SDL.

Дополнительные библиотеки SDL


SDL_gfx

Цвет в этой библиотеки задаётся с помощью 0xRRGGBBAA тоесть RR-красный, GG-зелёный BB-синий, AA-прозрачность Пример: Uint32 Red=0xFF000000; = Возможности:
  1. для работы с изображениями см. SDL_rotozoomSurface, позволяет поворачивать и увеличивать/уменьшать изображения.
  2. Примитивы см. SDL_gfxPrimitves.h Рисование примитивов : точка, круг, линия и т.д.…
  3. Framerate control см. SDL_framerate.h
  4. MMX image filters см. SDL_imageFilter.h
  5. Так же имеется возможность вывода текста (стандартная библиотека не поддерживает русский текст, но есть возможность русификации, в см. файл SDL_gfxPrimitives_font.h

SDL_image

Поддержка чтения и декодирования графических фоматов: TGA, PNM, XPM, XCF, PCX, GIF, JPG, TIFF, LBM, PNG. Формат BMP поддерживается без этой библиотеки.

SDL_ttf

Уже по названию библиотеки видно, что она предназначена для работы с ttf шрифтами. Потдерживает массу возможностей, включая UNICODE.

Компиляция SDL (C++) Windows и DevC++


В данной главе рассказывается, как настроить у себя на компьютере SDL, если вы используете Windows. Для начала рекомендуется установить себе IDE DevC++, потому что она обладает свободной лицензией GNU GPL, и используя её вы не нарушаете закон. (Если у вас английская версия, нажмите Tools->Environment Option, там 2 вкладка Interface, в разделе Language выбрать Russian(Русский). ) Есть 2 пути заставить работать SDL:
  1. Первый способ - закачать обновления автоматически: нажать Сервис->Проверить обнавления/пакеты... там Select devpak server, выбрать сервер devpaks.org Community Devpaks, нажать Check for updates. В Groups выбрать SDL и в предложенных пакетах выбрать нужные (обязательно SDL, рекомендую SDL_mixer(для звука), SDL_ttf, SDL_gfx, SDL_image). Теперь при создании нового проекта (Файл->Создать->Проект) появится возможность создать SDL-проект.
  2. Второй способ - сделать все вручную. Для этого, естественно, нужны библиотеки, большинство вы можете найти на сайте http://www.sdllib.org. или на сайте http://masam.net.ru а именно http://www.masam.net.ru/download/share/060520_14:24:07SDL.tar.bz2 В дистрибутив включены SDL, SDL_gfx, SDL_ttf, glSDL.
Распаковываете это все, допустим, на диск C:\ в папку SDL. Создаете пустой проект в Dev-C++ или открываете сушествующий (ВНИМАНИЕ! НЕ СОЗДАВАЙТЕ ИМЕНА ПРОЕКТА РУССКИМИ БУКВАМИ, ТАК ЖЕ НЕ ИСПОЛЬЗУЙТЕ В ИМЕНАХ ФАЙЛОВ РУССКИЕ БУКВЫ). После создания/открытия проекта нажимаете по нему (слева где написано название проекта) правой кономпкой мыши, выпадет меню в котором выберите "Параметры проекта" там 5-ая вкладка Файл... В ней вкладка "Файлов включения" там кнопку с нарисованной диекторией выберите путь к include. Пример C:\SDL\SDL\include. Потом кнопка "Добавить". Надо это повторить со всеми нужными библиотеками. После этого нажимаете на Параметры, там справа увидите Компановщик, внизу кнопка Добавить библиотеки. Добавляете libsdl.dll.a из папки SDL\lib или sdl.dll из папки SDL\bin, а так же все файлы из других нужных библиотек.

Компиляция SDL (C++) Linux/FreeBSD


cd директория

gсс *.с `sdl-config --libs --cflags`

Simple DirectMedia Layer | Simple DirectMedia Layer | Simple DirectMedia Layer | LibSDL | SDL | Simple DirectMedia Layer | SDL | Simple DirectMedia Layer | Simple DirectMedia Layer | Simple DirectMedia Layer

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Simple DirectMedia Layer".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld