mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-26 15:28:50 +00:00
console: Correct truetype spacing error
The putc_xy() method is supposed to return the amount of space used. The
existing implementation erroneously adds the previous sub-pixel position
to the returned value. This spaces out the characters very slightly more
than it should. It is seldom noticeable but it does make accurate
measurement of the text impossible.
Fix this minor but long-standing bug.
Fixes: a29b012037
("video: Add a console driver that uses TrueType fonts")
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
14a86a5107
commit
a8f80409b0
2 changed files with 4 additions and 4 deletions
|
@ -256,7 +256,7 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
|
|||
*/
|
||||
x_shift = xpos - (double)tt_floor(xpos);
|
||||
xpos += advance * met->scale;
|
||||
width_frac = (int)VID_TO_POS(xpos);
|
||||
width_frac = (int)VID_TO_POS(advance * met->scale);
|
||||
if (x + width_frac >= vc_priv->xsize_frac)
|
||||
return -EAGAIN;
|
||||
|
||||
|
|
|
@ -556,7 +556,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
|
|||
ut_assertok(video_get_nologo(uts, &dev));
|
||||
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
|
||||
vidconsole_put_string(con, test_string);
|
||||
ut_asserteq(12237, compress_frame_buffer(uts, dev));
|
||||
ut_asserteq(12187, compress_frame_buffer(uts, dev));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -577,7 +577,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
|
|||
ut_assertok(video_get_nologo(uts, &dev));
|
||||
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
|
||||
vidconsole_put_string(con, test_string);
|
||||
ut_asserteq(35030, compress_frame_buffer(uts, dev));
|
||||
ut_asserteq(34481, compress_frame_buffer(uts, dev));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -598,7 +598,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
|
|||
ut_assertok(video_get_nologo(uts, &dev));
|
||||
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
|
||||
vidconsole_put_string(con, test_string);
|
||||
ut_asserteq(29018, compress_frame_buffer(uts, dev));
|
||||
ut_asserteq(29579, compress_frame_buffer(uts, dev));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue