C ++ Allegro 5.0.8 — al_load_bitmap () возвращает NULL в Linux

Я занимаюсь разработкой игры на Allegro 5.0.8, и все шло хорошо, пока я не попытался скомпилировать ее и запустить на Linux (Mint 14) … поэтому я провел sime тесты;

#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <iostream>

int main(void)
{
al_init();
ALLEGRO_DISPLAY *screen = al_create_display(800, 600);
al_init_image_addon();

ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH);
al_set_path_filename(path, "players.png");
ALLEGRO_BITMAP *img = al_load_bitmap(al_path_cstr(path, '/'));

if (img == NULL)
std::cout << al_path_cstr(path, '/') << std::endl;

al_draw_bitmap(img, 0, 0, 0);
al_flip_display();

while (true){}
return 0;
}

этот пример компилируется просто отлично, но строка

ALLEGRO_BITMAP *img = al_load_bitmap(al_path_cstr(path, '/'));

возвращается НОЛЬ. С другой стороны, линия

std::cout << al_path_cstr(path, '/') << std::endl;

печатает точный абсолютный путь изображения.

Что я делаю неправильно?

0

Решение

у меня есть libpng12-0 .. но не libpng12-dev … я должен установить это тоже ??

После установки libpng12-dev вам необходимо перестроить Allegro. Выходные данные cmake сообщают вам, поддерживается ли PNG.

Как только вы перестроите Allegro с поддержкой PNG, он будет работать, если ваш файл PNG не слишком большой для загрузки на вашу видеокарту.

0

Другие решения

Других решений пока нет …