Bresenham Algorithm
It requires floating-point operations.
These operations are expensive to implement in hardware.
They are not really necessary if the endpoints are integers.
Idea: instead of incrementing y and rounding it at each step, decide if we just go to the right, or to the right and up using only integer quantities.