Code: Select all
void D3DGraphics::Drawline(int xStart, int yStart, int xEnd, int yEnd, int r, int g, int b)
{
int dx, dy, inx, iny, e;
dx = xEnd - xStart;
dy = yEnd - yStart;
inx = dx > 0 ? 1 : -1;
iny = dy > 0 ? 1 : -1;
dx = abs(dx);
dy = abs(dy);
if(dx >= dy) {
dy <<= 1;
e = dy - dx;
dx <<= 1;
while (xStart != xEnd) {
PutPixel(xStart, yStart, r,g,b);
if(e >= 0) {
yStart += iny;
e-= dx;
}
e += dy; xStart += inx;
}
} else {
dx <<= 1;
e = dx - dy;
dy <<= 1;
while (yStart != yEnd) {
PutPixel(xStart, yStart, r,g,b);
if(e >= 0) {
xStart += inx;
e -= dy;
}
e += dx; yStart += iny;
}
}
PutPixel(xStart, yStart, r,g,b);
}