lib: Introduce a new helper kmstest_create_color_fb()
authorDamien Lespiau <damien.lespiau@intel.com>
Thu, 6 Feb 2014 19:04:12 +0000 (19:04 +0000)
committerDamien Lespiau <damien.lespiau@intel.com>
Tue, 11 Feb 2014 13:50:16 +0000 (13:50 +0000)
We need to create fbs of a single color in a few places. Time to
abstract that out to a helper function.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
lib/igt_kms.c
lib/igt_kms.h

index 6416a28..1143d9e 100644 (file)
@@ -358,6 +358,25 @@ unsigned int kmstest_create_fb2(int fd, int width, int height, uint32_t format,
        return fb_id;
 }
 
+unsigned int kmstest_create_color_fb(int fd, int width, int height,
+                                    uint32_t format, bool tiled,
+                                    double r, double g, double b,
+                                    struct kmstest_fb *fb /* out */)
+{
+       unsigned int fb_id;
+       cairo_t *cr;
+
+       fb_id = kmstest_create_fb2(fd, width, height, format, tiled, fb);
+       igt_assert(fb_id);
+
+       cr = kmstest_get_cairo_ctx(fd, fb);
+       kmstest_paint_color(cr, 0, 0, width, height, r, g, b);
+       igt_assert(cairo_status(cr) == 0);
+       cairo_destroy(cr);
+
+       return fb_id;
+}
+
 static cairo_format_t drm_format_to_cairo(uint32_t drm_format)
 {
        struct format_desc_struct *f;
index a37f6b9..8110dad 100644 (file)
@@ -79,6 +79,10 @@ unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
                               struct kmstest_fb *fb_info);
 unsigned int kmstest_create_fb2(int fd, int width, int height, uint32_t format,
                                bool tiled, struct kmstest_fb *fb);
+unsigned int kmstest_create_color_fb(int fd, int width, int height,
+                                    uint32_t format, bool tiled,
+                                    double r, double g, double b,
+                                    struct kmstest_fb *fb /* out */);
 void kmstest_remove_fb(int fd, struct kmstest_fb *fb_info);
 cairo_t *kmstest_get_cairo_ctx(int fd, struct kmstest_fb *fb);
 cairo_surface_t *kmstest_get_cairo_surface(int fd, struct kmstest_fb *fb);