This is an interesting advance from a few years back in 2D line drawing routines. With 3D being all the rage, we sometimes forget that some environments still need fast 2D code that even works on old 8-bit CPUs.
The classic routine was by Bresenham. The previously fastest routine was by Wu, but his approach is complex. Compare them and see why:
By comparison, EFLA just uses a pair of increment values in its main loop and no branching. I don't want to spoil how it works, but the key is in how the x and y increment values are chosen and why one of them is taken from the upper 16 bits.
1 comment
[ 1.7 ms ] story [ 10.6 ms ] threadThe classic routine was by Bresenham. The previously fastest routine was by Wu, but his approach is complex. Compare them and see why:
http://www.edepot.com/linebresenham.html http://www.edepot.com/linewu.html
By comparison, EFLA just uses a pair of increment values in its main loop and no branching. I don't want to spoil how it works, but the key is in how the x and y increment values are chosen and why one of them is taken from the upper 16 bits.