2013-03-18 2 views
0

J'utilise masked_blit() dans mon programme pour afficher un .bmp avec transparence (en utilisant le rose parfait). Mais quand je construis, il est dit:Erreur avec masked_blit dans Allegro5

error: ‘masked_blit’ was not declared in this scope

J'inclus le .h Allegro, et bien sûr je n'ai pas oublié tous ces:

-lallegro -lallegro_font -lallegro_ttf -lallegro_image 

Voici un extrait du code que j'ai écrit:

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

Répondre

3

masked_blit est la fonction Allegro 4. Il n'existe pas dans Allegro 5.

Here are graphics functions in Allegro 5

al_draw_bitmap_region est la fonction la plus similaire à masked_blit, mais les règles de transparence sont différents (canal alpha 8 bits vs couleur rose 1 bit comme alpha).

al_convert_mask_to_alpha(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR mask_color) peut être utile ici.

+1

Toutes les fonctions de Allegro 5 commencent par 'al_', donc il devrait être facile de dire quand vous regardez le code Allegro 4, docs, tutoriels, etc – Matthew

+0

Merci, je n'ai pas pensé à ça! Mon problème est résolu maintenant :) – Elanore