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
_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman