Ошибка с masked_blit в Allegro5

я использую 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);
[..]

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) может быть полезно здесь.

3

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

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