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

FreeBSD Manual Pages


home | help
al_draw_soft_triangle(3)			      al_draw_soft_triangle(3)

       al_draw_soft_triangle - Allegro 5 API

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

       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/primi-
       tives/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 each segment may be absent	if  two	 vertices  are
       horizontally collinear.


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

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

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

       o 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, the each step	will either be classified as a
	 minor or a major step,	corresponding to the above values.

       o 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.

       o draw -	Called once per	scanline.  The function	is  expected  to  draw
	 the scanline starting with a point specified by the first two parame-
	 ters (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.


Allegro	reference manual			      al_draw_soft_triangle(3)


Want to link to this manual page? Use this URL:

home | help