提交 f9d891f0 编写于 作者: P Peng Fan 提交者: Anatolij Gustschin

video: Support multiple lines version string display

The calculation of left space for version string is not correct, should
use VIDEO_COLS not VIDEO_LINE_LEN / 2, otherwise we will get larger space
than actual have and cause string to overlay logo picture.

Also current version string display only supports two lines words at max.
This also causes overlay when the LCD pixel column size is not enough.
Signed-off-by: NPeng Fan <peng.fan@nxp.com>
Tested-by: NAnatolij Gustschin <agust@denx.de>
上级 cca3ff05
......@@ -1900,16 +1900,32 @@ static void *video_logo(void)
sprintf(info, " %s", version_string);
#ifndef CONFIG_HIDE_LOGO_VERSION
space = (VIDEO_LINE_LEN / 2 - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;
space = (VIDEO_COLS - VIDEO_INFO_X) / VIDEO_FONT_WIDTH;
len = strlen(info);
if (len > space) {
video_drawchars(VIDEO_INFO_X, VIDEO_INFO_Y,
(uchar *) info, space);
video_drawchars(VIDEO_INFO_X + VIDEO_FONT_WIDTH,
VIDEO_INFO_Y + VIDEO_FONT_HEIGHT,
(uchar *) info + space, len - space);
y_off = 1;
int xx = VIDEO_INFO_X, yy = VIDEO_INFO_Y;
uchar *p = (uchar *) info;
while (len) {
if (len > space) {
video_drawchars(xx, yy, p, space);
len -= space;
p = (uchar *)p + space;
if (!y_off) {
xx += VIDEO_FONT_WIDTH;
space--;
}
yy += VIDEO_FONT_HEIGHT;
y_off++;
} else {
video_drawchars(xx, yy, p, len);
len = 0;
}
}
} else
video_drawstring(VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *) info);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册