diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2014-02-06 19:04:12 +0000 |
---|---|---|
committer | Damien Lespiau <damien.lespiau@intel.com> | 2014-02-11 13:50:16 +0000 |
commit | a1df2f4363d1ed770db36fb8aba14e65087f11c3 (patch) | |
tree | d83801615a93f83395c0b1565d1bf9b1104e09ed /lib | |
parent | f0e0b2ae658c44461d00adddea6cc5bba711966d (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.c | 19 | ||||
-rw-r--r-- | lib/igt_kms.h | 4 |
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); |