diff options
Diffstat (limited to 'firmware/drivers/lcd-2bit-vi.c')
-rw-r--r-- | firmware/drivers/lcd-2bit-vi.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/firmware/drivers/lcd-2bit-vi.c b/firmware/drivers/lcd-2bit-vi.c index 0878258e84..7d97f19174 100644 --- a/firmware/drivers/lcd-2bit-vi.c +++ b/firmware/drivers/lcd-2bit-vi.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #define LCDFN(fn) lcd_ ## fn | 39 | #define LCDFN(fn) lcd_ ## fn |
40 | #define FBFN(fn) fb_ ## fn | 40 | #define FBFN(fn) fb_ ## fn |
41 | #define LCDM(ma) LCD_ ## ma | 41 | #define LCDM(ma) LCD_ ## ma |
42 | #define LCDNAME "lcd_" | ||
42 | #define MAIN_LCD | 43 | #define MAIN_LCD |
43 | #endif | 44 | #endif |
44 | 45 | ||
@@ -476,7 +477,19 @@ void LCDFN(drawline)(int x1, int y1, int x2, int y2) | |||
476 | LCDFN(pixelfunc_type) *pfunc = LCDFN(pixelfuncs)[current_vp->drawmode]; | 477 | LCDFN(pixelfunc_type) *pfunc = LCDFN(pixelfuncs)[current_vp->drawmode]; |
477 | 478 | ||
478 | deltax = abs(x2 - x1); | 479 | deltax = abs(x2 - x1); |
480 | if (deltax == 0) | ||
481 | { | ||
482 | DEBUGF(LCDNAME "drawline() called for vertical line - optimisation.\n"); | ||
483 | LCDFN(vline)(x1, y1, y2); | ||
484 | return; | ||
485 | } | ||
479 | deltay = abs(y2 - y1); | 486 | deltay = abs(y2 - y1); |
487 | if (deltay == 0) | ||
488 | { | ||
489 | DEBUGF(LCDNAME "drawline() called for horizontal line - optimisation.\n"); | ||
490 | LCDFN(hline)(x1, x2, y1); | ||
491 | return; | ||
492 | } | ||
480 | xinc2 = 1; | 493 | xinc2 = 1; |
481 | yinc2 = 1; | 494 | yinc2 = 1; |
482 | 495 | ||