Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
al_draw_soft_triangle(3)    Library Functions Manual	al_draw_soft_triangle(3)

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 understanding what these functions do, see the  im-
     plementation   of	 the   various	 shading   routines   in   addons/primi-
     tives/tri_soft.c.	The triangle is drawn in two segments, from top to  bot-
     tom.   The  segments  are deliniated by the vertically middle vertex of the
     triangle.	One of the two segments may be absent if two vertices are  hori-
     zontally 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,  corre-
       sponding 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 coordi-
       nates are inclusive.

SEE ALSO
     al_draw_triangle(3)

Allegro reference manual				al_draw_soft_triangle(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=al_draw_soft_triangle&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help