Provided by: allegro5-doc_5.2.9.1+dfsg-1.1build4_all bug

NAME

       al_draw_soft_triangle - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro_primitives.h>

              void al_draw_soft_triangle(
                 ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,
                 void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),
                 void (*first)(uintptr_t, int, int, int, int),
                 void (*step)(uintptr_t, int),
                 void (*draw)(uintptr_t, int, int, int))

DESCRIPTION

       Draws  a  triangle  using  the software rasterizer and user supplied pixel functions.  For help in under‐
       standing what these functions do, see the implementation of the various shading routines in addons/primi‐
       tives/tri_soft.c.  The triangle is drawn in two segments, from top to bottom.  The segments are deliniat‐
       ed by the vertically middle vertex of the triangle.  One of the two segments may be absent  if  two  ver‐
       tices are horizontally collinear.

       Parameters:

       • v1, v2, v3 - The three vertices of the triangle

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

       • init  -  Called once per call before any drawing is done.  The three points passed to it may be altered
         by clipping.

       • first - Called twice per call, once per triangle segment.  It is passed 4 parameters, the first two are
         the coordinates of the initial pixel drawn in the segment.  The second two are the left minor  and  the
         left  major  steps,  respectively.  They represent the sizes of two steps taken by the rasterizer as it
         walks on the left side of the triangle.  From then on, each step will either be classified as  a  minor
         or a major step, corresponding to the above values.

       • step  - Called once per scanline.  The last parameter is set to 1 if the step is a minor step, and 0 if
         it is a major step.

       • draw - Called once per scanline.  The function is expected to draw the scanline starting with  a  point
         specified  by  the  first  two parameters (corresponding to x and y values) going to the right until it
         reaches the value of the third parameter (the x value of the end point).  All  coordinates  are  inclu‐
         sive.

SEE ALSO

       al_draw_triangle(3alleg5)

Allegro reference manual                                                          al_draw_soft_triangle(3alleg5)