logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

al_draw_soft_triangle - Allegro 5 API

Description

       Draws  a  triangle  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/tri_soft.c.   The  triangle is drawn in two segments, from top to bottom.  The segments
       are deliniated by the vertically middle vertex of the triangle.  One of the two segments may be absent if
       two vertices 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
         inclusive.

Name

       al_draw_soft_triangle - Allegro 5 API

See Also

al_draw_triangle(3alleg5)

Allegro reference manual                                                          al_draw_soft_triangle(3alleg5)

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))

See Also