Todas estas rutinas son afectadas por el área de recorte del bitmap destino.
void clear_bitmap(BITMAP *bitmap);
Limpia el bitmap con el color 0.
Relacionado con: clear_to_color, clear.void clear(BITMAP *bitmap);
#define ALLEGRO_NO_CLEAR_BITMAP_ALIAS #include <allegro.h>
Relacionado con: clear_bitmap.void clear_to_color(BITMAP *bitmap, int color);
Relacionado con: clear_bitmap.void blit(BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
Puede hacer un blit entre cualquier parte de dos bitmaps, incluso si las dos áreas se superponen (ejemplo: source y dest son el mismo bitmap, o uno es un sub-bitmap del otro). Debería tener en cuenta, sin embargo, que muchas tarjetas SVGA no tienen bancos de lectura/escritura separados, lo que significa que hacer un blit de una parte de la pantalla a otra requiere el uso de un bitmap de memoria temporal, y es por ello extremadamente lento. Como regla general debería evitar hacer blits de la pantalla sobre sí misma en modos SVGA.
Sin embargo, hacer un blit en modo-X de una parte de la pantalla a otro lado puede ser significantemente más rápido que desde la memoria hacia la pantalla, siempre y cuando el origen y el destino estén correctamente alineados el uno con el otro. Hacer una copia entre áreas de la pantalla que se superponen es lento, pero si las áreas no se superponen, y si tienen la misma alineación de planos (es decir: (source_x%4) == (dest_x%4)), entonces se pueden usar los registros de la VGA para realizar una rápida transferencia de datos. Para tomar ventaja de esto, en modo-X normalmente se almacenan los gráficos en una parte oculta de la memoria de vídeo (usando una pantalla virtual grande), y se hacen blits desde allí a la parte visible de la pantalla.
Si el bit GFX_HW_VRAM_BLIT está activado en la variable gfx_capabilities, el controlador actual soporta blits de una parte de la pantalla a otra usando aceleración por hardware. Esto es extremadamente rápido, por lo que si este bit está activado, sería útil almacenar parte de sus gráficos más frequentemente usados en una porción oculta de la memoria de vídeo.
Al contrario que la mayoría de las rutinas gráficas, blit() permite que los bitmaps de origen y destino sean de diferentes profundidades de color, por lo que se puede usar para convertir imágenes de un formato de pixel a otro.
Relacionado con: masked_blit, stretch_blit, draw_sprite, gfx_capabilities.void masked_blit(BITMAP *source, BITMAP *dest, int source_x, int source_y, int dest_x, int dest_y, int width, int height);
Si el bit GFX_HW_VRAM_BLIT_MASKED está activado en la variable gfx_capabilities, el controlador actual soporta blits de una parte de la pantalla a otra usando aceleración por hardware. Esto es extremadamente rápido, por lo que si este bit está activado, sería útil almacenar parte de sus gráficos más frequentemente usados en una porción oculta de la memoria de vídeo.
Atención: ¡si el bit de aceleración por hardware no está activado, masked_blit() no funcionará correctamente cuando la imagen origen sea la memoria de vídeo, y el gráfico a dibujar siempre tiene que ser un bitmap de memoria!
Relacionado con: blit, draw_sprite, bitmap_mask_color.void stretch_blit(BITMAP *source, BITMAP *dest, int source_x, source_y, source_width, source_height, int dest_x, dest_y, dest_width, dest_height);
Relacionado con: blit, stretch_sprite.void masked_stretch_blit(BITMAP *source, BITMAP *dest, int source_x, source_y, source_w, source_h, int dest_x, dest_y, dest_w, dest_h);
Relacionado con: blit, masked_blit, stretch_blit, stretch_sprite.void draw_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y);
Si el bit GFX_HW_VRAM_BLIT_MASKED está activado en la variable gfx_capabilities, el controlador actual soporta blits de una parte de la pantalla a otra usando aceleración por hardware. Esto es extremadamente rápido, por lo que si este bit está activado, sería útil almacenar parte de sus gráficos más frequentemente usados en una porción oculta de la memoria de vídeo.
Atención: ¡si el bit de aceleración por hardware no está activado, draw_sprite() no funcionará correctamente cuando la imagen origen sea la memoria de vídeo, y el gráfico a dibujar siempre tiene que ser un bitmap de memoria!
A pesar de no soportar generalmente gráficos de diferentes profundidades de color, como caso especial puede usar esta función para dibujar imágenes origen de 256 colores en bitmaps destino truecolor, por lo que puede usar efectos de paleta en sprites específicos dentro de un programa truecolor.
Relacionado con: bitmap_mask_color, draw_gouraud_sprite, stretch_sprite, rotate_sprite, draw_character, draw_rle_sprite, draw_compiled_sprite, masked_blit, blit, draw_sprite_v_flip, draw_trans_sprite, draw_lit_sprite.void draw_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y);
Relacionado con: draw_sprite, bitmap_mask_color.void draw_trans_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y);
Relacionado con: bitmap_mask_color, draw_sprite, draw_lit_sprite, draw_trans_rle_sprite, color_map, set_trans_blender, set_alpha_blender, set_write_alpha_blender.void draw_lit_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
Relacionado con: draw_lit_rle_sprite, color_map, set_trans_blender, bitmap_mask_color, draw_sprite, draw_trans_sprite, draw_gouraud_sprite.void draw_gouraud_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int c1, int c2, int c3, int c4);
Relacionado con: bitmap_mask_color, draw_sprite, draw_lit_sprite, color_map, set_trans_blender.void draw_character(BITMAP *bmp, BITMAP *sprite, int x, int y, int color);
Relacionado con: draw_sprite, bitmap_mask_color.void rotate_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle);
Relacionado con: draw_sprite, rotate_scaled_sprite, rotate_sprite_v_flip, itofix, Trigonometría de punto fijo, pivot_scaled_sprite, pivot_scaled_sprite_v_flip, pivot_sprite, pivot_sprite_v_flip, rotate_scaled_sprite_v_flip.void rotate_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle);
Relacionado con: pivot_sprite_v_flip, pivot_scaled_sprite_v_flip, rotate_sprite, rotate_scaled_sprite_v_flip.void rotate_scaled_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale);
Relacionado con: pivot_scaled_sprite, pivot_scaled_sprite_v_flip, rotate_sprite, rotate_scaled_sprite_v_flip.void rotate_scaled_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale)
Relacionado con: rotate_sprite, rotate_scaled_sprite, rotate_sprite_v_flip.void pivot_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle);
Relacionado con: rotate_sprite, pivot_scaled_sprite, pivot_sprite_v_flip.void pivot_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle);
Relacionado con: pivot_sprite, rotate_sprite_v_flip.void pivot_scaled_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int cx, int cy, fixed angle, fixed scale));
Relacionado con: pivot_sprite, pivot_scaled_sprite_v_flip, rotate_sprite, rotate_scaled_sprite.void pivot_scaled_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y, fixed angle, fixed scale)
Relacionado con: pivot_sprite, pivot_scaled_sprite, rotate_sprite, rotate_scaled_sprite_v_flip, rotate_sprite_v_flip.void stretch_sprite(BITMAP *bmp, BITMAP *sprite, int x, int y, int w, int h);
Relacionado con: draw_sprite, stretch_blit, bitmap_mask_color.