From 8a88e349975a64676f143183e835e6d296f29627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= Date: Thu, 18 Apr 2013 17:26:52 +0300 Subject: [PATCH] modetest: Make RGB565 pwetty too MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Render the crosshairs for 565 and x888/a888 formats. v2: Use the drm format to determine cairo format Acked-by: Laurent Pinchart Signed-off-by: Ville Syrjälä --- tests/modetest/buffers.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/tests/modetest/buffers.c b/tests/modetest/buffers.c index 9b2bf726..b75cca70 100644 --- a/tests/modetest/buffers.c +++ b/tests/modetest/buffers.c @@ -661,15 +661,32 @@ fill_smpte(const struct format_info *info, void *planes[3], unsigned int width, #define BLUE 0 static void -make_pwetty(void *data, int width, int height, int stride) +make_pwetty(void *data, int width, int height, int stride, uint32_t format) { #ifdef HAVE_CAIRO cairo_surface_t *surface; cairo_t *cr; int x, y; + cairo_format_t cairo_format; + + /* we can ignore the order of R,G,B channels */ + switch (format) { + case DRM_FORMAT_XRGB8888: + case DRM_FORMAT_ARGB8888: + case DRM_FORMAT_XBGR8888: + case DRM_FORMAT_ABGR8888: + cairo_format = CAIRO_FORMAT_ARGB32; + break; + case DRM_FORMAT_RGB565: + case DRM_FORMAT_BGR565: + cairo_format = CAIRO_FORMAT_RGB16_565; + break; + default: + return; + } surface = cairo_image_surface_create_for_data(data, - CAIRO_FORMAT_ARGB32, + cairo_format, width, height, stride); cr = cairo_create(surface); @@ -779,6 +796,7 @@ fill_tiles_rgb16(const struct format_info *info, unsigned char *mem, unsigned int width, unsigned int height, unsigned int stride) { const struct rgb_info *rgb = &info->rgb; + unsigned char *mem_base = mem; unsigned int x, y; for (y = 0; y < height; ++y) { @@ -795,6 +813,8 @@ fill_tiles_rgb16(const struct format_info *info, unsigned char *mem, } mem += stride; } + + make_pwetty(mem_base, width, height, stride, info->format); } static void @@ -842,7 +862,7 @@ fill_tiles_rgb32(const struct format_info *info, unsigned char *mem, mem += stride; } - make_pwetty(mem_base, width, height, stride); + make_pwetty(mem_base, width, height, stride, info->format); } static void