i have tried a simpler version. i got flat shading and gouraud working. i tried every raster method, but it really doesnt matter, coz if texture doesnt work with one of the rasters, it wont work with any other. i ran into these problems just with texturemapping, nothing else.
as for a test heres what i did.. i just draw one big background image with a simple blit function, and then i try to render that same image using IGPP, scanline by scanline (using a timer)
about the clipping.. i just feed my start/end scanline points with the screen borders.. should be enough.
scanline1 sx=0, ex=239;
scanline2 sx=240, ex=479;
scanline2 sx=480, ex=719;
etc
the formula is as follows:
(sets start x point to first pixel of each screen scanline and end x point to the startpoint+(width-1)
for j=0; j<height; j++
{
int startX = j*width;
int endX = startX+(width-1);
startpoint[j].x = gppInt_To_Fixed_16( startX );
endpoint[j].x = gppInt_To_Fixed_16( endX );
}
then just go thru the scanlines array and render them all.
if you want to give it a try, i assembled a simple example (with source code and binaries). you can download it and also see some shots at:
www.pixelnerve.com/gpp
(original.jpg is the original image blitted to the screen. gpp_render.jpg is how it looks when rendered by my function using the intel GPP.
notice i just render half the screen height. theres a line to seperate it.. the top half is rendered by GPP. it screwed up the image as you can see)
hope to hear from you soon!
peace !
vic.