я использую masked_blit()
в моей программе для отображения .bmp с прозрачностью (используя идеальный розовый). Но когда я строю, он говорит:
ошибка: «masked_blit» не был объявлен в этой области
Я включил .h Аллегро, и, конечно, я не забыл все это:
-lallegro -lallegro_font -lallegro_ttf -lallegro_image
Вот выдержка из кода, который я написал:
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
[...]
head = al_load_bitmap("head.bmp");
masked_blit(head, display, 0,0,0,0,10,10);
al_clear_to_color(al_map_rgb(0,0,0));
al_draw_bitmap(head, screen_w / 2, screen_h / 2, 0);
[..]
masked_blit
Аллегро 4 функции. Это не существует в Аллегро 5.
Вот графические функции в Аллегро 5
al_draw_bitmap_region
является наиболее похожей функцией masked_blit
, но правила прозрачности отличаются (8-битный альфа-канал от 1-битного розового цвета как альфа).
al_convert_mask_to_alpha(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR mask_color)
может быть полезно здесь.
Других решений пока нет …