Ошибка с masked_blit в Allegro5

Я использую masked_blit() в своей программе для отображения .bmp с прозрачностью (используя идеальный розовый). Но когда я строю, он говорит:

ошибка: «masked_blit» не был объявлен в этой области

Я включил .h Allegro и, конечно же, не забыл все это:

-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);
[..]

person Elanore    schedule 18.03.2013    source источник


Ответы (1)


masked_blit — это функция Allegro 4. В Allegro 5 его нет.

Графические функции в Allegro 5

al_draw_bitmap_region больше всего похожа на masked_blit, но правила прозрачности другие (8-битный альфа-канал против 1-битного розового цвета в качестве альфа-канала).

al_convert_mask_to_alpha(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR mask_color) здесь может пригодиться.

person milleniumbug    schedule 19.03.2013
comment
Все функции Allegro 5 начинаются с al_, поэтому их должно быть легко понять, когда вы смотрите код Allegro 4, документы, учебные пособия и т. д. - person Matthew; 19.03.2013