2013-03-18 1 views
0

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

error: ‘masked_blit’ was not declared in this scope

Я включил .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); 
[..] 

ответ

3

masked_blit есть Allegro 4 функция. Она не существует в Allegro 5.

Here are graphics functions in Allegro 5

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

al_convert_mask_to_alpha(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR mask_color) может быть полезен здесь.

+1

Все функции Allegro 5 начинаются с 'al_', поэтому должно быть легко сказать, когда вы смотрите на код, документы, учебники и т. Д. АЛЛРОРО. – Matthew

+0

Спасибо, я не думал об этом! Моя проблема решена сейчас :) – Elanore

Смежные вопросы