Jim, I advocate I simply made a port of your FP approach in ShapeSpanIterator.c without really understanding well the equations to adjust the edge to pixel centers. If there is a precision issue, it is also impacting the ShapeSpanIterator.c !
Your recent proposal is very interesting (32.32 FP) as it could be generalized to lineTo / curveTo in order to make all curve breaking computations in 32.32 (long) maths ? When I compared marlin vs ductus quality, small difference remain on lines and I suspect it is related to the pen fitting. Do you know how to apply the polygonal pen approach ( mentioned in graphics gem I ) ? It seems a good method to ensure consistent line width based on adjusting coordinates on the raster grid (24.8 FP). I will make corrections soon and try your new approach asap (double + 32.32) Moreover, could you explain me the dec/inc algo for quad/cubic curves ? I found error= | dd (x,y) | / 8. However the norm is not equal to max [ abs (ddx), abs (ddy) ]... I now use squared norm check = ddx * ddx + ddy * ddy. Thanks for all your advices, Laurent