X-Git-Url: https://git.karo-electronics.de/?p=metawatch.git;a=blobdiff_plain;f=mw_utility.c;fp=mw_utility.c;h=6d7ab8aac41ffde2eebd25e8310dec0136510654;hp=53c5f7ab3000e401e5d4f511d25eefe6453763f4;hb=9e2a8698714da2920e81942eb52c8040fbf73bef;hpb=5668a2fcb129077040e1856c5a3d1595c7ef06e7 diff --git a/mw_utility.c b/mw_utility.c index 53c5f7a..6d7ab8a 100644 --- a/mw_utility.c +++ b/mw_utility.c @@ -256,6 +256,61 @@ void mw_buf_draw_line_bresenham(mw_buffer *mwbuf, unsigned int xstart, unsigned } } +void mw_buf_draw_line_bresenham_w(mw_buffer *mwbuf, unsigned int xstart, unsigned int ystart, unsigned int xend, unsigned int yend, unsigned char thickness, mw_color clr) +{ + int i, x, y, t, dx, dy, incx, incy, pdx, pdy, ddx, ddy, es, el, err; + + dx = xend - xstart; + dy = yend - ystart; + + incx = (dx >= 0) ? 1 : -1; + incy = (dy >= 0) ? 1 : -1; + + if (dx<0) + dx = -dx; + if (dy<0) + dy = -dy; + + if (dx>dy) { + pdx = incx; pdy = 0; + ddx=incx; ddy=incy; + es =dy; el =dx; + } else { + pdx=0; pdy=incy; + ddx=incx; ddy=incy; + es =dx; el =dy; + } + + x = xstart; + y = ystart; + err = el/2; + mw_buf_draw_pixel(mwbuf, x, y, clr); + for (i=1; i