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


       al_draw_soft_line - Allegro 5 API


              #include <allegro5/allegro_primitives.h>

              void al_draw_soft_line(ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, uintptr_t state,
                 void (*first)(uintptr_t, int, int, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),
                 void (*step)(uintptr_t, int),
                 void (*draw)(uintptr_t, int, int))


       Draws a line using the software rasterizer and user supplied pixel functions.  For help in
       understanding what these functions do, see  the  implementation  of  the  various  shading
       routines in addons/primitives/line_soft.c.  The line is drawn top to bottom.


       · v1, v2 - The two vertices of the line

       · state - A pointer to a user supplied struct, this struct will be passed to all the pixel

       · first - Called before drawing the first pixel of the line.  It is passed the coordinates
         of  this  pixel,  as  well as the two vertices above.  The passed vertices may have been
         altered by clipping.

       · step - Called once per pixel.  The second parameter is set to 1 if the step is  a  minor
         step,  and  0 if this step is a major step.  Minor steps are taken only either in x or y
         directions.  Major steps are taken in both directions diagonally.   In  all  cases,  the
         absolute value of the change in coordinate is at most 1 in either direction.

       · draw  -  Called  once  per  pixel.   The  function  is expected to draw the pixel at the
         coordinates passed to it.