summaryrefslogtreecommitdiff
path: root/framebuffer
diff options
context:
space:
mode:
Diffstat (limited to 'framebuffer')
-rw-r--r--framebuffer/fb_16bpp_plotters.c3
-rw-r--r--framebuffer/fb_32bpp_plotters.c3
-rw-r--r--framebuffer/fb_plotters.c4
3 files changed, 6 insertions, 4 deletions
diff --git a/framebuffer/fb_16bpp_plotters.c b/framebuffer/fb_16bpp_plotters.c
index 1faa66e61..78d7cc2aa 100644
--- a/framebuffer/fb_16bpp_plotters.c
+++ b/framebuffer/fb_16bpp_plotters.c
@@ -66,7 +66,8 @@ static bool fb_16bpp_line(int x0, int y0, int x1, int y1, int width,
if (y0 == y1) {
/* horizontal line special cased */
- fb_plotters_clip_rect_ctx(&x0, &y0, &x1, &y1);
+ if (!fb_plotters_clip_rect_ctx(&x0, &y0, &x1, &y1))
+ return true; /* line outside clipping */
/*LOG(("horiz: %d, %d, %d, %d, %d, 0x%lx, %d, %d",
x0,y0,x1,y1,width,c,dotted,dashed));*/
diff --git a/framebuffer/fb_32bpp_plotters.c b/framebuffer/fb_32bpp_plotters.c
index 24315d13e..3805ff753 100644
--- a/framebuffer/fb_32bpp_plotters.c
+++ b/framebuffer/fb_32bpp_plotters.c
@@ -60,7 +60,8 @@ static bool fb_32bpp_line(int x0, int y0, int x1, int y1, int width,
if (y0 == y1) {
/* horizontal line special cased */
- fb_plotters_clip_rect_ctx(&x0, &y0, &x1, &y1);
+ if (!fb_plotters_clip_rect_ctx(&x0, &y0, &x1, &y1))
+ return true; /* line outside clipping */
pvideo = fb_32bpp_get_xy_loc(x0, y0);
diff --git a/framebuffer/fb_plotters.c b/framebuffer/fb_plotters.c
index 6604eaef2..87a179425 100644
--- a/framebuffer/fb_plotters.c
+++ b/framebuffer/fb_plotters.c
@@ -61,8 +61,8 @@ bool fb_plotters_clip_rect(const bbox_t *clip,
if (*y1 < *y0) SWAP(*y0, *y1);
- region1 = REGION(*x0, *y0, clip->x0, clip->x1, clip->y0, clip->y1);
- region2 = REGION(*x1, *y1, clip->x0, clip->x1, clip->y0, clip->y1);
+ region1 = REGION(*x0, *y0, clip->x0, clip->x1 - 1, clip->y0, clip->y1 - 1);
+ region2 = REGION(*x1, *y1, clip->x0, clip->x1 - 1, clip->y0, clip->y1 - 1);
/* area lies entirely outside the clipping rectangle */
if ((region1 | region2) && (region1 & region2))