Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
exsprite(3)			 Allegro manual 		     exsprite(3)

NAME
     exsprite  - Datafiles access and sprite animation. Allegro game programming
     library.

SYNOPSIS
     #include <allegro.h>

     Example exsprite

DESCRIPTION
     This example demonstrates how to use datafiles, various sprite drawing rou-
     tines and flicker-free animation.

     Why is the animate() routine coded in that  way?	As  you  probably  know,
     VIDEO  RAM  is  much  slower than "normal" RAM, so it's advisable to reduce
     VRAM blits to a minimum.  Drawing sprite on the screen  (meaning  in  VRAM)
     and then clearing a background for it is not very fast. This example uses a
     different method which is much faster, but require a bit more memory.

     First  the  buffer  is  cleared  (it's a normal BITMAP), then the sprite is
     drawn on it, and when the drawing is finished this  buffer  is  copied  di-
     rectly to the screen. So the end result is that there is a single VRAM blit
     instead  of  blitting/clearing  the  background and drawing a sprite on it.
     It's a good method even when you have to restore  the  background.  And  of
     course, it completely removes any flickering effect.

     When  one	uses  a  big (ie. 800x600 background) and draws something on it,
     it's wise to use a copy of background somewhere in memory and restore back-
     ground using this "virtual background". When blitting  from  VRAM	in  SVGA
     modes,  it's  probably, that drawing routines have to switch banks on video
     card. I think, I don't have to remind how slow is it.

     Note that on modern systems, the above isn't true anymore, and you  usually
     get  the  best  performance by caching all your animations in video ram and
     doing only VRAM->VRAM blits, so there is no more RAM->VRAM transfer at  all
     anymore.  And  usually,  such transfers can run in parallel on the graphics
     card's processor as well, costing virtually no main cpu time at  all.   See
     the exaccel example for an example of this.

SEE ALSO
     BITMAP(3),   DATAFILE(3),	END_OF_FUNCTION(3),  END_OF_MAIN(3),  LOCK_FUNC-
     TION(3), LOCK_VARIABLE(3), SCREEN_H(3), SCREEN_W(3), allegro_error(3),  al-
     legro_init(3),  allegro_message(3),  blit(3),  circle(3),	clear_bitmap(3),
     clear_keybuf(3),	create_bitmap(3),   destroy_bitmap(3),	 draw_sprite(3),
     draw_sprite_h_flip(3),    draw_sprite_v_flip(3),	 draw_sprite_vh_flip(3),
     fixed(3), font(3), hline(3),  install_int_ex(3),  install_keyboard(3),  in-
     stall_sound(3),   install_timer(3),   itofix(3),	key(3),   keypressed(3),
     load_datafile(3),	  makecol(3),	  palette_color(3),	pivot_sprite(3),
     pivot_sprite_v_flip(3),  play_sample(3),  rectfill(3), replace_filename(3),
     rest(3),  screen(3),   set_gfx_mode(3),   set_palette(3),	 text_height(3),
     textout_centre_ex(3), unload_datafile(3), vsync(3)

Allegro 			  version 4.4.3 		     exsprite(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=exsprite&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help