[Concept,07/22] video: Check drawing the mouse pointer

Message ID 20251003165525.440173-8-sjg@u-boot.org
State New
Headers
Series video: Enhancements to support a pointer |

Commit Message

Simon Glass Oct. 3, 2025, 4:55 p.m. UTC
  From: Simon Glass <sjg@chromium.org>

Add some simple tests for drawing the mouse pointer on a white and black
background.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 test/dm/video.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
  

Patch

diff --git a/test/dm/video.c b/test/dm/video.c
index 6c96eee1b8b..a802228b790 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
@@ -667,6 +667,35 @@  static int dm_test_video_comp_bmp8(struct unit_test_state *uts)
 }
 DM_TEST(dm_test_video_comp_bmp8, UTF_SCAN_PDATA | UTF_SCAN_FDT);
 
+/* Test drawing the riscos pointer */
+static int dm_test_video_bmp_alpha(struct unit_test_state *uts)
+{
+	struct video_priv *priv;
+	struct udevice *dev;
+	ulong addr;
+
+	ut_assertok(video_get_nologo(uts, &dev));
+	priv = dev_get_uclass_priv(dev);
+	addr = map_to_sysmem(video_image_getptr(riscos_arrow));
+
+	/* Draw a black rectangle first */
+	video_draw_box(dev, 100, 100, 200, 200, 0,
+		       video_index_to_colour(priv, VID_BLACK), true);
+
+	/* Draw the pointer on top of the black rectangle */
+	ut_assertok(video_bmp_display(dev, addr, 110, 110, false));
+	ut_asserteq(174, video_compress_fb(uts, dev, false));
+	ut_assertok(video_check_copy_fb(uts, dev));
+
+	/* Draw the pointer on top of the black rectangle */
+	ut_assertok(video_bmp_display(dev, addr, 350, 110, false));
+	ut_asserteq(249, video_compress_fb(uts, dev, false));
+	ut_assertok(video_check_copy_fb(uts, dev));
+
+	return 0;
+}
+DM_TEST(dm_test_video_bmp_alpha, UTF_SCAN_PDATA | UTF_SCAN_FDT);
+
 /* Test TrueType console */
 static int dm_test_video_truetype(struct unit_test_state *uts)
 {