From 18aed47ba37ccfbcdd72ed251fc97222741c66a7 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 17 Oct 2011 16:41:14 +0100 Subject: [PATCH] sna: Fast path common colour conversions Signed-off-by: Chris Wilson --- src/sna/sna_blt.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c index 9d847474..15b09bfc 100644 --- a/src/sna/sna_blt.c +++ b/src/sna/sna_blt.c @@ -433,6 +433,20 @@ sna_get_pixel_from_rgba(uint32_t * pixel, int rbits, bbits, gbits, abits; int rshift, bshift, gshift, ashift; + switch (format) { + case PICT_x8r8g8b8: + alpha = 0xffff; + case PICT_a8r8g8b8: + *pixel = ((alpha >> 8 << 24) | + (red >> 8 << 16) | + (green & 0xff00) | + (blue >> 8)); + return TRUE; + case PICT_a8: + *pixel = alpha >> 8; + return TRUE; + } + rbits = PICT_FORMAT_R(format); gbits = PICT_FORMAT_G(format); bbits = PICT_FORMAT_B(format);