[igt-dev] [PATCH i-g-t 1/2] lib/igt_fb: Add support for drawing rectangles with random colors

Hung, Alex Alex.Hung at amd.com
Tue May 17 20:27:21 UTC 2022


[AMD Official Use Only - General]

Reviewed-by: Alex Hung <alex.hung at amd.com>


From: igt-dev <igt-dev-bounces at lists.freedesktop.org> on behalf of André Almeida <andrealmeid at igalia.com>
Sent: 16 May 2022 11:59
To: igt-dev at lists.freedesktop.org <igt-dev at lists.freedesktop.org>
Cc: petri.latvala at intel.com <petri.latvala at intel.com>; kernel-dev at igalia.com <kernel-dev at igalia.com>; markyacoub at google.com <markyacoub at google.com>
Subject: [igt-dev] [PATCH i-g-t 1/2] lib/igt_fb: Add support for drawing rectangles with random colors

Add support for drawing rectangles with random colors, useful for tests
that you don't mind which color will be used.

Signed-off-by: André Almeida <andrealmeid at igalia.com>
---
 lib/igt_fb.c | 20 ++++++++++++++++++++
 lib/igt_fb.h |  1 +
 2 files changed, 21 insertions(+)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index eafbe7fd..5ace94cc 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -1465,6 +1465,26 @@ void igt_paint_color(cairo_t *cr, int x, int y, int w, int h,
         cairo_fill(cr);
 }

+/**
+ * igt_paint_color:
+ * @cr: cairo drawing context
+ * @x: pixel x-coordination of the fill rectangle
+ * @y: pixel y-coordination of the fill rectangle
+ * @w: width of the fill rectangle
+ * @h: height of the fill rectangle
+ *
+ * This functions draws a solid rectangle with random colors using the drawing
+ * context @cr.
+ */
+void igt_paint_color_rand(cairo_t *cr, int x, int y, int w, int h)
+{
+       double r = rand() / (double)RAND_MAX;
+       double g = rand() / (double)RAND_MAX;
+       double b = rand() / (double)RAND_MAX;
+
+       igt_paint_color(cr, x, y, w, h, r, g, b);
+}
+
 /**
  *
  * igt_fill_cts_color_square_framebuffer:
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 623a8caa..b3f096fe 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -191,6 +191,7 @@ cairo_t *igt_get_cairo_ctx(int fd, struct igt_fb *fb);
 void igt_put_cairo_ctx(cairo_t *cr);
 void igt_paint_color(cairo_t *cr, int x, int y, int w, int h,
                          double r, double g, double b);
+void igt_paint_color_rand(cairo_t *cr, int x, int y, int w, int h);
 void igt_paint_color_alpha(cairo_t *cr, int x, int y, int w, int h,
                                double r, double g, double b, double a);
 void igt_paint_color_gradient(cairo_t *cr, int x, int y, int w, int h,
--
2.36.0


More information about the igt-dev mailing list