#include "line.h"

void DrawLine(Point *a, Point *b, int colour)
{
  register int  dx, dy, k1, k2, d, x, y, x1;

  dx = b->x - a->x;
  dy = b->y - a->y;
  d  = (dy << 1) - dx;
  k1 = dy << 1;
  k2 = (dy - dx) << 1;
  x  = a->x;
  y  = a->y;
  x1 = b->x;

  PutPixel(x, y, colour);
  while (x < x1) {
    if (d <= 0) {
      d += k1;
      x++;
    } else {
      d += k2;
      x++;
      y++;
    }
    PutPixel(x, y, colour);
  }
}