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


       al_use_projection_transform - Allegro 5 API


              #include <allegro5/allegro.h>

              void al_use_projection_transform(const ALLEGRO_TRANSFORM *trans)


       Sets the projection transformation to be used for the the drawing operations on the target
       bitmap (each bitmap maintains its own projection transformation).  Every drawing operation
       after  this  call  will  be  transformed  using  this  transformation.   To return default
       behavior, call this function with an orthographic transform like so:

              ALLEGRO_TRANSFORM trans;
              al_orthographic_transform(&trans, 0, 0, -1.0, al_get_bitmap_width(bitmap),
                                        al_get_bitmap_height(bitmap), 1.0);


       The orthographic transformation above is the default projection transform.

       This function does nothing if there is no target bitmap.  This function also does  nothing
       if  the  bitmap  is  a  memory  bitmap  (i.e.   memory  bitmaps always use an orthographic
       transform like the snippet above).  Note that the projection transform will  be  reset  to
       default if a video bitmap is converted to a memory bitmap.  Additionally, if the bitmap in
       question is the backbuffer, it's projection transformation will be reset to default if  it
       is  resized.   Lastly,  when  you  draw  a  memory  bitmap to a video bitmap with a custom
       projection transform, this transformation will be  ignored  (i.e.   it'll  be  as  if  the
       projection transform of the target bitmap was temporarily reset to default).

       The  parameter  is  passed  by reference as an optimization to avoid the overhead of stack
       copying.  The reference will not be stored in the Allegro library so it is  safe  to  pass
       references to local variables.