X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fgfxpoly%2Fxrow.h;h=ee0be13cb80bc05028f07d53c7fd4d521e9e3659;hp=e17292082644a65a31e275a687fa7e9c6f7f87a3;hb=1586c1b6a15a2c2514ef5f45133ac0369d1680b6;hpb=eac1308d474f42fb9a7f8c89b1a02ff63c7c60e2 diff --git a/lib/gfxpoly/xrow.h b/lib/gfxpoly/xrow.h index e172920..ee0be13 100644 --- a/lib/gfxpoly/xrow.h +++ b/lib/gfxpoly/xrow.h @@ -33,6 +33,17 @@ xrow_t* xrow_new(); line (from right to left, using the below fillstyle). */ +/* Another approach: since we really only need to know the below *or* above fillstyles in order to + determine whether a horizontal line is still needed (if its edgestyle doesn't change the windstate, + it's not needed), we can also process horizontal lines after the start events: walk the temporary + end segment list and the active list interleaved for each horizontal line, insert horizontal fragments + whenever they seem to modify the fillstyle (e.g. apply them with dir=UP). + This means that "very horizontal" segments ending in a scanline that encounter hot pixels + on their way (and thus don't receive "their" endpoint) need to store a horizontal event. Same for + general segments that pass/intersect multiple hotpixels in a scanline. +*/ + + void xrow_add(xrow_t*xrow, int32_t x); void xrow_sort(xrow_t*xrow);