#include "scanconvert.h"

void render_scanline(Edge    *edge_list,
                     int xres,
                     int y
                     );

/*
 * Read edge pairs from the edge list EDGE_LIST. Walk along the scanline
 * and interpolate z value, world coordinates, texture coordinates and 
 * normal vector as we go. Store info about each pixel in the pixel buffer.
 */
void
render_scanline(edge_list, xres, y)
     Edge    *edge_list;
     int xres;
     int y;
{
}


void render_scanlines(xres, yres) 
     int xres;
     int yres;
{

  /* Steps:
     0) Initialize AEL to NULL;
     1) Run through all the y_buckets[] (0...height-1).
     2) Maintain the Active Edge List by calling merge_edge_lists (provided)
        with the current bucket.
     3) Take a pair of edges off the AEL.
     4) Walk across this segment of the scanline and fill in the pixels.
     5) Update the AEL by calling updateAEL (required).
     */
}


  /* UpdateAEL is passed the *address* of the Active Edge List variable
     in case this routine needs to midfy the start of the list, which
     requires modifying the variable, and the y value that was just
     rendered (y is in screen coords, from 0...height-1).  
   */

void updateAEL(pAEL, y) 
     int y;
     Edge **pAEL;
{
    /*
     Steps:
     1) Clean up the edge list by walking the list and removing all
        edges which have just reached yMax.
     2) Incrementally update all the accumulative fields in all active
        edges.
    */
}
