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 program-
       ming library.

SYNOPSIS
       #include	<allegro.h>

       Example exsprite

DESCRIPTION
       This  example demonstrates how to use datafiles,	various	sprite drawing
       routines	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  ex-
       ample  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 back-
       ground. 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
       background  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 usu-
       ally  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	paral-
       lel 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),
       allegro_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),   install_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),	   un-
       load_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+14.3.quarterly>

home | help