Установка библиотек расширений

Блитинг PNG
SDL изначально поддерживает только файлы .bmp, но при использовании библиотеки SDL_image, вы сможете загружать BMP, PNM, XPM, LBM, PCX, GIF, JPEG, TGA и PNG.

Библиотеки расширений позволяют вам использовать функции, которые SDL не поддерживает изначально. Установка расширений SDL совсем не сложна. Я бы даже сказал, что это проще чем базовая настройка SDL.

Это часть руководства научит вас тому, как установить и настроить библиотек SDL_image. Как только вы узнаете как установить это расширение, вы сможете установить и настроить любое другое.


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


  1. Пользователи Ubuntu могут воспользоваться пакетным менеджером. Открыв его ищите пакет libsdl-image1.2-dev, который является пакетом для разработки под SDL. Как только вы нашли его, нажимайте установить.

    Если вы устанавливаете SDL_ttf, ищите libsdl-ttf2.0-dev.
    Если SDL_mixed, ищите libsdl-mixer1.2-dev.
    И т.д. и т.д.

  2. Для дистрибутивов основанных на RPM, вам нужны пакеты SDL_image для разбаботчиков.
    Пакет SDL_image можно найти на этой странице.

    Прокрутите окно до секции «Binary» и скачайте нужный пакет:
    Пакеты SDL_image
    Теперь запустите RPM и дайте ей сделать свое дело.

  3. Если в первой части руководства вы использовали apt-get, aptitude или yum для установки SDL, то у вас уже должны быть установлены пакеты SDL_image, SDL_ttf и SDL_mixer.

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

Когда вы компилируете приложение, просто добавьте -lSDL_image после g++ -o myprogram mysource.cpp -lSDL

Если вы связываете с SDL_ttf, добавляйте -lSDL_ttf.
Если SDL_mixer, то -lSDL_mixer.
И т.д. и т.д.

Для использования SDL_image убедитесь что вы включили заголовочный файл.

#include <SDL/SDL_image.h>

Для SDL_ttf:

#include <SDL/SDL_ttf.h>

Для SDL_mixer:

#include <SDL/SDL_mixer.h>

И т.д. и т.д.

Теперь библиотека готова к использованию. И можно использовать функции SDL_image.

Главная функция, о которой вы бы хотели узнать это IMG_Load().

SDL_Surface *load_image( std::string filename ) {
    //Временное хранилище для загружаемого изображения
    SDL_Surface* loadedImage = NULL;
     //Оптимизированное изображение, которое и будет использоваться
    SDL_Surface* optimizedImage = NULL;
    //Загружаем изображение при помощи SDL_image
    loadedImage = IMG_Load( filename.c_str() );
    //Если изображение загружено
    if( loadedImage != NULL ) {
        //Создать оптимизированное изображение
        optimizedImage = SDL_DisplayFormat( loadedImage );
        //Освободить ресурсы из-под старого изображения
        SDL_FreeSurface( loadedImage );
    }
    //Вернуть оптимизированное изображение
    return optimizedImage;
}

Перед вами пересмотренная версия функции загрузки изображений из предыдущей части руководства.

Как вы можете видеть, IMG_Load() работает так же как и SDL_LoadBMP(), но с одни большим исключением: IMG_Load() может загружать файлы BMP, PNM, XPM, LBM, PCX, GIF, JPEG, TGA и PNG

Начиная с этого момента, в руководствах будут использоваться изображения в формате PNG. Изображения в этом формате используют великолепный алгоритм сжатия без потерь.


Скачать исходники.
Рекомендую держать под рукой документацию по SDL_image. Попоробуйте ввести в терминале

man IMG_Load

Если документация не установилась при установке пакетов, вы можете найти ее на этой странице.

Установка библиотек расширений: 6 комментариев

        1. admin Автор записи

          Ну именно установка всякой всячины при наличии системы управления пакетами, будь то deb или rpm, намного проще и удобней чем аналогичный процесс под виндой.

Добавить комментарий