fb_drv: fix clipping

Use the clipped coordinates for calculating the buffer addresses, too.

Fixes #1227.
This commit is contained in:
Christian Prochaska 2014-08-14 16:30:44 +02:00 committed by Norman Feske
parent a189135940
commit 5abca43688
2 changed files with 4 additions and 4 deletions

View File

@ -111,8 +111,8 @@ namespace Framebuffer {
if (!bypp) return;
/* copy pixels from back buffer to physical frame buffer */
char *src = (char *)_bb_addr + bypp*(_scr_width*y + x),
*dst = (char *)_fb_addr + bypp*(_scr_width*y + x);
char *src = (char *)_bb_addr + bypp*(_scr_width*y1 + x1),
*dst = (char *)_fb_addr + bypp*(_scr_width*y1 + x1);
blit(src, bypp*_scr_width, dst, bypp*_scr_width,
bypp*(x2 - x1 + 1), y2 - y1 + 1);

View File

@ -57,8 +57,8 @@ class Framebuffer::Session_component :
int bypp = _mode.bytes_per_pixel();
/* copy pixels from back buffer to physical frame buffer */
char *src = (char *)_bb_addr + bypp*(_mode.width()*y + x),
*dst = (char *)_fb_addr + bypp*(_mode.width()*y + x);
char *src = (char *)_bb_addr + bypp*(_mode.width()*y1 + x1),
*dst = (char *)_fb_addr + bypp*(_mode.width()*y1 + x1);
blit(src, bypp*_mode.width(), dst, bypp*_mode.width(),
bypp*(x2 - x1 + 1), y2 - y1 + 1);