summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2014-02-06 19:04:12 +0000
committerDamien Lespiau <damien.lespiau@intel.com>2014-02-11 13:50:16 +0000
commita1df2f4363d1ed770db36fb8aba14e65087f11c3 (patch)
treed83801615a93f83395c0b1565d1bf9b1104e09ed /lib
parentf0e0b2ae658c44461d00adddea6cc5bba711966d (diff)
lib: Introduce a new helper kmstest_create_color_fb()
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>
Diffstat (limited to 'lib')
-rw-r--r--lib/igt_kms.c19
-rw-r--r--lib/igt_kms.h4
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 6416a28f..1143d9ec 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -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;
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index a37f6b97..8110dad1 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -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);