[Pixman] [PATCH 05/32] pixman-image: Early detection of solid 1x1 repeating source images

Ben Avison bavison at riscosopen.org
Thu Aug 7 09:50:01 PDT 2014


Doesn't handle every pixel format, but for those that it does, enables early
conversion of OVER to SRC, for example.
---
 pixman/pixman-image.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c
index 1ff1a49..ad6e82e 100644
--- a/pixman/pixman-image.c
+++ b/pixman/pixman-image.c
@@ -438,6 +438,12 @@ compute_image_info (pixman_image_t *image)
 	    image->common.repeat != PIXMAN_REPEAT_NONE)
 	{
 	    code = PIXMAN_solid;
+	    if ((image->bits.format == PIXMAN_a8 && *(uint8_t *)image->bits.bits) == 0xFF   ||
+	        ((image->bits.format == PIXMAN_b8g8r8a8 || image->bits.format == PIXMAN_r8g8b8a8) && (0xff &~ image->bits.bits[0]) == 0) ||
+	        ((image->bits.format == PIXMAN_a8r8g8b8 || image->bits.format == PIXMAN_a8b8g8r8 || image->bits.format == PIXMAN_a8r8g8b8_sRGB) && (0xff000000 &~ image->bits.bits[0]) == 0))
+	    {
+	        flags |= FAST_PATH_SAMPLES_OPAQUE | FAST_PATH_IS_OPAQUE;
+	    }
 	}
 	else
 	{
-- 
1.7.5.4



More information about the Pixman mailing list