Provided by: allegro5-doc_5.2.3.0-1_all bug


       al_lock_bitmap - Allegro 5 API


              #include <allegro5/allegro.h>

              ALLEGRO_LOCKED_REGION *al_lock_bitmap(ALLEGRO_BITMAP *bitmap,
                 int format, int flags)


       Lock  an  entire bitmap for reading or writing.  If the bitmap is a display bitmap it will
       be updated from system memory after the bitmap is  unlocked  (unless  locked  read  only).
       Returns  NULL  if  the bitmap cannot be locked, e.g.  the bitmap was locked previously and
       not unlocked.  This function also returns NULL if the format is a compressed format.

       Flags are:

       · ALLEGRO_LOCK_READONLY - The locked region will not be written to.  This can be faster if
         the bitmap is a video texture, as it can be discarded after the lock instead of uploaded
         back to the card.

       · ALLEGRO_LOCK_WRITEONLY - The locked region will not be read from.  This can be faster if
         the  bitmap is a video texture, as no data need to be read from the video card.  You are
         required to fill in all pixels before unlocking the bitmap again,  so  be  careful  when
         using this flag.

       · ALLEGRO_LOCK_READWRITE  -  The  locked region can be written to and read from.  Use this
         flag if a partial number of pixels need to be written to, even if reading is not needed.

       format indicates the pixel format that the returned buffer will be in.   To  lock  in  the
       same    format    as    the    bitmap    stores    its    data   internally,   call   with
       al_get_bitmap_format(bitmap) as the format or use  ALLEGRO_PIXEL_FORMAT_ANY.   Locking  in
       the  native  format  will  usually  be  faster.  If the bitmap format is compressed, using
       ALLEGRO_PIXEL_FORMAT_ANY will choose an implementation defined non-compressed format.

       On some platforms, Allegro automatically backs up the contents of  video  bitmaps  because
       they   may   be   occasionally   lost   (see   discussion  in  al_create_bitmap(3alleg5)'s
       documentation).  If you're completely recreating the bitmap contents  often  (e.g.   every
       frame)  then  you  will  get  much  better  performance by creating the target bitmap with

              Note: While a bitmap is locked, you can not use any drawing operations on it  (with
              the sole exception of al_put_pixel(3alleg5) and al_put_blended_pixel(3alleg5)).


       ALLEGRO_LOCKED_REGION(3alleg5),  ALLEGRO_PIXEL_FORMAT(3alleg5), al_unlock_bitmap(3alleg5),
       al_lock_bitmap_region(3alleg5),                           al_lock_bitmap_blocked(3alleg5),