mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
lcd: Fix BMP decode bug that skips the wrong padded row
This change fixed 2 things: - Rename padded_line to padded_width since it is (width + padded_row) not line. - When finished a line, should skip the padded_row that is (padded_width - width) instead of (width - padded_width). Reference: http://en.wikipedia.org/wiki/BMP_file_format Signed-off-by: Tom Wai-Hong Tam <waihong@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
395166cffb
commit
fecac46cf8
@ -675,7 +675,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
|||||||
uchar *fb;
|
uchar *fb;
|
||||||
bmp_image_t *bmp=(bmp_image_t *)bmp_image;
|
bmp_image_t *bmp=(bmp_image_t *)bmp_image;
|
||||||
uchar *bmap;
|
uchar *bmap;
|
||||||
ushort padded_line;
|
ushort padded_width;
|
||||||
unsigned long width, height, byte_width;
|
unsigned long width, height, byte_width;
|
||||||
unsigned long pwidth = panel_info.vl_col;
|
unsigned long pwidth = panel_info.vl_col;
|
||||||
unsigned colors, bpix, bmp_bpix;
|
unsigned colors, bpix, bmp_bpix;
|
||||||
@ -762,7 +762,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
padded_line = (width&0x3) ? ((width&~0x3)+4) : (width);
|
padded_width = (width&0x3) ? ((width&~0x3)+4) : (width);
|
||||||
|
|
||||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||||
splash_align_axis(&x, pwidth, width);
|
splash_align_axis(&x, pwidth, width);
|
||||||
@ -796,7 +796,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
|||||||
fb += sizeof(uint16_t) / sizeof(*fb);
|
fb += sizeof(uint16_t) / sizeof(*fb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bmap += (width - padded_line);
|
bmap += (padded_width - width);
|
||||||
fb -= (byte_width + lcd_line_length);
|
fb -= (byte_width + lcd_line_length);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -808,7 +808,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
|
|||||||
for (j = 0; j < width; j++)
|
for (j = 0; j < width; j++)
|
||||||
fb_put_word(&fb, &bmap);
|
fb_put_word(&fb, &bmap);
|
||||||
|
|
||||||
bmap += (padded_line - width) * 2;
|
bmap += (padded_width - width) * 2;
|
||||||
fb -= (width * 2 + lcd_line_length);
|
fb -= (width * 2 + lcd_line_length);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user