mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-27 06:04:40 +08:00
video: Skip bitmaps which do not fit into the screen in cfb_console
The cfb console driver is trying to prevent bitmaps to spill over the screen, but the calculations assume that at least part of the bitmap fits into the screen area. In reality there could be bitmap elements which are completely out of the screen area, they just need to be discarded. Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
45d7f52511
commit
d484b52e6f
@ -1515,6 +1515,13 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
|
|||||||
|
|
||||||
padded_line = (((width * bpp + 7) / 8) + 3) & ~0x3;
|
padded_line = (((width * bpp + 7) / 8) + 3) & ~0x3;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just ignore elements which are completely beyond screen
|
||||||
|
* dimensions.
|
||||||
|
*/
|
||||||
|
if ((x >= VIDEO_VISIBLE_COLS) || (y >= VIDEO_VISIBLE_ROWS))
|
||||||
|
return 0;
|
||||||
|
|
||||||
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
#ifdef CONFIG_SPLASH_SCREEN_ALIGN
|
||||||
if (x == BMP_ALIGN_CENTER)
|
if (x == BMP_ALIGN_CENTER)
|
||||||
x = max(0, (VIDEO_VISIBLE_COLS - width) / 2);
|
x = max(0, (VIDEO_VISIBLE_COLS - width) / 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user