Don't consider indexed formats opaque.
authorSøren Sandmann Pedersen <ssp@redhat.com>
Sat, 24 Apr 2010 19:15:05 +0000 (15:15 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Mon, 3 May 2010 07:59:36 +0000 (10:59 +0300)
The indexed formats have 0 bits of alpha, but can't be considered
opaque because there may be non-opaque colors in the palette.

pixman/pixman-image.c
test/blitters-test.c

index 9604bfe..6b0dc6d 100644 (file)
@@ -394,8 +394,10 @@ compute_image_info (pixman_image_t *image)
            }
        }
 
-       if (image->common.repeat != PIXMAN_REPEAT_NONE &&
-           !PIXMAN_FORMAT_A (image->bits.format))
+       if (image->common.repeat != PIXMAN_REPEAT_NONE                          &&
+           !PIXMAN_FORMAT_A (image->bits.format)                               &&
+           PIXMAN_FORMAT_TYPE (image->bits.format) != PIXMAN_TYPE_GRAY         &&
+           PIXMAN_FORMAT_TYPE (image->bits.format) != PIXMAN_TYPE_COLOR)
        {
            flags |= FAST_PATH_IS_OPAQUE;
        }
index 5e33031..18f871e 100644 (file)
@@ -482,7 +482,7 @@ main (int argc, char *argv[])
            /* Predefined value for running with all the fastpath functions
               disabled. It needs to be updated every time when changes are
               introduced to this program or behavior of pixman changes! */
-           if (crc == 0xA058F792)
+           if (crc == 0x8F9F7DC1)
            {
                printf ("blitters test passed\n");
            }