video: Support drawing filled boxes

At present only an outline boxes is supported, albeit with a thickness
parameter. Provide a way to draw a filled rectangle.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2025-09-14 16:16:21 -06:00
parent 7a80370d3a
commit 9fa8a01d50
4 changed files with 33 additions and 16 deletions

View File

@@ -911,14 +911,23 @@ static int dm_test_video_box(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
priv = dev_get_uclass_priv(dev);
/* test outline boxes */
video_draw_box(dev, 100, 100, 200, 200, 3,
video_index_to_colour(priv, VID_LIGHT_BLUE));
video_index_to_colour(priv, VID_LIGHT_BLUE), false);
video_draw_box(dev, 300, 100, 400, 200, 1,
video_index_to_colour(priv, VID_MAGENTA));
video_index_to_colour(priv, VID_MAGENTA), false);
video_draw_box(dev, 500, 100, 600, 200, 20,
video_index_to_colour(priv, VID_LIGHT_RED));
video_index_to_colour(priv, VID_LIGHT_RED), false);
ut_asserteq(133, video_compress_fb(uts, dev, false));
ut_assertok(video_check_copy_fb(uts, dev));
/* test filled boxes */
video_draw_box(dev, 150, 250, 200, 300, 0,
video_index_to_colour(priv, VID_GREEN), true);
video_draw_box(dev, 350, 250, 400, 300, 0,
video_index_to_colour(priv, VID_YELLOW), true);
ut_asserteq(175, video_compress_fb(uts, dev, false));
return 0;
}