summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/drmtest.c11
-rw-r--r--lib/drmtest.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/drmtest.c b/lib/drmtest.c
index cf442a00..5ff9b5f5 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -1648,6 +1648,17 @@ static cairo_t *create_cairo_ctx(int fd, struct kmstest_fb *fb)
return cr;
}
+void kmstest_write_fb(int fd, struct kmstest_fb *fb, const char *filename)
+{
+ cairo_surface_t *surface;
+ cairo_status_t status;
+
+ surface = create_image_surface(fd, fb);
+ status = cairo_surface_write_to_png(surface, filename);
+ assert(status == CAIRO_STATUS_SUCCESS);
+ cairo_surface_destroy(surface);
+}
+
cairo_t *kmstest_get_cairo_ctx(int fd, struct kmstest_fb *fb)
{
diff --git a/lib/drmtest.h b/lib/drmtest.h
index b0b353f0..296c5008 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -357,6 +357,7 @@ void kmstest_paint_color_gradient(cairo_t *cr, int x, int y, int w, int h,
void kmstest_paint_test_pattern(cairo_t *cr, int width, int height);
void kmstest_paint_image(cairo_t *cr, const char *filename,
int dst_x, int dst_y, int dst_width, int dst_height);
+void kmstest_write_fb(int fd, struct kmstest_fb *fb, const char *filename);
void kmstest_dump_mode(drmModeModeInfo *mode);
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
const char *kmstest_format_str(uint32_t drm_format);