NAME¶
draw_trans_sprite - Draws a sprite blending it with the destination. Allegro
game programming library.
SYNOPSIS¶
#include <allegro.h>
void draw_trans_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y);
DESCRIPTION¶
Uses the global color_map table or truecolor blender functions to overlay the
sprite on top of the existing image. This must only be used after you have set
up the color mapping table (for 256-color modes) or blender functions (for
truecolor modes). Because it involves reading as well as writing the bitmap
memory, translucent drawing is very slow if you draw directly to video RAM, so
wherever possible you should use a memory bitmap instead. Example:
/* Some one time initialisation code. */
COLOR_MAP global_trans_table;
create_trans_table(&global_trans_table, my_palette,
128, 128, 128, NULL);
...
if (get_color_depth() == 8)
color_map = &global_trans_table;
else
set_trans_blender(128, 128, 128, 128);
draw_trans_sprite(buffer, ghost_sprite, x, y);
The bitmap and sprite must normally be in the same color depth, but as a special
case you can draw 32 bit RGBA format sprites onto any hicolor or truecolor
bitmap, as long as you call set_alpha_blender() first, and you can draw 8-bit
alpha images onto a 32-bit RGBA destination, as long as you call
set_write_alpha_blender() first. As draw_sprite() this function skips
transparent pixels, except if the source sprite is an 8-bit image; if this is
the case, you should pay attention to properly set up your color map table for
index 0.
SEE ALSO¶
draw_sprite(3alleg4),
draw_lit_sprite(3alleg4),
draw_trans_rle_sprite(3alleg4),
color_map(3alleg4),
set_trans_blender(3alleg4),
set_alpha_blender(3alleg4),
set_write_alpha_blender(3alleg4),
bitmap_mask_color(3alleg4),
exalpha(3alleg4),
exblend(3alleg4),
exlights(3alleg4),
exrotscl(3alleg4),
extrans(3alleg4),
exxfade(3alleg4)