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

FreeBSD Manual Pages

  
 
  

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

NAME
     blit  -  Copies a rectangular area from one bitmap to another. Allegro game
     programming library.

SYNOPSIS
     #include <allegro.h>

     void blit(BITMAP *source, BITMAP *dest, int  source_x,  int  source_y,  int
     dest_x, int dest_y, int width, int height);

DESCRIPTION
     Copies  a	rectangular area of the source bitmap to the destination bitmap.
     The source_x and source_y parameters are the top left corner of the area to
     copy from the source bitmap, and dest_x and dest_y  are  the  corresponding
     position  in  the destination bitmap. This routine respects the destination
     clipping rectangle, and it will also clip if you try  to  blit  from  areas
     outside the source bitmap. Example:

	BITMAP *bmp;
	...
	/* Blit src on the screen. */
	blit(bmp, screen, 0, 0, 0, 0, bmp->w, bmp->h);

	/* Now copy a chunk to a corner, slightly outside. /*
	blit(screen, screen, 100, 100, -10, -10, 25, 30);

     You  can  blit between any parts of any two bitmaps, even if the two memory
     areas overlap (ie. source and dest are the same, or one  is  sub-bitmap  of
     the  other).  You	should be aware, however, that a lot of SVGA cards don't
     provide separate read and write banks, which means that blitting  from  one
     part  of  the  screen  to another requires the use of a temporary bitmap in
     memory, and is therefore extremely slow. As a general rule you should avoid
     blitting from the screen onto itself in SVGA modes.

     In mode-X, on the other hand, blitting from one part of the screen  to  an-
     other  can  be  significantly  faster  than  blitting  from memory onto the
     screen, as long as the source and destination are	correctly  aligned  with
     each  other.  Copying between overlapping screen rectangles is slow, but if
     the areas don't overlap, and if they have the  same  plane  alignment  (ie.
     (source_x%4) == (dest_x%4)), the VGA latch registers can be used for a very
     fast  data transfer. To take advantage of this, in mode-X it is often worth
     storing tile graphics in a hidden area of video memory (using a large  vir-
     tual  screen),  and  blitting  them from there onto the visible part of the
     screen.

     If the GFX_HW_VRAM_BLIT bit in the gfx_capabilities flag is set,  the  cur-
     rent driver supports hardware accelerated blits from one part of the screen
     onto  another.  This  is extremely fast, so when this flag is set it may be
     worth storing some of your more frequently used graphics  in  an  offscreen
     portion of the video memory.

     Unlike most of the graphics routines, blit() allows the source and destina-
     tion  bitmaps to be of different color depths, so it can be used to convert
     images from one pixel format to another. In this case, the behavior is  af-
     fected  by the COLORCONV_KEEP_TRANS and COLORCONV_DITHER* flags of the cur-
     rent color conversion mode: see set_color_conversion()  for  more	informa-
     tion.

SEE ALSO
     masked_blit(3),   stretch_blit(3),   draw_sprite(3),   gfx_capabilities(3),
     set_color_conversion(3)

Allegro 			  version 4.4.3 			 blit(3)

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

home | help