Remove the macro magic from READ/WRITE macros.
authorJosé Fonseca <jrfonseca@tungstengraphics.com>
Fri, 14 Sep 2007 14:48:18 +0000 (15:48 +0100)
committerJosé Fonseca <jrfonseca@tungstengraphics.com>
Fri, 14 Sep 2007 14:48:18 +0000 (15:48 +0100)
pixman/pixman-compose.c
pixman/pixman-edge-imp.h
pixman/pixman-edge.c
pixman/pixman-mmx.c
pixman/pixman-pict.c
pixman/pixman-private.h

index 0d4a0d8..31ad490 100644 (file)
@@ -45,7 +45,7 @@
 #define INLINE inline
 
 /*   End of stuff added to get it to compile
- */ 
+ */
 
 static unsigned int
 SourcePictureClassify (source_image_t *pict,
@@ -66,7 +66,7 @@ SourcePictureClassify (source_image_t *pict,
        pixman_fixed_48_16_t dx, dy, a, b, off;
        pixman_fixed_48_16_t factors[4];
        int          i;
-       
+
        dx = linear->p2.x - linear->p1.x;
        dy = linear->p2.y - linear->p1.y;
        l = dx * dx + dy * dy;
@@ -79,31 +79,31 @@ SourcePictureClassify (source_image_t *pict,
        {
            a = b = 0;
        }
-       
+
        off = (-a * linear->p1.x
               -b * linear->p1.y) >> 16;
-       
+
        for (i = 0; i < 3; i++)
        {
            v.vector[0] = pixman_int_to_fixed ((i % 2) * (width  - 1) + x);
            v.vector[1] = pixman_int_to_fixed ((i / 2) * (height - 1) + y);
            v.vector[2] = pixman_fixed_1;
-           
+
            if (pict->common.transform)
            {
                if (!pixman_transform_point_3d (pict->common.transform, &v))
                    return SOURCE_IMAGE_CLASS_UNKNOWN;
            }
-           
+
            factors[i] = ((a * v.vector[0] + b * v.vector[1]) >> 16) + off;
        }
-       
+
        if (factors[2] == factors[0])
            pict->class = SOURCE_IMAGE_CLASS_HORIZONTAL;
        else if (factors[1] == factors[0])
            pict->class = SOURCE_IMAGE_CLASS_VERTICAL;
     }
-    
+
     return pict->class;
 }
 
@@ -121,7 +121,7 @@ SourcePictureClassify (source_image_t *pict,
                stride * pict->height; \
        int offset1 = stride < 0 ? \
                offset0 + ((-stride) >> 1) * ((pict->height) >> 1) : \
-               offset0 + (offset0 >> 2); 
+               offset0 + (offset0 >> 2);
 
 #define YV12_Y(line)           \
     ((uint8_t *) ((bits) + (stride) * (line)))
@@ -137,11 +137,6 @@ SourcePictureClassify (source_image_t *pict,
 typedef FASTCALL void (*fetchProc)(bits_image_t *pict, int x, int y, int width, uint32_t *buffer);
 
 /*
- * Used by READ/WRITE macros
- */
-#define image ((pixman_image_t *)pict)
-
-/*
  * All of the fetch functions
  */
 
@@ -149,7 +144,8 @@ static FASTCALL void
 fbFetch_a8r8g8b8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
 {
     const uint32_t *bits = pict->bits + y*pict->rowstride;
-    MEMCPY_WRAPPED(buffer, (const uint32_t *)bits + x,
+    MEMCPY_WRAPPED(pict,
+                   buffer, (const uint32_t *)bits + x,
                   width*sizeof(uint32_t));
 }
 
@@ -160,7 +156,7 @@ fbFetch_x8r8g8b8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *pixel = (const uint32_t *)bits + x;
     const uint32_t *end = pixel + width;
     while (pixel < end) {
-       *buffer++ = READ(pixel++) | 0xff000000;
+       *buffer++ = READ(pict, pixel++) | 0xff000000;
     }
 }
 
@@ -171,7 +167,7 @@ fbFetch_a8b8g8r8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *pixel = (uint32_t *)bits + x;
     const uint32_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t p = READ(pixel++);
+       uint32_t p = READ(pict, pixel++);
        *buffer++ = (p & 0xff00ff00) |
                    ((p >> 16) & 0xff) |
            ((p & 0xff) << 16);
@@ -185,7 +181,7 @@ fbFetch_x8b8g8r8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *pixel = (uint32_t *)bits + x;
     const uint32_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t p = READ(pixel++);
+       uint32_t p = READ(pict, pixel++);
        *buffer++ = 0xff000000 |
            (p & 0x0000ff00) |
            ((p >> 16) & 0xff) |
@@ -200,7 +196,7 @@ fbFetch_r8g8b8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + 3*x;
     const uint8_t *end = pixel + 3*width;
     while (pixel < end) {
-       uint32_t b = Fetch24(pixel) | 0xff000000;
+       uint32_t b = Fetch24(pict, pixel) | 0xff000000;
        pixel += 3;
        *buffer++ = b;
     }
@@ -215,13 +211,13 @@ fbFetch_b8g8r8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     while (pixel < end) {
        uint32_t b = 0xff000000;
 #if IMAGE_BYTE_ORDER == MSBFirst
-       b |= (READ(pixel++));
-       b |= (READ(pixel++) << 8);
-       b |= (READ(pixel++) << 16);
+       b |= (READ(pict, pixel++));
+       b |= (READ(pict, pixel++) << 8);
+       b |= (READ(pict, pixel++) << 16);
 #else
-       b |= (READ(pixel++) << 16);
-       b |= (READ(pixel++) << 8);
-       b |= (READ(pixel++));
+       b |= (READ(pict, pixel++) << 16);
+       b |= (READ(pict, pixel++) << 8);
+       b |= (READ(pict, pixel++));
 #endif
        *buffer++ = b;
     }
@@ -234,8 +230,8 @@ fbFetch_r5g6b5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t p = READ(pixel++);
-       uint32_t r = (((p) << 3) & 0xf8) | 
+       uint32_t p = READ(pict, pixel++);
+       uint32_t r = (((p) << 3) & 0xf8) |
            (((p) << 5) & 0xfc00) |
            (((p) << 8) & 0xf80000);
        r |= (r >> 5) & 0x70007;
@@ -252,7 +248,7 @@ fbFetch_b5g6r5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
+       uint32_t  p = READ(pict, pixel++);
        b = ((p & 0xf800) | ((p & 0xe000) >> 5)) >> 8;
        g = ((p & 0x07e0) | ((p & 0x0600) >> 6)) << 5;
        r = ((p & 0x001c) | ((p & 0x001f) << 5)) << 14;
@@ -268,8 +264,8 @@ fbFetch_a1r5g5b5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = (uint32_t) ((uint8_t) (0 - ((p & 0x8000) >> 15))) << 24;
        r = ((p & 0x7c00) | ((p & 0x7000) >> 5)) << 9;
        g = ((p & 0x03e0) | ((p & 0x0380) >> 5)) << 6;
@@ -286,8 +282,8 @@ fbFetch_x1r5g5b5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        r = ((p & 0x7c00) | ((p & 0x7000) >> 5)) << 9;
        g = ((p & 0x03e0) | ((p & 0x0380) >> 5)) << 6;
        b = ((p & 0x001c) | ((p & 0x001f) << 5)) >> 2;
@@ -303,8 +299,8 @@ fbFetch_a1b5g5r5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = (uint32_t) ((uint8_t) (0 - ((p & 0x8000) >> 15))) << 24;
        b = ((p & 0x7c00) | ((p & 0x7000) >> 5)) >> 7;
        g = ((p & 0x03e0) | ((p & 0x0380) >> 5)) << 6;
@@ -321,8 +317,8 @@ fbFetch_x1b5g5r5 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        b = ((p & 0x7c00) | ((p & 0x7000) >> 5)) >> 7;
        g = ((p & 0x03e0) | ((p & 0x0380) >> 5)) << 6;
        r = ((p & 0x001c) | ((p & 0x001f) << 5)) << 14;
@@ -338,8 +334,8 @@ fbFetch_a4r4g4b4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = ((p & 0xf000) | ((p & 0xf000) >> 4)) << 16;
        r = ((p & 0x0f00) | ((p & 0x0f00) >> 4)) << 12;
        g = ((p & 0x00f0) | ((p & 0x00f0) >> 4)) << 8;
@@ -356,8 +352,8 @@ fbFetch_x4r4g4b4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        r = ((p & 0x0f00) | ((p & 0x0f00) >> 4)) << 12;
        g = ((p & 0x00f0) | ((p & 0x00f0) >> 4)) << 8;
        b = ((p & 0x000f) | ((p & 0x000f) << 4));
@@ -373,8 +369,8 @@ fbFetch_a4b4g4r4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = ((p & 0xf000) | ((p & 0xf000) >> 4)) << 16;
        b = ((p & 0x0f00) | ((p & 0x0f00) >> 4)) >> 4;
        g = ((p & 0x00f0) | ((p & 0x00f0) >> 4)) << 8;
@@ -391,8 +387,8 @@ fbFetch_x4b4g4r4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint16_t *pixel = (const uint16_t *)bits + x;
     const uint16_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        b = ((p & 0x0f00) | ((p & 0x0f00) >> 4)) >> 4;
        g = ((p & 0x00f0) | ((p & 0x00f0) >> 4)) << 8;
        r = ((p & 0x000f) | ((p & 0x000f) << 4)) << 16;
@@ -407,7 +403,7 @@ fbFetch_a8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       *buffer++ = READ(pixel++) << 24;
+       *buffer++ = READ(pict, pixel++) << 24;
     }
 }
 
@@ -419,8 +415,8 @@ fbFetch_r3g3b2 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        r = ((p & 0xe0) | ((p & 0xe0) >> 3) | ((p & 0xc0) >> 6)) << 16;
        g = ((p & 0x1c) | ((p & 0x18) >> 3) | ((p & 0x1c) << 3)) << 8;
        b = (((p & 0x03)     ) |
@@ -439,8 +435,8 @@ fbFetch_b2g3r3 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        b = (((p & 0xc0)     ) |
             ((p & 0xc0) >> 2) |
             ((p & 0xc0) >> 4) |
@@ -461,8 +457,8 @@ fbFetch_a2r2g2b2 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = ((p & 0xc0) * 0x55) << 18;
        r = ((p & 0x30) * 0x55) << 12;
        g = ((p & 0x0c) * 0x55) << 6;
@@ -479,8 +475,8 @@ fbFetch_a2b2g2r2 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
-       
+       uint32_t  p = READ(pict, pixel++);
+
        a = ((p & 0xc0) * 0x55) << 18;
        b = ((p & 0x30) * 0x55) >> 6;
        g = ((p & 0x0c) * 0x55) << 6;
@@ -497,7 +493,7 @@ fbFetch_c8 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint32_t  p = READ(pixel++);
+       uint32_t  p = READ(pict, pixel++);
        *buffer++ = indexed->rgba[p];
     }
 }
@@ -509,16 +505,16 @@ fbFetch_x4a4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint8_t *pixel = (const uint8_t *)bits + x;
     const uint8_t *end = pixel + width;
     while (pixel < end) {
-       uint8_t p = READ(pixel++) & 0xf;
+       uint8_t p = READ(pict, pixel++) & 0xf;
        *buffer++ = (p | (p << 4)) << 24;
     }
 }
 
-#define Fetch8(l,o)    (READ((uint8_t *)(l) + ((o) >> 2)))
+#define Fetch8(img,l,o)    (READ(img, (uint8_t *)(l) + ((o) >> 2)))
 #if IMAGE_BYTE_ORDER == MSBFirst
-#define Fetch4(l,o)    ((o) & 2 ? Fetch8(l,o) & 0xf : Fetch8(l,o) >> 4)
+#define Fetch4(img,l,o)    ((o) & 2 ? Fetch8(img,l,o) & 0xf : Fetch8(img,l,o) >> 4)
 #else
-#define Fetch4(l,o)    ((o) & 2 ? Fetch8(l,o) >> 4 : Fetch8(l,o) & 0xf)
+#define Fetch4(img,l,o)    ((o) & 2 ? Fetch8(img,l,o) >> 4 : Fetch8(img,l,o) & 0xf)
 #endif
 
 static FASTCALL void
@@ -527,8 +523,8 @@ fbFetch_a4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        p |= p << 4;
        *buffer++ = p << 24;
     }
@@ -541,8 +537,8 @@ fbFetch_r1g2b1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        r = ((p & 0x8) * 0xff) << 13;
        g = ((p & 0x6) * 0x55) << 7;
        b = ((p & 0x1) * 0xff);
@@ -557,8 +553,8 @@ fbFetch_b1g2r1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        b = ((p & 0x8) * 0xff) >> 3;
        g = ((p & 0x6) * 0x55) << 7;
        r = ((p & 0x1) * 0xff) << 16;
@@ -573,8 +569,8 @@ fbFetch_a1r1g1b1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        a = ((p & 0x8) * 0xff) << 21;
        r = ((p & 0x4) * 0xff) << 14;
        g = ((p & 0x2) * 0xff) << 7;
@@ -590,8 +586,8 @@ fbFetch_a1b1g1r1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        a = ((p & 0x8) * 0xff) << 21;
        r = ((p & 0x4) * 0xff) >> 3;
        g = ((p & 0x2) * 0xff) << 7;
@@ -607,8 +603,8 @@ fbFetch_c4 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const pixman_indexed_t * indexed = pict->indexed;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = Fetch4(bits, i + x);
-       
+       uint32_t  p = Fetch4(pict, bits, i + x);
+
        *buffer++ = indexed->rgba[p];
     }
 }
@@ -620,7 +616,7 @@ fbFetch_a1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const uint32_t *bits = pict->bits + y*pict->rowstride;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t  p = READ(bits + ((i + x) >> 5));
+       uint32_t  p = READ(pict, bits + ((i + x) >> 5));
        uint32_t  a;
 #if BITMAP_BIT_ORDER == MSBFirst
        a = p >> (0x1f - ((i+x) & 0x1f));
@@ -642,7 +638,7 @@ fbFetch_g1 (bits_image_t *pict, int x, int y, int width, uint32_t *buffer)
     const pixman_indexed_t * indexed = pict->indexed;
     int i;
     for (i = 0; i < width; ++i) {
-       uint32_t p = READ(bits + ((i+x) >> 5));
+       uint32_t p = READ(pict, bits + ((i+x) >> 5));
        uint32_t a;
 #if BITMAP_BIT_ORDER == MSBFirst
        a = p >> (0x1f - ((i+x) & 0x1f));
@@ -676,7 +672,7 @@ fbFetch_yuy2 (bits_image_t *pict, int x, int line, int width, uint32_t *buffer)
        /* B = 1.164(Y - 16) + 2.018(U - 128) */
        b = 0x012b27 * y + 0x0206a2 * u;
 
-    WRITE(buffer++, 0xff000000 |
+    WRITE(pict, buffer++, 0xff000000 |
        (r >= 0 ? r < 0x1000000 ? r         & 0xff0000 : 0xff0000 : 0) |
        (g >= 0 ? g < 0x1000000 ? (g >> 8)  & 0x00ff00 : 0x00ff00 : 0) |
        (b >= 0 ? b < 0x1000000 ? (b >> 16) & 0x0000ff : 0x0000ff : 0));
@@ -707,7 +703,7 @@ fbFetch_yv12 (bits_image_t *pict, int x, int line, int width, uint32_t *buffer)
        /* B = 1.164(Y - 16) + 2.018(U - 128) */
        b = 0x012b27 * y + 0x0206a2 * u;
 
-       WRITE(buffer++, 0xff000000 |
+       WRITE(pict, buffer++, 0xff000000 |
            (r >= 0 ? r < 0x1000000 ? r         & 0xff0000 : 0xff0000 : 0) |
            (g >= 0 ? g < 0x1000000 ? (g >> 8)  & 0x00ff00 : 0x00ff00 : 0) |
            (b >= 0 ? b < 0x1000000 ? (b >> 16) & 0x0000ff : 0x0000ff : 0));
@@ -721,15 +717,15 @@ static fetchProc fetchProcForPicture (bits_image_t * pict)
     case PIXMAN_x8r8g8b8: return fbFetch_x8r8g8b8;
     case PIXMAN_a8b8g8r8: return fbFetch_a8b8g8r8;
     case PIXMAN_x8b8g8r8: return fbFetch_x8b8g8r8;
-       
+
         /* 24bpp formats */
     case PIXMAN_r8g8b8: return fbFetch_r8g8b8;
     case PIXMAN_b8g8r8: return fbFetch_b8g8r8;
-       
+
         /* 16bpp formats */
     case PIXMAN_r5g6b5: return fbFetch_r5g6b5;
     case PIXMAN_b5g6r5: return fbFetch_b5g6r5;
-       
+
     case PIXMAN_a1r5g5b5: return fbFetch_a1r5g5b5;
     case PIXMAN_x1r5g5b5: return fbFetch_x1r5g5b5;
     case PIXMAN_a1b5g5r5: return fbFetch_a1b5g5r5;
@@ -738,7 +734,7 @@ static fetchProc fetchProcForPicture (bits_image_t * pict)
     case PIXMAN_x4r4g4b4: return fbFetch_x4r4g4b4;
     case PIXMAN_a4b4g4r4: return fbFetch_a4b4g4r4;
     case PIXMAN_x4b4g4r4: return fbFetch_x4b4g4r4;
-       
+
         /* 8bpp formats */
     case PIXMAN_a8: return  fbFetch_a8;
     case PIXMAN_r3g3b2: return fbFetch_r3g3b2;
@@ -748,7 +744,7 @@ static fetchProc fetchProcForPicture (bits_image_t * pict)
     case PIXMAN_c8: return  fbFetch_c8;
     case PIXMAN_g8: return  fbFetch_c8;
     case PIXMAN_x4a4: return fbFetch_x4a4;
-       
+
         /* 4bpp formats */
     case PIXMAN_a4: return  fbFetch_a4;
     case PIXMAN_r1g2b1: return fbFetch_r1g2b1;
@@ -757,7 +753,7 @@ static fetchProc fetchProcForPicture (bits_image_t * pict)
     case PIXMAN_a1b1g1r1: return fbFetch_a1b1g1r1;
     case PIXMAN_c4: return  fbFetch_c4;
     case PIXMAN_g4: return  fbFetch_c4;
-       
+
         /* 1bpp formats */
     case PIXMAN_a1: return  fbFetch_a1;
     case PIXMAN_g1: return  fbFetch_g1;
@@ -766,7 +762,7 @@ static fetchProc fetchProcForPicture (bits_image_t * pict)
     case PIXMAN_yuy2: return fbFetch_yuy2;
     case PIXMAN_yv12: return fbFetch_yv12;
     }
-    
+
     return NULL;
 }
 
@@ -780,22 +776,22 @@ static FASTCALL uint32_t
 fbFetchPixel_a8r8g8b8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    return READ((uint32_t *)bits + offset);
+    return READ(pict, (uint32_t *)bits + offset);
 }
 
 static FASTCALL uint32_t
 fbFetchPixel_x8r8g8b8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    return READ((uint32_t *)bits + offset) | 0xff000000;
+    return READ(pict, (uint32_t *)bits + offset) | 0xff000000;
 }
 
 static FASTCALL uint32_t
 fbFetchPixel_a8b8g8r8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint32_t *)bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint32_t *)bits + offset);
+
     return ((pixel & 0xff000000) |
            ((pixel >> 16) & 0xff) |
            (pixel & 0x0000ff00) |
@@ -806,8 +802,8 @@ static FASTCALL uint32_t
 fbFetchPixel_x8b8g8r8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint32_t *)bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint32_t *)bits + offset);
+
     return ((0xff000000) |
            ((pixel >> 16) & 0xff) |
            (pixel & 0x0000ff00) |
@@ -821,14 +817,14 @@ fbFetchPixel_r8g8b8 (bits_image_t *pict, int offset, int line)
     uint8_t   *pixel = ((uint8_t *) bits) + (offset*3);
 #if IMAGE_BYTE_ORDER == MSBFirst
     return (0xff000000 |
-           (READ(pixel + 0) << 16) |
-           (READ(pixel + 1) << 8) |
-           (READ(pixel + 2)));
+           (READ(pict, pixel + 0) << 16) |
+           (READ(pict, pixel + 1) << 8) |
+           (READ(pict, pixel + 2)));
 #else
     return (0xff000000 |
-           (READ(pixel + 2) << 16) |
-           (READ(pixel + 1) << 8) |
-           (READ(pixel + 0)));
+           (READ(pict, pixel + 2) << 16) |
+           (READ(pict, pixel + 1) << 8) |
+           (READ(pict, pixel + 0)));
 #endif
 }
 
@@ -839,14 +835,14 @@ fbFetchPixel_b8g8r8 (bits_image_t *pict, int offset, int line)
     uint8_t   *pixel = ((uint8_t *) bits) + (offset*3);
 #if IMAGE_BYTE_ORDER == MSBFirst
     return (0xff000000 |
-           (READ(pixel + 2) << 16) |
-           (READ(pixel + 1) << 8) |
-           (READ(pixel + 0)));
+           (READ(pict, pixel + 2) << 16) |
+           (READ(pict, pixel + 1) << 8) |
+           (READ(pict, pixel + 0)));
 #else
     return (0xff000000 |
-           (READ(pixel + 0) << 16) |
-           (READ(pixel + 1) << 8) |
-           (READ(pixel + 2)));
+           (READ(pict, pixel + 0) << 16) |
+           (READ(pict, pixel + 1) << 8) |
+           (READ(pict, pixel + 2)));
 #endif
 }
 
@@ -855,8 +851,8 @@ fbFetchPixel_r5g6b5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     r = ((pixel & 0xf800) | ((pixel & 0xe000) >> 5)) << 8;
     g = ((pixel & 0x07e0) | ((pixel & 0x0600) >> 6)) << 5;
     b = ((pixel & 0x001c) | ((pixel & 0x001f) << 5)) >> 2;
@@ -868,8 +864,8 @@ fbFetchPixel_b5g6r5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     b = ((pixel & 0xf800) | ((pixel & 0xe000) >> 5)) >> 8;
     g = ((pixel & 0x07e0) | ((pixel & 0x0600) >> 6)) << 5;
     r = ((pixel & 0x001c) | ((pixel & 0x001f) << 5)) << 14;
@@ -881,8 +877,8 @@ fbFetchPixel_a1r5g5b5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     a = (uint32_t) ((uint8_t) (0 - ((pixel & 0x8000) >> 15))) << 24;
     r = ((pixel & 0x7c00) | ((pixel & 0x7000) >> 5)) << 9;
     g = ((pixel & 0x03e0) | ((pixel & 0x0380) >> 5)) << 6;
@@ -895,8 +891,8 @@ fbFetchPixel_x1r5g5b5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     r = ((pixel & 0x7c00) | ((pixel & 0x7000) >> 5)) << 9;
     g = ((pixel & 0x03e0) | ((pixel & 0x0380) >> 5)) << 6;
     b = ((pixel & 0x001c) | ((pixel & 0x001f) << 5)) >> 2;
@@ -908,8 +904,8 @@ fbFetchPixel_a1b5g5r5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     a = (uint32_t) ((uint8_t) (0 - ((pixel & 0x8000) >> 15))) << 24;
     b = ((pixel & 0x7c00) | ((pixel & 0x7000) >> 5)) >> 7;
     g = ((pixel & 0x03e0) | ((pixel & 0x0380) >> 5)) << 6;
@@ -922,8 +918,8 @@ fbFetchPixel_x1b5g5r5 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     b = ((pixel & 0x7c00) | ((pixel & 0x7000) >> 5)) >> 7;
     g = ((pixel & 0x03e0) | ((pixel & 0x0380) >> 5)) << 6;
     r = ((pixel & 0x001c) | ((pixel & 0x001f) << 5)) << 14;
@@ -935,8 +931,8 @@ fbFetchPixel_a4r4g4b4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     a = ((pixel & 0xf000) | ((pixel & 0xf000) >> 4)) << 16;
     r = ((pixel & 0x0f00) | ((pixel & 0x0f00) >> 4)) << 12;
     g = ((pixel & 0x00f0) | ((pixel & 0x00f0) >> 4)) << 8;
@@ -949,8 +945,8 @@ fbFetchPixel_x4r4g4b4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     r = ((pixel & 0x0f00) | ((pixel & 0x0f00) >> 4)) << 12;
     g = ((pixel & 0x00f0) | ((pixel & 0x00f0) >> 4)) << 8;
     b = ((pixel & 0x000f) | ((pixel & 0x000f) << 4));
@@ -962,8 +958,8 @@ fbFetchPixel_a4b4g4r4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     a = ((pixel & 0xf000) | ((pixel & 0xf000) >> 4)) << 16;
     b = ((pixel & 0x0f00) | ((pixel & 0x0f00) >> 4)) >> 4;
     g = ((pixel & 0x00f0) | ((pixel & 0x00f0) >> 4)) << 8;
@@ -976,8 +972,8 @@ fbFetchPixel_x4b4g4r4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ((uint16_t *) bits + offset);
-    
+    uint32_t  pixel = READ(pict, (uint16_t *) bits + offset);
+
     b = ((pixel & 0x0f00) | ((pixel & 0x0f00) >> 4)) >> 4;
     g = ((pixel & 0x00f0) | ((pixel & 0x00f0) >> 4)) << 8;
     r = ((pixel & 0x000f) | ((pixel & 0x000f) << 4)) << 16;
@@ -988,8 +984,8 @@ static FASTCALL uint32_t
 fbFetchPixel_a8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     return pixel << 24;
 }
 
@@ -998,8 +994,8 @@ fbFetchPixel_r3g3b2 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     r = ((pixel & 0xe0) | ((pixel & 0xe0) >> 3) | ((pixel & 0xc0) >> 6)) << 16;
     g = ((pixel & 0x1c) | ((pixel & 0x18) >> 3) | ((pixel & 0x1c) << 3)) << 8;
     b = (((pixel & 0x03)     ) |
@@ -1014,8 +1010,8 @@ fbFetchPixel_b2g3r3 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     b = (((pixel & 0xc0)     ) |
         ((pixel & 0xc0) >> 2) |
         ((pixel & 0xc0) >> 4) |
@@ -1032,8 +1028,8 @@ fbFetchPixel_a2r2g2b2 (bits_image_t *pict, int offset, int line)
 {
     uint32_t   a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     a = ((pixel & 0xc0) * 0x55) << 18;
     r = ((pixel & 0x30) * 0x55) << 12;
     g = ((pixel & 0x0c) * 0x55) << 6;
@@ -1046,8 +1042,8 @@ fbFetchPixel_a2b2g2r2 (bits_image_t *pict, int offset, int line)
 {
     uint32_t   a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     a = ((pixel & 0xc0) * 0x55) << 18;
     b = ((pixel & 0x30) * 0x55) >> 6;
     g = ((pixel & 0x0c) * 0x55) << 6;
@@ -1059,7 +1055,7 @@ static FASTCALL uint32_t
 fbFetchPixel_c8 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
     const pixman_indexed_t * indexed = pict->indexed;
     return indexed->rgba[pixel];
 }
@@ -1068,8 +1064,8 @@ static FASTCALL uint32_t
 fbFetchPixel_x4a4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t   pixel = READ((uint8_t *) bits + offset);
-    
+    uint32_t   pixel = READ(pict, (uint8_t *) bits + offset);
+
     return ((pixel & 0xf) | ((pixel & 0xf) << 4)) << 24;
 }
 
@@ -1077,8 +1073,8 @@ static FASTCALL uint32_t
 fbFetchPixel_a4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
-    
+    uint32_t  pixel = Fetch4(pict, bits, offset);
+
     pixel |= pixel << 4;
     return pixel << 24;
 }
@@ -1088,8 +1084,8 @@ fbFetchPixel_r1g2b1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
-    
+    uint32_t  pixel = Fetch4(pict, bits, offset);
+
     r = ((pixel & 0x8) * 0xff) << 13;
     g = ((pixel & 0x6) * 0x55) << 7;
     b = ((pixel & 0x1) * 0xff);
@@ -1101,8 +1097,8 @@ fbFetchPixel_b1g2r1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
-    
+    uint32_t  pixel = Fetch4(pict, bits, offset);
+
     b = ((pixel & 0x8) * 0xff) >> 3;
     g = ((pixel & 0x6) * 0x55) << 7;
     r = ((pixel & 0x1) * 0xff) << 16;
@@ -1114,8 +1110,8 @@ fbFetchPixel_a1r1g1b1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
-    
+    uint32_t  pixel = Fetch4(pict, bits, offset);
+
     a = ((pixel & 0x8) * 0xff) << 21;
     r = ((pixel & 0x4) * 0xff) << 14;
     g = ((pixel & 0x2) * 0xff) << 7;
@@ -1128,8 +1124,8 @@ fbFetchPixel_a1b1g1r1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t  a,r,g,b;
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
-    
+    uint32_t  pixel = Fetch4(pict, bits, offset);
+
     a = ((pixel & 0x8) * 0xff) << 21;
     r = ((pixel & 0x4) * 0xff) >> 3;
     g = ((pixel & 0x2) * 0xff) << 7;
@@ -1141,9 +1137,9 @@ static FASTCALL uint32_t
 fbFetchPixel_c4 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = Fetch4(bits, offset);
+    uint32_t  pixel = Fetch4(pict, bits, offset);
     const pixman_indexed_t * indexed = pict->indexed;
-    
+
     return indexed->rgba[pixel];
 }
 
@@ -1152,7 +1148,7 @@ static FASTCALL uint32_t
 fbFetchPixel_a1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t  pixel = READ(bits + (offset >> 5));
+    uint32_t  pixel = READ(pict, bits + (offset >> 5));
     uint32_t  a;
 #if BITMAP_BIT_ORDER == MSBFirst
     a = pixel >> (0x1f - (offset & 0x1f));
@@ -1170,7 +1166,7 @@ static FASTCALL uint32_t
 fbFetchPixel_g1 (bits_image_t *pict, int offset, int line)
 {
     uint32_t *bits = pict->bits + line*pict->rowstride;
-    uint32_t pixel = READ(bits + (offset >> 5));
+    uint32_t pixel = READ(pict, bits + (offset >> 5));
     const pixman_indexed_t * indexed = pict->indexed;
     uint32_t a;
 #if BITMAP_BIT_ORDER == MSBFirst
@@ -1236,15 +1232,15 @@ static fetchPixelProc fetchPixelProcForPicture (bits_image_t * pict)
     case PIXMAN_x8r8g8b8: return fbFetchPixel_x8r8g8b8;
     case PIXMAN_a8b8g8r8: return fbFetchPixel_a8b8g8r8;
     case PIXMAN_x8b8g8r8: return fbFetchPixel_x8b8g8r8;
-       
+
         /* 24bpp formats */
     case PIXMAN_r8g8b8: return fbFetchPixel_r8g8b8;
     case PIXMAN_b8g8r8: return fbFetchPixel_b8g8r8;
-       
+
         /* 16bpp formats */
     case PIXMAN_r5g6b5: return fbFetchPixel_r5g6b5;
     case PIXMAN_b5g6r5: return fbFetchPixel_b5g6r5;
-       
+
     case PIXMAN_a1r5g5b5: return fbFetchPixel_a1r5g5b5;
     case PIXMAN_x1r5g5b5: return fbFetchPixel_x1r5g5b5;
     case PIXMAN_a1b5g5r5: return fbFetchPixel_a1b5g5r5;
@@ -1253,7 +1249,7 @@ static fetchPixelProc fetchPixelProcForPicture (bits_image_t * pict)
     case PIXMAN_x4r4g4b4: return fbFetchPixel_x4r4g4b4;
     case PIXMAN_a4b4g4r4: return fbFetchPixel_a4b4g4r4;
     case PIXMAN_x4b4g4r4: return fbFetchPixel_x4b4g4r4;
-       
+
         /* 8bpp formats */
     case PIXMAN_a8: return  fbFetchPixel_a8;
     case PIXMAN_r3g3b2: return fbFetchPixel_r3g3b2;
@@ -1263,7 +1259,7 @@ static fetchPixelProc fetchPixelProcForPicture (bits_image_t * pict)
     case PIXMAN_c8: return  fbFetchPixel_c8;
     case PIXMAN_g8: return  fbFetchPixel_c8;
     case PIXMAN_x4a4: return fbFetchPixel_x4a4;
-       
+
         /* 4bpp formats */
     case PIXMAN_a4: return  fbFetchPixel_a4;
     case PIXMAN_r1g2b1: return fbFetchPixel_r1g2b1;
@@ -1272,7 +1268,7 @@ static fetchPixelProc fetchPixelProcForPicture (bits_image_t * pict)
     case PIXMAN_a1b1g1r1: return fbFetchPixel_a1b1g1r1;
     case PIXMAN_c4: return  fbFetchPixel_c4;
     case PIXMAN_g4: return  fbFetchPixel_c4;
-       
+
         /* 1bpp formats */
     case PIXMAN_a1: return  fbFetchPixel_a1;
     case PIXMAN_g1: return  fbFetchPixel_g1;
@@ -1281,12 +1277,10 @@ static fetchPixelProc fetchPixelProcForPicture (bits_image_t * pict)
     case PIXMAN_yuy2: return fbFetchPixel_yuy2;
     case PIXMAN_yv12: return fbFetchPixel_yv12;
     }
-    
+
     return NULL;
 }
 
-#undef image
-
 
 /*
  * All the store functions
@@ -1302,7 +1296,7 @@ static FASTCALL void
 fbStore_a8r8g8b8 (pixman_image_t *image,
                  uint32_t *bits, const uint32_t *values, int x, int width, const pixman_indexed_t * indexed)
 {
-    MEMCPY_WRAPPED(((uint32_t *)bits) + x, values, width*sizeof(uint32_t));
+    MEMCPY_WRAPPED(image, ((uint32_t *)bits) + x, values, width*sizeof(uint32_t));
 }
 
 static FASTCALL void
@@ -1312,7 +1306,7 @@ fbStore_x8r8g8b8 (pixman_image_t *image,
     int i;
     uint32_t *pixel = (uint32_t *)bits + x;
     for (i = 0; i < width; ++i)
-       WRITE(pixel++, values[i] & 0xffffff);
+       WRITE(image, pixel++, values[i] & 0xffffff);
 }
 
 static FASTCALL void
@@ -1322,7 +1316,7 @@ fbStore_a8b8g8r8 (pixman_image_t *image,
     int i;
     uint32_t *pixel = (uint32_t *)bits + x;
     for (i = 0; i < width; ++i)
-       WRITE(pixel++, (values[i] & 0xff00ff00) | ((values[i] >> 16) & 0xff) | ((values[i] & 0xff) << 16));
+       WRITE(image, pixel++, (values[i] & 0xff00ff00) | ((values[i] >> 16) & 0xff) | ((values[i] & 0xff) << 16));
 }
 
 static FASTCALL void
@@ -1332,7 +1326,7 @@ fbStore_x8b8g8r8 (pixman_image_t *image,
     int i;
     uint32_t *pixel = (uint32_t *)bits + x;
     for (i = 0; i < width; ++i)
-       WRITE(pixel++, (values[i] & 0x0000ff00) | ((values[i] >> 16) & 0xff) | ((values[i] & 0xff) << 16));
+       WRITE(image, pixel++, (values[i] & 0x0000ff00) | ((values[i] >> 16) & 0xff) | ((values[i] & 0xff) << 16));
 }
 
 static FASTCALL void
@@ -1343,7 +1337,7 @@ fbStore_r8g8b8 (pixman_image_t *image,
     int i;
     uint8_t *pixel = ((uint8_t *) bits) + 3*x;
     for (i = 0; i < width; ++i) {
-       Store24(pixel, values[i]);
+       Store24(image, pixel, values[i]);
        pixel += 3;
     }
 }
@@ -1357,13 +1351,13 @@ fbStore_b8g8r8 (pixman_image_t *image,
     for (i = 0; i < width; ++i) {
        uint32_t val = values[i];
 #if IMAGE_BYTE_ORDER == MSBFirst
-       WRITE(pixel++, Blue(val));
-       WRITE(pixel++, Green(val));
-       WRITE(pixel++, Red(val));
+       WRITE(image, pixel++, Blue(val));
+       WRITE(image, pixel++, Green(val));
+       WRITE(image, pixel++, Red(val));
 #else
-       WRITE(pixel++, Red(val));
-       WRITE(pixel++, Green(val));
-       WRITE(pixel++, Blue(val));
+       WRITE(image, pixel++, Red(val));
+       WRITE(image, pixel++, Green(val));
+       WRITE(image, pixel++, Blue(val));
 #endif
     }
 }
@@ -1376,7 +1370,7 @@ fbStore_r5g6b5 (pixman_image_t *image,
     uint16_t *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        uint32_t s = values[i];
-       WRITE(pixel++, ((s >> 3) & 0x001f) |
+       WRITE(image, pixel++, ((s >> 3) & 0x001f) |
              ((s >> 5) & 0x07e0) |
              ((s >> 8) & 0xf800));
     }
@@ -1390,7 +1384,7 @@ fbStore_b5g6r5 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++, ((b << 8) & 0xf800) |
+       WRITE(image, pixel++, ((b << 8) & 0xf800) |
              ((g << 3) & 0x07e0) |
              ((r >> 3)         ));
     }
@@ -1404,7 +1398,7 @@ fbStore_a1r5g5b5 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Splita(values[i]);
-       WRITE(pixel++, ((a << 8) & 0x8000) |
+       WRITE(image, pixel++, ((a << 8) & 0x8000) |
              ((r << 7) & 0x7c00) |
              ((g << 2) & 0x03e0) |
              ((b >> 3)         ));
@@ -1419,7 +1413,7 @@ fbStore_x1r5g5b5 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++, ((r << 7) & 0x7c00) |
+       WRITE(image, pixel++, ((r << 7) & 0x7c00) |
              ((g << 2) & 0x03e0) |
              ((b >> 3)         ));
     }
@@ -1433,7 +1427,7 @@ fbStore_a1b5g5r5 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Splita(values[i]);
-       WRITE(pixel++, ((a << 8) & 0x8000) |
+       WRITE(image, pixel++, ((a << 8) & 0x8000) |
              ((b << 7) & 0x7c00) |
              ((g << 2) & 0x03e0) |
              ((r >> 3)         ));
@@ -1448,7 +1442,7 @@ fbStore_x1b5g5r5 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++, ((b << 7) & 0x7c00) |
+       WRITE(image, pixel++, ((b << 7) & 0x7c00) |
              ((g << 2) & 0x03e0) |
              ((r >> 3)         ));
     }
@@ -1462,7 +1456,7 @@ fbStore_a4r4g4b4 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Splita(values[i]);
-       WRITE(pixel++, ((a << 8) & 0xf000) |
+       WRITE(image, pixel++, ((a << 8) & 0xf000) |
              ((r << 4) & 0x0f00) |
              ((g     ) & 0x00f0) |
              ((b >> 4)         ));
@@ -1477,7 +1471,7 @@ fbStore_x4r4g4b4 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++, ((r << 4) & 0x0f00) |
+       WRITE(image, pixel++, ((r << 4) & 0x0f00) |
              ((g     ) & 0x00f0) |
              ((b >> 4)         ));
     }
@@ -1491,7 +1485,7 @@ fbStore_a4b4g4r4 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Splita(values[i]);
-       WRITE(pixel++, ((a << 8) & 0xf000) |
+       WRITE(image, pixel++, ((a << 8) & 0xf000) |
              ((b << 4) & 0x0f00) |
              ((g     ) & 0x00f0) |
              ((r >> 4)         ));
@@ -1506,7 +1500,7 @@ fbStore_x4b4g4r4 (pixman_image_t *image,
     uint16_t  *pixel = ((uint16_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++, ((b << 4) & 0x0f00) |
+       WRITE(image, pixel++, ((b << 4) & 0x0f00) |
              ((g     ) & 0x00f0) |
              ((r >> 4)         ));
     }
@@ -1519,7 +1513,7 @@ fbStore_a8 (pixman_image_t *image,
     int i;
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
-       WRITE(pixel++, values[i] >> 24);
+       WRITE(image, pixel++, values[i] >> 24);
     }
 }
 
@@ -1531,7 +1525,7 @@ fbStore_r3g3b2 (pixman_image_t *image,
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++,
+       WRITE(image, pixel++,
              ((r     ) & 0xe0) |
              ((g >> 3) & 0x1c) |
              ((b >> 6)       ));
@@ -1546,7 +1540,7 @@ fbStore_b2g3r3 (pixman_image_t *image,
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Split(values[i]);
-       WRITE(pixel++,
+       WRITE(image, pixel++,
              ((b     ) & 0xc0) |
              ((g >> 2) & 0x1c) |
              ((r >> 5)       ));
@@ -1561,7 +1555,7 @@ fbStore_a2r2g2b2 (pixman_image_t *image,
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
        Splita(values[i]);
-       WRITE(pixel++, ((a     ) & 0xc0) |
+       WRITE(image, pixel++, ((a     ) & 0xc0) |
              ((r >> 2) & 0x30) |
              ((g >> 4) & 0x0c) |
              ((b >> 6)       ));
@@ -1575,7 +1569,7 @@ fbStore_c8 (pixman_image_t *image,
     int i;
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
-       WRITE(pixel++, miIndexToEnt24(indexed,values[i]));
+       WRITE(image, pixel++, miIndexToEnt24(indexed,values[i]));
     }
 }
 
@@ -1586,19 +1580,19 @@ fbStore_x4a4 (pixman_image_t *image,
     int i;
     uint8_t   *pixel = ((uint8_t *) bits) + x;
     for (i = 0; i < width; ++i) {
-       WRITE(pixel++, values[i] >> 28);
+       WRITE(image, pixel++, values[i] >> 28);
     }
 }
 
-#define Store8(l,o,v)  (WRITE((uint8_t *)(l) + ((o) >> 3), (v)))
+#define Store8(img,l,o,v)  (WRITE(img, (uint8_t *)(l) + ((o) >> 3), (v)))
 #if IMAGE_BYTE_ORDER == MSBFirst
-#define Store4(l,o,v)  Store8(l,o,((o) & 4 ?                           \
-                                  (Fetch8(l,o) & 0xf0) | (v) :         \
-                                  (Fetch8(l,o) & 0x0f) | ((v) << 4)))
+#define Store4(img,l,o,v)  Store8(img,l,o,((o) & 4 ?                           \
+                                  (Fetch8(img,l,o) & 0xf0) | (v) :             \
+                                  (Fetch8(img,l,o) & 0x0f) | ((v) << 4)))
 #else
-#define Store4(l,o,v)  Store8(l,o,((o) & 4 ?                          \
-                                  (Fetch8(l,o) & 0x0f) | ((v) << 4) : \
-                                  (Fetch8(l,o) & 0xf0) | (v)))
+#define Store4(img,l,o,v)  Store8(img,l,o,((o) & 4 ?                          \
+                                  (Fetch8(img,l,o) & 0x0f) | ((v) << 4) : \
+                                  (Fetch8(img,l,o) & 0xf0) | (v)))
 #endif
 
 static FASTCALL void
@@ -1607,7 +1601,7 @@ fbStore_a4 (pixman_image_t *image,
 {
     int i;
     for (i = 0; i < width; ++i) {
-       Store4(bits, i + x, values[i]>>28);
+       Store4(image, bits, i + x, values[i]>>28);
     }
 }
 
@@ -1618,12 +1612,12 @@ fbStore_r1g2b1 (pixman_image_t *image,
     int i;
     for (i = 0; i < width; ++i) {
        uint32_t  pixel;
-       
+
        Split(values[i]);
        pixel = (((r >> 4) & 0x8) |
                 ((g >> 5) & 0x6) |
                 ((b >> 7)      ));
-       Store4(bits, i + x, pixel);
+       Store4(image, bits, i + x, pixel);
     }
 }
 
@@ -1634,12 +1628,12 @@ fbStore_b1g2r1 (pixman_image_t *image,
     int i;
     for (i = 0; i < width; ++i) {
        uint32_t  pixel;
-       
+
        Split(values[i]);
        pixel = (((b >> 4) & 0x8) |
                 ((g >> 5) & 0x6) |
                 ((r >> 7)      ));
-       Store4(bits, i + x, pixel);
+       Store4(image, bits, i + x, pixel);
     }
 }
 
@@ -1655,7 +1649,7 @@ fbStore_a1r1g1b1 (pixman_image_t *image,
                 ((r >> 5) & 0x4) |
                 ((g >> 6) & 0x2) |
                 ((b >> 7)      ));
-       Store4(bits, i + x, pixel);
+       Store4(image, bits, i + x, pixel);
     }
 }
 
@@ -1671,7 +1665,7 @@ fbStore_a1b1g1r1 (pixman_image_t *image,
                 ((b >> 5) & 0x4) |
                 ((g >> 6) & 0x2) |
                 ((r >> 7)      ));
-       Store4(bits, i + x, pixel);
+       Store4(image, bits, i + x, pixel);
     }
 }
 
@@ -1682,9 +1676,9 @@ fbStore_c4 (pixman_image_t *image,
     int i;
     for (i = 0; i < width; ++i) {
        uint32_t  pixel;
-       
+
        pixel = miIndexToEnt24(indexed, values[i]);
-       Store4(bits, i + x, pixel);
+       Store4(image, bits, i + x, pixel);
     }
 }
 
@@ -1696,9 +1690,9 @@ fbStore_a1 (pixman_image_t *image,
     for (i = 0; i < width; ++i) {
        uint32_t  *pixel = ((uint32_t *) bits) + ((i+x) >> 5);
        uint32_t  mask = FbStipMask((i+x) & 0x1f, 1);
-       
+
        uint32_t v = values[i] & 0x80000000 ? mask : 0;
-       WRITE(pixel, (READ(pixel) & ~mask) | v);
+       WRITE(image, pixel, (READ(image, pixel) & ~mask) | v);
     }
 }
 
@@ -1710,9 +1704,9 @@ fbStore_g1 (pixman_image_t *image,
     for (i = 0; i < width; ++i) {
        uint32_t  *pixel = ((uint32_t *) bits) + ((i+x) >> 5);
        uint32_t  mask = FbStipMask((i+x) & 0x1f, 1);
-       
+
        uint32_t v = miIndexToEntY24(indexed,values[i]) ? mask : 0;
-       WRITE(pixel, (READ(pixel) & ~mask) | v);
+       WRITE(image, pixel, (READ(image, pixel) & ~mask) | v);
     }
 }
 
@@ -1724,15 +1718,15 @@ static storeProc storeProcForPicture (bits_image_t * pict)
     case PIXMAN_x8r8g8b8: return fbStore_x8r8g8b8;
     case PIXMAN_a8b8g8r8: return fbStore_a8b8g8r8;
     case PIXMAN_x8b8g8r8: return fbStore_x8b8g8r8;
-       
+
         /* 24bpp formats */
     case PIXMAN_r8g8b8: return fbStore_r8g8b8;
     case PIXMAN_b8g8r8: return fbStore_b8g8r8;
-       
+
         /* 16bpp formats */
     case PIXMAN_r5g6b5: return fbStore_r5g6b5;
     case PIXMAN_b5g6r5: return fbStore_b5g6r5;
-       
+
     case PIXMAN_a1r5g5b5: return fbStore_a1r5g5b5;
     case PIXMAN_x1r5g5b5: return fbStore_x1r5g5b5;
     case PIXMAN_a1b5g5r5: return fbStore_a1b5g5r5;
@@ -1741,7 +1735,7 @@ static storeProc storeProcForPicture (bits_image_t * pict)
     case PIXMAN_x4r4g4b4: return fbStore_x4r4g4b4;
     case PIXMAN_a4b4g4r4: return fbStore_a4b4g4r4;
     case PIXMAN_x4b4g4r4: return fbStore_x4b4g4r4;
-       
+
         /* 8bpp formats */
     case PIXMAN_a8: return  fbStore_a8;
     case PIXMAN_r3g3b2: return fbStore_r3g3b2;
@@ -1750,7 +1744,7 @@ static storeProc storeProcForPicture (bits_image_t * pict)
     case PIXMAN_c8: return  fbStore_c8;
     case PIXMAN_g8: return  fbStore_c8;
     case PIXMAN_x4a4: return fbStore_x4a4;
-       
+
         /* 4bpp formats */
     case PIXMAN_a4: return  fbStore_a4;
     case PIXMAN_r1g2b1: return fbStore_r1g2b1;
@@ -1759,7 +1753,7 @@ static storeProc storeProcForPicture (bits_image_t * pict)
     case PIXMAN_a1b1g1r1: return fbStore_a1b1g1r1;
     case PIXMAN_c4: return  fbStore_c4;
     case PIXMAN_g4: return  fbStore_c4;
-       
+
         /* 1bpp formats */
     case PIXMAN_a1: return  fbStore_a1;
     case PIXMAN_g1: return  fbStore_g1;
@@ -1809,7 +1803,7 @@ fbCombineOverU (uint32_t *dest, const uint32_t *src, int width)
         uint32_t s = *(src + i);
         uint32_t d = *(dest + i);
         uint32_t ia = Alpha(~s);
-       
+
         FbByteMulAdd(d, ia, s);
        *(dest + i) = d;
     }
@@ -1885,7 +1879,7 @@ fbCombineAtopU (uint32_t *dest, const uint32_t *src, int width)
         uint32_t d = *(dest + i);
         uint32_t dest_a = Alpha(d);
         uint32_t src_ia = Alpha(~s);
-       
+
         FbByteAddMul(s, dest_a, d, src_ia);
        *(dest + i) = s;
     }
@@ -1900,7 +1894,7 @@ fbCombineAtopReverseU (uint32_t *dest, const uint32_t *src, int width)
         uint32_t d = *(dest + i);
         uint32_t src_a = Alpha(s);
         uint32_t dest_ia = Alpha(~d);
-       
+
         FbByteAddMul(s, dest_ia, d, src_a);
        *(dest + i) = s;
     }
@@ -1915,7 +1909,7 @@ fbCombineXorU (uint32_t *dest, const uint32_t *src, int width)
         uint32_t d = *(dest + i);
         uint32_t src_ia = Alpha(~s);
         uint32_t dest_ia = Alpha(~d);
-       
+
         FbByteAddMul(s, dest_ia, d, src_ia);
        *(dest + i) = s;
     }
@@ -1941,7 +1935,7 @@ fbCombineSaturateU (uint32_t *dest, const uint32_t *src, int width)
         uint32_t  s = *(src + i);
         uint32_t d = *(dest + i);
         uint16_t  sa, da;
-       
+
         sa = s >> 24;
         da = ~d >> 24;
         if (sa > da)
@@ -1956,12 +1950,12 @@ fbCombineSaturateU (uint32_t *dest, const uint32_t *src, int width)
 
 /*
  * All of the disjoint composing functions
+
  The four entries in the first column indicate what source contributions
  come from each of the four areas of the picture -- areas covered by neither
  A nor B, areas covered only by A, areas covered only by B and finally
  areas covered by both A and B.
+
  Disjoint                      Conjoint
  Fa            Fb              Fa              Fb
  (0,0,0,0)     0               0               0               0
@@ -1976,7 +1970,7 @@ fbCombineSaturateU (uint32_t *dest, const uint32_t *src, int width)
  (0,0,B,A)     max(1-(1-b)/a,0) min(1,(1-a)/b)  min(1,b/a)     max(1-a/b,0)
  (0,A,0,B)     min(1,(1-b)/a)  max(1-(1-a)/b,0) max(1-b/a,0)   min(1,a/b)
  (0,A,B,0)     min(1,(1-b)/a)  min(1,(1-a)/b)  max(1-b/a,0)    max(1-a/b,0)
+
 */
 
 #define CombineAOut 1
@@ -1998,7 +1992,7 @@ static INLINE uint8_t
 fbCombineDisjointOutPart (uint8_t a, uint8_t b)
 {
     /* min (1, (1-b) / a) */
-    
+
     b = ~b;                /* 1 - b */
     if (b >= a)                    /* 1 - b >= a -> (1-b)/a >= 1 */
        return 0xff;        /* 1 */
@@ -2012,7 +2006,7 @@ fbCombineDisjointInPart (uint8_t a, uint8_t b)
     /* max (1-(1-b)/a,0) */
     /*  = - min ((1-b)/a - 1, 0) */
     /*  = 1 - min (1, (1-b)/a) */
-    
+
     b = ~b;                /* 1 - b */
     if (b >= a)                    /* 1 - b >= a -> (1-b)/a >= 1 */
        return 0;           /* 1 - 1 */
@@ -2030,7 +2024,7 @@ fbCombineDisjointGeneralU (uint32_t *dest, const uint32_t *src, int width, uint8
         uint16_t Fa, Fb, t, u, v;
         uint8_t sa = s >> 24;
         uint8_t da = d >> 24;
-       
+
         switch (combine & CombineA) {
         default:
             Fa = 0;
@@ -2045,7 +2039,7 @@ fbCombineDisjointGeneralU (uint32_t *dest, const uint32_t *src, int width, uint8
             Fa = 0xff;
             break;
         }
-       
+
         switch (combine & CombineB) {
         default:
             Fb = 0;
@@ -2076,7 +2070,7 @@ fbCombineDisjointOverU (uint32_t *dest, const uint32_t *src, int width)
     for (i = 0; i < width; ++i) {
         uint32_t  s = *(src + i);
         uint16_t  a = s >> 24;
-       
+
         if (a != 0x00)
         {
             if (a != 0xff)
@@ -2139,9 +2133,9 @@ fbCombineConjointOutPart (uint8_t a, uint8_t b)
 {
     /* max (1-b/a,0) */
     /* = 1-min(b/a,1) */
-    
+
     /* min (1, (1-b) / a) */
-    
+
     if (b >= a)                    /* b >= a -> b/a >= 1 */
        return 0x00;        /* 0 */
     return ~FbIntDiv(b,a);   /* 1 - b/a */
@@ -2152,7 +2146,7 @@ static INLINE uint8_t
 fbCombineConjointInPart (uint8_t a, uint8_t b)
 {
     /* min (1,b/a) */
-    
+
     if (b >= a)                    /* b >= a -> b/a >= 1 */
        return 0xff;        /* 1 */
     return FbIntDiv(b,a);   /* b/a */
@@ -2169,7 +2163,7 @@ fbCombineConjointGeneralU (uint32_t *dest, const uint32_t *src, int width, uint8
         uint16_t  Fa, Fb, t, u, v;
         uint8_t sa = s >> 24;
         uint8_t da = d >> 24;
-       
+
         switch (combine & CombineA) {
         default:
             Fa = 0;
@@ -2184,7 +2178,7 @@ fbCombineConjointGeneralU (uint32_t *dest, const uint32_t *src, int width, uint8
             Fa = 0xff;
             break;
         }
-       
+
         switch (combine & CombineB) {
         default:
             Fb = 0;
@@ -2316,16 +2310,16 @@ static INLINE void
 fbCombineMaskC (uint32_t *src, uint32_t *mask)
 {
     uint32_t a = *mask;
-    
+
     uint32_t   x;
     uint16_t   xa;
-    
+
     if (!a)
     {
        *(src) = 0;
        return;
     }
-    
+
     x = *(src);
     if (a == 0xffffffff)
     {
@@ -2335,7 +2329,7 @@ fbCombineMaskC (uint32_t *src, uint32_t *mask)
        *(mask) = x;
        return;
     }
-    
+
     xa = x >> 24;
     FbByteMulC(x, a);
     *(src) = x;
@@ -2348,16 +2342,16 @@ fbCombineMaskValueC (uint32_t *src, const uint32_t *mask)
 {
     uint32_t a = *mask;
     uint32_t   x;
-    
+
     if (!a)
     {
        *(src) = 0;
        return;
     }
-    
+
     if (a == 0xffffffff)
        return;
-    
+
     x = *(src);
     FbByteMulC(x, a);
     *(src) =x;
@@ -2368,10 +2362,10 @@ fbCombineMaskAlphaC (const uint32_t *src, uint32_t *mask)
 {
     uint32_t a = *(mask);
     uint32_t   x;
-    
+
     if (!a)
        return;
-    
+
     x = *(src) >> 24;
     if (x == 0xff)
        return;
@@ -2383,7 +2377,7 @@ fbCombineMaskAlphaC (const uint32_t *src, uint32_t *mask)
        *(mask) = x;
        return;
     }
-    
+
     FbByteMul(a, x);
     *(mask) = a;
 }
@@ -2398,13 +2392,13 @@ static FASTCALL void
 fbCombineSrcC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
        uint32_t s = *(src + i);
        uint32_t m = *(mask + i);
-       
+
        fbCombineMaskValueC (&s, &m);
-       
+
        *(dest) = s;
     }
 }
@@ -2413,14 +2407,14 @@ static FASTCALL void
 fbCombineOverC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
        uint32_t s = *(src + i);
        uint32_t m = *(mask + i);
        uint32_t a;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
        a = ~m;
         if (a != 0xffffffff)
         {
@@ -2439,18 +2433,18 @@ static FASTCALL void
 fbCombineOverReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t d = *(dest + i);
         uint32_t a = ~d >> 24;
-       
+
         if (a)
         {
             uint32_t s = *(src + i);
            uint32_t m = *(mask + i);
-           
+
            fbCombineMaskValueC (&s, &m);
-           
+
             if (a != 0xff)
             {
                 FbByteMulAdd(s, a, d);
@@ -2464,7 +2458,7 @@ static FASTCALL void
 fbCombineInC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t d = *(dest + i);
         uint16_t a = d >> 24;
@@ -2472,7 +2466,7 @@ fbCombineInC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
         if (a)
         {
            uint32_t m = *(mask + i);
-           
+
            s = *(src + i);
            fbCombineMaskValueC (&s, &m);
             if (a != 0xff)
@@ -2488,14 +2482,14 @@ static FASTCALL void
 fbCombineInReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t s = *(src + i);
         uint32_t m = *(mask + i);
         uint32_t a;
-       
+
        fbCombineMaskAlphaC (&s, &m);
-       
+
        a = m;
         if (a != 0xffffffff)
         {
@@ -2505,7 +2499,7 @@ fbCombineInReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
                 d = *(dest + i);
                 FbByteMulC(d, a);
             }
-           *(dest + i) = d; 
+           *(dest + i) = d;
         }
     }
 }
@@ -2514,7 +2508,7 @@ static FASTCALL void
 fbCombineOutC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t d = *(dest + i);
         uint16_t a = ~d >> 24;
@@ -2522,10 +2516,10 @@ fbCombineOutC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
         if (a)
         {
            uint32_t m = *(mask + i);
-           
+
            s = *(src + i);
            fbCombineMaskValueC (&s, &m);
-           
+
             if (a != 0xff)
             {
                 FbByteMul(s, a);
@@ -2539,14 +2533,14 @@ static FASTCALL void
 fbCombineOutReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
        uint32_t s = *(src + i);
        uint32_t m = *(mask + i);
        uint32_t a;
-       
+
        fbCombineMaskAlphaC (&s, &m);
-       
+
         a = ~m;
         if (a != 0xffffffff)
         {
@@ -2565,18 +2559,18 @@ static FASTCALL void
 fbCombineAtopC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t d = *(dest + i);
         uint32_t s = *(src + i);
         uint32_t m = *(mask + i);
         uint32_t ad;
         uint16_t as = d >> 24;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
         ad = ~m;
-       
+
         FbByteAddMulC(d, ad, s, as);
        *(dest + i) = d;
     }
@@ -2586,19 +2580,19 @@ static FASTCALL void
 fbCombineAtopReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
-       
+
         uint32_t d = *(dest + i);
         uint32_t s = *(src + i);
         uint32_t m = *(mask + i);
         uint32_t ad;
         uint16_t as = ~d >> 24;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
        ad = m;
-       
+
         FbByteAddMulC(d, ad, s, as);
        *(dest + i) = d;
     }
@@ -2608,18 +2602,18 @@ static FASTCALL void
 fbCombineXorC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t d = *(dest + i);
         uint32_t s = *(src + i);
         uint32_t m = *(mask + i);
         uint32_t ad;
         uint16_t as = ~d >> 24;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
        ad = ~m;
-       
+
         FbByteAddMulC(d, ad, s, as);
        *(dest + i) = d;
     }
@@ -2629,14 +2623,14 @@ static FASTCALL void
 fbCombineAddC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t s = *(src + i);
         uint32_t m = *(mask + i);
         uint32_t d = *(dest + i);
-       
+
        fbCombineMaskValueC (&s, &m);
-       
+
         FbByteAdd(d, s);
        *(dest + i) = d;
     }
@@ -2646,45 +2640,45 @@ static FASTCALL void
 fbCombineSaturateC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t  s, d;
         uint16_t  sa, sr, sg, sb, da;
         uint16_t  t, u, v;
         uint32_t  m,n,o,p;
-       
+
         d = *(dest + i);
         s = *(src + i);
        m = *(mask + i);
-       
+
        fbCombineMaskC (&s, &m);
-       
+
         sa = (m >> 24);
         sr = (m >> 16) & 0xff;
         sg = (m >>  8) & 0xff;
         sb = (m      ) & 0xff;
         da = ~d >> 24;
-       
+
         if (sb <= da)
             m = FbAdd(s,d,0,t);
         else
             m = FbGen (s, d, 0, (da << 8) / sb, 0xff, t, u, v);
-       
+
         if (sg <= da)
             n = FbAdd(s,d,8,t);
         else
             n = FbGen (s, d, 8, (da << 8) / sg, 0xff, t, u, v);
-       
+
         if (sr <= da)
             o = FbAdd(s,d,16,t);
         else
             o = FbGen (s, d, 16, (da << 8) / sr, 0xff, t, u, v);
-       
+
         if (sa <= da)
             p = FbAdd(s,d,24,t);
         else
             p = FbGen (s, d, 24, (da << 8) / sa, 0xff, t, u, v);
-       
+
        *(dest + i) = m|n|o|p;
     }
 }
@@ -2693,7 +2687,7 @@ static FASTCALL void
 fbCombineDisjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width, uint8_t combine)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t  s, d;
         uint32_t  m,n,o,p;
@@ -2701,16 +2695,16 @@ fbCombineDisjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int wi
         uint16_t  t, u, v;
         uint32_t  sa;
         uint8_t   da;
-       
+
         s = *(src + i);
         m = *(mask + i);
         d = *(dest + i);
         da = d >> 24;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
        sa = m;
-       
+
         switch (combine & CombineA) {
         default:
             Fa = 0;
@@ -2733,7 +2727,7 @@ fbCombineDisjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int wi
             Fa = 0xffffffff;
             break;
         }
-       
+
         switch (combine & CombineB) {
         default:
             Fb = 0;
@@ -2817,7 +2811,7 @@ static FASTCALL void
 fbCombineConjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width, uint8_t combine)
 {
     int i;
-    
+
     for (i = 0; i < width; ++i) {
         uint32_t  s, d;
         uint32_t  m,n,o,p;
@@ -2825,16 +2819,16 @@ fbCombineConjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int wi
         uint16_t  t, u, v;
         uint32_t  sa;
         uint8_t   da;
-       
+
         s = *(src + i);
         m = *(mask + i);
         d = *(dest + i);
         da = d >> 24;
-       
+
        fbCombineMaskC (&s, &m);
-       
+
         sa = m;
-       
+
         switch (combine & CombineA) {
         default:
             Fa = 0;
@@ -2857,7 +2851,7 @@ fbCombineConjointGeneralC (uint32_t *dest, uint32_t *src, uint32_t *mask, int wi
             Fa = 0xffffffff;
             break;
         }
-       
+
         switch (combine & CombineB) {
         default:
             Fb = 0;
@@ -2996,9 +2990,9 @@ static void fbFetchSolid(bits_image_t * pict, int x, int y, int width, uint32_t
     uint32_t color;
     uint32_t *end;
     fetchPixelProc fetch = fetchPixelProcForPicture(pict);
-    
+
     color = fetch(pict, 0, 0);
-    
+
     end = buffer + width;
     while (buffer < end)
        *(buffer++) = color;
@@ -3008,7 +3002,7 @@ static void fbFetchSolid(bits_image_t * pict, int x, int y, int width, uint32_t
 static void fbFetch(bits_image_t * pict, int x, int y, int width, uint32_t *buffer, uint32_t *mask, uint32_t maskBits)
 {
     fetchProc fetch = fetchProcForPicture(pict);
-    
+
     fetch(pict, x, y, width, buffer);
 }
 
@@ -3038,11 +3032,11 @@ typedef struct
     int32_t       left_x;
     int32_t       right_x;
     int32_t       stepper;
-    
+
     pixman_gradient_stop_t     *stops;
     int                      num_stops;
     unsigned int             spread;
-    
+
     int                  need_reset;
 } GradientWalker;
 
@@ -3061,7 +3055,7 @@ _gradient_walker_init (GradientWalker  *walker,
     walker->right_ag  = 0;
     walker->right_rb  = 0;
     walker->spread    = spread;
-    
+
     walker->need_reset = TRUE;
 }
 
@@ -3073,9 +3067,9 @@ _gradient_walker_reset (GradientWalker  *walker,
     pixman_color_t          *left_c, *right_c;
     int                      n, count = walker->num_stops;
     pixman_gradient_stop_t *      stops = walker->stops;
-    
+
     static const pixman_color_t   transparent_black = { 0, 0, 0, 0 };
-    
+
     switch (walker->spread)
     {
     case PIXMAN_REPEAT_NORMAL:
@@ -3090,7 +3084,7 @@ _gradient_walker_reset (GradientWalker  *walker,
            left_x =  stops[n-1].x;
            left_c = &stops[n-1].color;
        }
-       
+
        if (n == count) {
            right_x =  stops[0].x + 0x10000;
            right_c = &stops[0].color;
@@ -3101,12 +3095,12 @@ _gradient_walker_reset (GradientWalker  *walker,
        left_x  += (pos - x);
        right_x += (pos - x);
        break;
-       
+
     case PIXMAN_REPEAT_PAD:
        for (n = 0; n < count; n++)
            if (pos < stops[n].x)
                break;
-       
+
        if (n == 0) {
            left_x =  INT32_MIN;
            left_c = &stops[0].color;
@@ -3114,7 +3108,7 @@ _gradient_walker_reset (GradientWalker  *walker,
            left_x =  stops[n-1].x;
            left_c = &stops[n-1].color;
        }
-       
+
        if (n == count) {
            right_x =  INT32_MAX;
            right_c = &stops[n-1].color;
@@ -3123,7 +3117,7 @@ _gradient_walker_reset (GradientWalker  *walker,
            right_c = &stops[n].color;
        }
        break;
-       
+
     case PIXMAN_REPEAT_REFLECT:
        x = (int32_t)pos & 0xFFFF;
        if ((int32_t)pos & 0x10000)
@@ -3131,7 +3125,7 @@ _gradient_walker_reset (GradientWalker  *walker,
        for (n = 0; n < count; n++)
            if (x < stops[n].x)
                break;
-       
+
        if (n == 0) {
            left_x =  -stops[0].x;
            left_c = &stops[0].color;
@@ -3139,7 +3133,7 @@ _gradient_walker_reset (GradientWalker  *walker,
            left_x =  stops[n-1].x;
            left_c = &stops[n-1].color;
        }
-       
+
        if (n == count) {
            right_x = 0x20000 - stops[n-1].x;
            right_c = &stops[n-1].color;
@@ -3147,30 +3141,30 @@ _gradient_walker_reset (GradientWalker  *walker,
            right_x =  stops[n].x;
            right_c = &stops[n].color;
        }
-       
+
        if ((int32_t)pos & 0x10000) {
            pixman_color_t  *tmp_c;
            int32_t          tmp_x;
-           
+
            tmp_x   = 0x10000 - right_x;
            right_x = 0x10000 - left_x;
            left_x  = tmp_x;
-           
+
            tmp_c   = right_c;
            right_c = left_c;
            left_c  = tmp_c;
-           
+
            x = 0x10000 - x;
        }
        left_x  += (pos - x);
        right_x += (pos - x);
        break;
-       
+
     default:  /* RepeatNone */
        for (n = 0; n < count; n++)
            if (pos < stops[n].x)
                break;
-       
+
        if (n == 0)
        {
            left_x  =  INT32_MIN;
@@ -3191,14 +3185,14 @@ _gradient_walker_reset (GradientWalker  *walker,
            right_c = &stops[n].color;
        }
     }
-    
+
     walker->left_x   = left_x;
     walker->right_x  = right_x;
     walker->left_ag  = ((left_c->alpha >> 8) << 16)   | (left_c->green >> 8);
     walker->left_rb  = ((left_c->red & 0xff00) << 8)  | (left_c->blue >> 8);
     walker->right_ag = ((right_c->alpha >> 8) << 16)  | (right_c->green >> 8);
     walker->right_rb = ((right_c->red & 0xff00) << 8) | (right_c->blue >> 8);
-    
+
     if ( walker->left_x == walker->right_x                ||
         ( walker->left_ag == walker->right_ag &&
           walker->left_rb == walker->right_rb )   )
@@ -3210,7 +3204,7 @@ _gradient_walker_reset (GradientWalker  *walker,
        int32_t width = right_x - left_x;
        walker->stepper = ((1 << 24) + width/2)/width;
     }
-    
+
     walker->need_reset = FALSE;
 }
 
@@ -3225,29 +3219,29 @@ _gradient_walker_pixel (GradientWalker  *walker,
 {
     int  dist, idist;
     uint32_t  t1, t2, a, color;
-    
+
     if (GRADIENT_WALKER_NEED_RESET (walker, x))
         _gradient_walker_reset (walker, x);
-    
+
     dist  = ((int)(x - walker->left_x)*walker->stepper) >> 16;
     idist = 256 - dist;
-    
+
     /* combined INTERPOLATE and premultiply */
     t1 = walker->left_rb*idist + walker->right_rb*dist;
     t1 = (t1 >> 8) & 0xff00ff;
-    
+
     t2  = walker->left_ag*idist + walker->right_ag*dist;
     t2 &= 0xff00ff00;
-    
+
     color = t2 & 0xff000000;
     a     = t2 >> 24;
-    
+
     t1  = t1*a + 0x800080;
     t1  = (t1 + ((t1 >> 8) & 0xff00ff)) >> 8;
-    
+
     t2  = (t2 >> 8)*a + 0x800080;
     t2  = (t2 + ((t2 >> 8) & 0xff00ff));
-    
+
     return (color | (t1 & 0xff00ff) | (t2 & 0xff00));
 }
 
@@ -3259,27 +3253,27 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
     GradientWalker  walker;
     uint32_t       *end = buffer + width;
     gradient_t     *gradient;
-    
+
     if (pict->common.type == SOLID)
     {
        register uint32_t color = ((solid_fill_t *)pict)->color;
-       
+
        while (buffer < end)
            *(buffer++) = color;
-       
+
        return;
     }
-    
+
     gradient = (gradient_t *)pict;
-    
+
     _gradient_walker_init (&walker, gradient, pict->common.repeat);
-    
+
     if (pict->common.type == LINEAR) {
        pixman_vector_t v, unit;
        pixman_fixed_32_32_t l;
        pixman_fixed_48_16_t dx, dy, a, b, off;
        linear_gradient_t *linear = (linear_gradient_t *)pict;
-       
+
         /* reference point is the center of the pixel */
         v.vector[0] = pixman_int_to_fixed(x) + pixman_fixed_1/2;
         v.vector[1] = pixman_int_to_fixed(y) + pixman_fixed_1/2;
@@ -3295,7 +3289,7 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
             unit.vector[1] = 0;
             unit.vector[2] = 0;
         }
-       
+
         dx = linear->p2.x - linear->p1.x;
         dy = linear->p2.y - linear->p1.y;
         l = dx*dx + dy*dy;
@@ -3314,11 +3308,11 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                 t = ((a*v.vector[0] + b*v.vector[1]) >> 16) + off;
                 inc = (a * unit.vector[0] + b * unit.vector[1]) >> 16;
             }
-           
+
            if (pict->class == SOURCE_IMAGE_CLASS_VERTICAL)
            {
                register uint32_t color;
-               
+
                color = _gradient_walker_pixel( &walker, t );
                while (buffer < end)
                    *(buffer++) = color;
@@ -3347,11 +3341,11 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
        else /* projective transformation */
        {
            pixman_fixed_48_16_t t;
-           
+
            if (pict->class == SOURCE_IMAGE_CLASS_VERTICAL)
            {
                register uint32_t color;
-               
+
                if (v.vector[2] == 0)
                {
                    t = 0;
@@ -3359,12 +3353,12 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                else
                {
                    pixman_fixed_48_16_t x, y;
-                   
+
                    x = ((pixman_fixed_48_16_t) v.vector[0] << 16) / v.vector[2];
                    y = ((pixman_fixed_48_16_t) v.vector[1] << 16) / v.vector[2];
                    t = ((a * x + b * y) >> 16) + off;
                }
-               
+
                color = _gradient_walker_pixel( &walker, t );
                while (buffer < end)
                    *(buffer++) = color;
@@ -3393,7 +3387,7 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
             }
         }
     } else {
-       
+
 /*
  * In the radial gradient problem we are given two circles (c₁,r₁) and
  * (c₂,r₂) that define the gradient itself. Then, for any point p, we
@@ -3516,7 +3510,7 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
        double rx = x + 0.5;
        double ry = y + 0.5;
         double rz = 1.;
-       
+
         if (pict->common.transform) {
             pixman_vector_t v;
             /* reference point is the center of the pixel */
@@ -3525,7 +3519,7 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
             v.vector[2] = pixman_fixed_1;
             if (!pixman_transform_point_3d (pict->common.transform, &v))
                 return;
-           
+
             cx = pict->common.transform->matrix[0][0]/65536.;
             cy = pict->common.transform->matrix[1][0]/65536.;
             cz = pict->common.transform->matrix[2][0]/65536.;
@@ -3534,7 +3528,7 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
             rz = v.vector[2]/65536.;
             affine = pict->common.transform->matrix[2][0] == 0 && v.vector[2] == pixman_fixed_1;
         }
-       
+
         if (pict->common.type == RADIAL) {
            radial_gradient_t *radial = (radial_gradient_t *)pict;
             if (affine) {
@@ -3548,28 +3542,28 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                        double c1y = radial->c1.y / 65536.0;
                        double r1  = radial->c1.radius / 65536.0;
                         pixman_fixed_48_16_t t;
-                       
+
                        pdx = rx - c1x;
                        pdy = ry - c1y;
-                       
+
                        B = -2 * (  pdx * radial->cdx
                                    + pdy * radial->cdy
                                    + r1 * radial->dr);
                        C = (pdx * pdx + pdy * pdy - r1 * r1);
-                       
+
                         det = (B * B) - (4 * radial->A * C);
                        if (det < 0.0)
                            det = 0.0;
-                       
+
                        if (radial->A < 0)
                            t = (pixman_fixed_48_16_t) ((- B - sqrt(det)) / (2.0 * radial->A) * 65536);
                        else
                            t = (pixman_fixed_48_16_t) ((- B + sqrt(det)) / (2.0 * radial->A) * 65536);
-                       
+
                        *(buffer) = _gradient_walker_pixel (&walker, t);
                    }
                    ++buffer;
-                   
+
                     rx += cx;
                     ry += cy;
                 }
@@ -3586,35 +3580,35 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                        double r1  = radial->c1.radius / 65536.0;
                         pixman_fixed_48_16_t t;
                        double x, y;
-                       
+
                        if (rz != 0) {
                            x = rx/rz;
                            y = ry/rz;
                        } else {
                            x = y = 0.;
                        }
-                       
+
                        pdx = x - c1x;
                        pdy = y - c1y;
-                       
+
                        B = -2 * (  pdx * radial->cdx
                                    + pdy * radial->cdy
                                    + r1 * radial->dr);
                        C = (pdx * pdx + pdy * pdy - r1 * r1);
-                       
+
                         det = (B * B) - (4 * radial->A * C);
                        if (det < 0.0)
                            det = 0.0;
-                       
+
                        if (radial->A < 0)
                            t = (pixman_fixed_48_16_t) ((- B - sqrt(det)) / (2.0 * radial->A) * 65536);
                        else
                            t = (pixman_fixed_48_16_t) ((- B + sqrt(det)) / (2.0 * radial->A) * 65536);
-                       
+
                        *(buffer) = _gradient_walker_pixel (&walker, t);
                    }
                    ++buffer;
-                   
+
                     rx += cx;
                     ry += cy;
                    rz += cz;
@@ -3626,20 +3620,20 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
             if (affine) {
                 rx -= conical->center.x/65536.;
                 ry -= conical->center.y/65536.;
-               
+
                 while (buffer < end) {
                    double angle;
-                   
+
                     if (!mask || *mask++ & maskBits)
                    {
                         pixman_fixed_48_16_t   t;
-                       
+
                         angle = atan2(ry, rx) + a;
                        t     = (pixman_fixed_48_16_t) (angle * (65536. / (2*M_PI)));
-                       
+
                        *(buffer) = _gradient_walker_pixel (&walker, t);
                    }
-                   
+
                     ++buffer;
                     rx += cx;
                     ry += cy;
@@ -3648,11 +3642,11 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                 while (buffer < end) {
                     double x, y;
                     double angle;
-                   
+
                     if (!mask || *mask++ & maskBits)
                     {
                        pixman_fixed_48_16_t  t;
-                       
+
                        if (rz != 0) {
                            x = rx/rz;
                            y = ry/rz;
@@ -3663,10 +3657,10 @@ static void pixmanFetchSourcePict(source_image_t * pict, int x, int y, int width
                        y -= conical->center.y/65536.;
                        angle = atan2(y, x) + a;
                        t     = (pixman_fixed_48_16_t) (angle * (65536. / (2*M_PI)));
-                       
+
                        *(buffer) = _gradient_walker_pixel (&walker, t);
                    }
-                   
+
                     ++buffer;
                     rx += cx;
                     ry += cy;
@@ -3687,17 +3681,17 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
     int         i;
     pixman_box16_t box;
     pixman_bool_t affine = TRUE;
-    
+
     fetch = fetchPixelProcForPicture(pict);
-    
+
     bits = pict->bits;
     stride = pict->rowstride;
-    
+
     /* reference point is the center of the pixel */
     v.vector[0] = pixman_int_to_fixed(x) + pixman_fixed_1 / 2;
     v.vector[1] = pixman_int_to_fixed(y) + pixman_fixed_1 / 2;
     v.vector[2] = pixman_fixed_1;
-    
+
     /* when using convolution filters one might get here without a transform */
     if (pict->common.transform)
     {
@@ -3717,7 +3711,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
         unit.vector[1] = 0;
         unit.vector[2] = 0;
     }
-    
+
     if (pict->common.filter == PIXMAN_FILTER_NEAREST || pict->common.filter == PIXMAN_FILTER_FAST)
     {
         if (pict->common.repeat == PIXMAN_REPEAT_NORMAL) {
@@ -3738,7 +3732,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            *(buffer + i) = fetch(pict, x, y);
                        }
                    }
-                   
+
                     v.vector[0] += unit.vector[0];
                     v.vector[1] += unit.vector[1];
                     v.vector[2] += unit.vector[2];
@@ -3763,7 +3757,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                                *(buffer + i) = 0;
                        }
                    }
-                   
+
                     v.vector[0] += unit.vector[0];
                     v.vector[1] += unit.vector[1];
                     v.vector[2] += unit.vector[2];
@@ -3828,7 +3822,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
         v.vector[1] -= v.vector[2] / 2;
         unit.vector[0] -= unit.vector[2] / 2;
         unit.vector[1] -= unit.vector[2] / 2;
-       
+
         if (pict->common.repeat == PIXMAN_REPEAT_NORMAL) {
             if (pixman_region_n_rects(pict->common.src_clip) == 1) {
                 for (i = 0; i < width; ++i) {
@@ -3840,7 +3834,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            int x1, x2, y1, y2, distx, idistx, disty, idisty;
                            uint32_t tl, tr, bl, br, r;
                            uint32_t ft, fb;
-                           
+
                            if (!affine) {
                                pixman_fixed_48_16_t div;
                                div = ((pixman_fixed_48_16_t)v.vector[0] << 16)/v.vector[2];
@@ -3857,20 +3851,20 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            }
                            x2 = x1 + 1;
                            y2 = y1 + 1;
-                           
+
                            idistx = 256 - distx;
                            idisty = 256 - disty;
-                           
+
                            x1 = MOD (x1, pict->width);
                            x2 = MOD (x2, pict->width);
                            y1 = MOD (y1, pict->height);
                            y2 = MOD (y2, pict->height);
-                           
+
                            tl = fetch(pict, x1, y1);
                            tr = fetch(pict, x2, y1);
                            bl = fetch(pict, x1, y2);
                            br = fetch(pict, x2, y2);
-                           
+
                            ft = FbGet8(tl,0) * idistx + FbGet8(tr,0) * distx;
                            fb = FbGet8(bl,0) * idistx + FbGet8(br,0) * distx;
                            r = (((ft * idisty + fb * disty) >> 16) & 0xff);
@@ -3900,7 +3894,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            int x1, x2, y1, y2, distx, idistx, disty, idisty;
                            uint32_t tl, tr, bl, br, r;
                            uint32_t ft, fb;
-                           
+
                            if (!affine) {
                                pixman_fixed_48_16_t div;
                                div = ((pixman_fixed_48_16_t)v.vector[0] << 16)/v.vector[2];
@@ -3917,15 +3911,15 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            }
                            x2 = x1 + 1;
                            y2 = y1 + 1;
-                           
+
                            idistx = 256 - distx;
                            idisty = 256 - disty;
-                           
+
                            x1 = MOD (x1, pict->width);
                            x2 = MOD (x2, pict->width);
                            y1 = MOD (y1, pict->height);
                            y2 = MOD (y2, pict->height);
-                           
+
                            tl = pixman_region_contains_point(pict->common.src_clip, x1, y1, &box)
                                ? fetch(pict, x1, y1) : 0;
                            tr = pixman_region_contains_point(pict->common.src_clip, x2, y1, &box)
@@ -3934,7 +3928,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                                ? fetch(pict, x1, y2) : 0;
                            br = pixman_region_contains_point(pict->common.src_clip, x2, y2, &box)
                                ? fetch(pict, x2, y2) : 0;
-                           
+
                            ft = FbGet8(tl,0) * idistx + FbGet8(tr,0) * distx;
                            fb = FbGet8(bl,0) * idistx + FbGet8(br,0) * distx;
                            r = (((ft * idisty + fb * disty) >> 16) & 0xff);
@@ -3950,7 +3944,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            *(buffer + i) = r;
                        }
                    }
-                   
+
                     v.vector[0] += unit.vector[0];
                     v.vector[1] += unit.vector[1];
                     v.vector[2] += unit.vector[2];
@@ -3969,7 +3963,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            uint32_t tl, tr, bl, br, r;
                            pixman_bool_t x1_out, x2_out, y1_out, y2_out;
                            uint32_t ft, fb;
-                           
+
                            if (!affine) {
                                pixman_fixed_48_16_t div;
                                div = ((pixman_fixed_48_16_t)v.vector[0] << 16)/v.vector[2];
@@ -3986,20 +3980,20 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            }
                            x2 = x1 + 1;
                            y2 = y1 + 1;
-                           
+
                            idistx = 256 - distx;
                            idisty = 256 - disty;
-                           
+
                            x1_out = (x1 < box.x1) | (x1 >= box.x2);
                            x2_out = (x2 < box.x1) | (x2 >= box.x2);
                            y1_out = (y1 < box.y1) | (y1 >= box.y2);
                            y2_out = (y2 < box.y1) | (y2 >= box.y2);
-                           
+
                            tl = x1_out|y1_out ? 0 : fetch(pict, x1, y1);
                            tr = x2_out|y1_out ? 0 : fetch(pict, x2, y1);
                            bl = x1_out|y2_out ? 0 : fetch(pict, x1, y2);
                            br = x2_out|y2_out ? 0 : fetch(pict, x2, y2);
-                           
+
                            ft = FbGet8(tl,0) * idistx + FbGet8(tr,0) * distx;
                            fb = FbGet8(bl,0) * idistx + FbGet8(br,0) * distx;
                            r = (((ft * idisty + fb * disty) >> 16) & 0xff);
@@ -4015,7 +4009,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            *(buffer + i) = r;
                        }
                    }
-                   
+
                     v.vector[0] += unit.vector[0];
                     v.vector[1] += unit.vector[1];
                     v.vector[2] += unit.vector[2];
@@ -4030,7 +4024,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            int x1, x2, y1, y2, distx, idistx, disty, idisty;
                            uint32_t tl, tr, bl, br, r;
                            uint32_t ft, fb;
-                           
+
                            if (!affine) {
                                pixman_fixed_48_16_t div;
                                div = ((pixman_fixed_48_16_t)v.vector[0] << 16)/v.vector[2];
@@ -4047,10 +4041,10 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            }
                            x2 = x1 + 1;
                            y2 = y1 + 1;
-                           
+
                            idistx = 256 - distx;
                            idisty = 256 - disty;
-                           
+
                            tl = pixman_region_contains_point(pict->common.src_clip, x1, y1, &box)
                                ? fetch(pict, x1, y1) : 0;
                            tr = pixman_region_contains_point(pict->common.src_clip, x2, y1, &box)
@@ -4059,7 +4053,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                                ? fetch(pict, x1, y2) : 0;
                            br = pixman_region_contains_point(pict->common.src_clip, x2, y2, &box)
                                ? fetch(pict, x2, y2) : 0;
-                           
+
                            ft = FbGet8(tl,0) * idistx + FbGet8(tr,0) * distx;
                            fb = FbGet8(bl,0) * idistx + FbGet8(br,0) * distx;
                            r = (((ft * idisty + fb * disty) >> 16) & 0xff);
@@ -4075,7 +4069,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            *(buffer + i) = r;
                        }
                    }
-                   
+
                     v.vector[0] += unit.vector[0];
                     v.vector[1] += unit.vector[1];
                     v.vector[2] += unit.vector[2];
@@ -4098,7 +4092,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                    int x1, x2, y1, y2, x, y;
                    int32_t srtot, sgtot, sbtot, satot;
                    pixman_fixed_t *p = params;
-                   
+
                    if (!affine) {
                        pixman_fixed_48_16_t tmp;
                        tmp = ((pixman_fixed_48_16_t)v.vector[0] << 16)/v.vector[2] - xoff;
@@ -4111,9 +4105,9 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                    }
                    x2 = x1 + cwidth;
                    y2 = y1 + cheight;
-                   
+
                    srtot = sgtot = sbtot = satot = 0;
-                   
+
                    for (y = y1; y < y2; y++) {
                        int ty = (pict->common.repeat == PIXMAN_REPEAT_NORMAL) ? MOD (y, pict->height) : y;
                        for (x = x1; x < x2; x++) {
@@ -4121,7 +4115,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                                int tx = (pict->common.repeat == PIXMAN_REPEAT_NORMAL) ? MOD (x, pict->width) : x;
                                if (pixman_region_contains_point (pict->common.src_clip, tx, ty, &box)) {
                                    uint32_t c = fetch(pict, tx, ty);
-                                   
+
                                    srtot += Red(c) * *p;
                                    sgtot += Green(c) * *p;
                                    sbtot += Blue(c) * *p;
@@ -4131,17 +4125,17 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
                            p++;
                        }
                    }
-                   
+
                    satot >>= 16;
                    srtot >>= 16;
                    sgtot >>= 16;
                    sbtot >>= 16;
-                   
+
                    if (satot < 0) satot = 0; else if (satot > 0xff) satot = 0xff;
                    if (srtot < 0) srtot = 0; else if (srtot > 0xff) srtot = 0xff;
                    if (sgtot < 0) sgtot = 0; else if (sgtot > 0xff) sgtot = 0xff;
                    if (sbtot < 0) sbtot = 0; else if (sbtot > 0xff) sbtot = 0xff;
-                   
+
                    *(buffer + i) = ((satot << 24) |
                                     (srtot << 16) |
                                     (sgtot <<  8) |
@@ -4153,7 +4147,7 @@ static void fbFetchTransformed(bits_image_t * pict, int x, int y, int width, uin
             v.vector[2] += unit.vector[2];
         }
     }
-    
+
     fbFinishAccess (pict->pDrawable);
 }
 
@@ -4163,14 +4157,14 @@ static void fbFetchExternalAlpha(bits_image_t * pict, int x, int y, int width, u
     int i;
     uint32_t _alpha_buffer[SCANLINE_BUFFER_LENGTH];
     uint32_t *alpha_buffer = _alpha_buffer;
-    
+
     if (!pict->common.alpha_map) {
         fbFetchTransformed (pict, x, y, width, buffer, mask, maskBits);
        return;
     }
     if (width > SCANLINE_BUFFER_LENGTH)
         alpha_buffer = (uint32_t *) pixman_malloc_ab (width, sizeof(uint32_t));
-    
+
     fbFetchTransformed(pict, x, y, width, buffer, mask, maskBits);
     fbFetchTransformed((bits_image_t *)pict->common.alpha_map, x - pict->common.alpha_origin.x,
                       y - pict->common.alpha_origin.y, width, alpha_buffer,
@@ -4185,7 +4179,7 @@ static void fbFetchExternalAlpha(bits_image_t * pict, int x, int y, int width, u
                | (div_255(Blue(*(buffer + i)) * a));
        }
     }
-    
+
     if (alpha_buffer != _alpha_buffer)
         free(alpha_buffer);
 }
@@ -4196,7 +4190,7 @@ static void fbStore(bits_image_t * pict, int x, int y, int width, uint32_t *buff
     uint32_t stride;
     storeProc store = storeProcForPicture(pict);
     const pixman_indexed_t * indexed = pict->indexed;
-    
+
     bits = pict->bits;
     stride = pict->rowstride;
     bits += y*stride;
@@ -4213,33 +4207,33 @@ static void fbStoreExternalAlpha(bits_image_t * pict, int x, int y, int width, u
     storeProc astore;
     const pixman_indexed_t * indexed = pict->indexed;
     const pixman_indexed_t * aindexed;
-    
+
     if (!pict->common.alpha_map) {
         fbStore(pict, x, y, width, buffer);
        return;
     }
-    
+
     store = storeProcForPicture(pict);
     astore = storeProcForPicture(pict->common.alpha_map);
     aindexed = pict->common.alpha_map->indexed;
-    
+
     ax = x;
     ay = y;
-    
+
     bits = pict->bits;
     stride = pict->rowstride;
-    
+
     alpha_bits = pict->common.alpha_map->bits;
     astride = pict->common.alpha_map->rowstride;
-    
+
     bits       += y*stride;
     alpha_bits += (ay - pict->common.alpha_origin.y)*astride;
-    
-    
+
+
     store((pixman_image_t *)pict, bits, buffer, x, width, indexed);
     astore((pixman_image_t *)pict->common.alpha_map,
           alpha_bits, buffer, ax - pict->common.alpha_origin.x, width, aindexed);
-    
+
     fbFinishAccess (pict->alpha_map->pDrawable);
     fbFinishAccess (pict->pDrawable);
 }
@@ -4265,7 +4259,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
     uint32_t *bits;
     uint32_t stride;
     int xoff, yoff;
-    
+
     if (data->op == PIXMAN_OP_CLEAR)
         fetchSrc = NULL;
     else if (IS_SOURCE_IMAGE (data->src))
@@ -4278,7 +4272,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
     else
     {
        bits_image_t *bits = (bits_image_t *)data->src;
-       
+
        if (bits->common.alpha_map)
        {
            fetchSrc = (scanFetchProc)fbFetchExternalAlpha;
@@ -4299,7 +4293,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
            fetchSrc = (scanFetchProc)fbFetchTransformed;
        }
     }
-    
+
     if (!data->mask || data->op == PIXMAN_OP_CLEAR)
     {
        fetchMask = NULL;
@@ -4316,7 +4310,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
        else
        {
            bits_image_t *bits = (bits_image_t *)data->mask;
-           
+
            if (bits->common.alpha_map)
            {
                fetchMask = (scanFetchProc)fbFetchExternalAlpha;
@@ -4333,12 +4327,12 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                fetchMask = (scanFetchProc)fbFetchTransformed;
        }
     }
-    
+
     if (data->dest->common.alpha_map)
     {
        fetchDest = (scanFetchProc)fbFetchExternalAlpha;
        store = (scanStoreProc)fbStoreExternalAlpha;
-       
+
        if (data->op == PIXMAN_OP_CLEAR || data->op == PIXMAN_OP_SRC)
            fetchDest = NULL;
     }
@@ -4346,7 +4340,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
     {
        fetchDest = (scanFetchProc)fbFetch;
        store = (scanStoreProc)fbStore;
-       
+
        switch (data->op)
        {
        case PIXMAN_OP_CLEAR:
@@ -4368,7 +4362,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
            break;
        }
     }
-    
+
     if (!store)
     {
        bits = data->dest->bits.bits;
@@ -4381,11 +4375,11 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
        stride = 0;
        xoff = yoff = 0;
     }
-    
+
     if (fetchSrc                  &&
        fetchMask                  &&
        data->mask                 &&
-       data->mask->common.type == BITS && 
+       data->mask->common.type == BITS &&
        data->mask->common.component_alpha &&
        PIXMAN_FORMAT_RGB (data->mask->bits.format))
     {
@@ -4393,7 +4387,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
        CombineFuncC compose = PIXMAN_COMPOSE_FUNCTIONS.combineC[data->op];
        if (!compose)
            return;
-       
+
        for (i = 0; i < data->height; ++i) {
            /* fill first half of scanline with source */
            if (fetchSrc)
@@ -4404,11 +4398,11 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                       source can be optimized */
                    fetchMask (data->mask, data->xMask, data->yMask + i,
                               data->width, mask_buffer, 0, 0);
-                   
+
                    if (maskClass == SOURCE_IMAGE_CLASS_HORIZONTAL)
                        fetchMask = NULL;
                }
-               
+
                if (srcClass == SOURCE_IMAGE_CLASS_HORIZONTAL)
                {
                    fetchSrc (data->src, data->xSrc, data->ySrc + i,
@@ -4427,17 +4421,17 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                fetchMask (data->mask, data->xMask, data->yMask + i,
                           data->width, mask_buffer, 0, 0);
            }
-           
+
            if (store)
            {
                /* fill dest into second half of scanline */
                if (fetchDest)
                    fetchDest (data->dest, data->xDest, data->yDest + i,
                               data->width, dest_buffer, 0, 0);
-               
+
                /* blend */
                compose (dest_buffer, src_buffer, mask_buffer, data->width);
-               
+
                /* write back */
                store (data->dest, data->xDest, data->yDest + i, data->width,
                       dest_buffer);
@@ -4457,10 +4451,10 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
        CombineFuncU compose = PIXMAN_COMPOSE_FUNCTIONS.combineU[data->op];
        if (!compose)
            return;
-       
+
        if (fetchMask)
            mask_buffer = dest_buffer + data->width;
-       
+
        for (i = 0; i < data->height; ++i) {
            /* fill first half of scanline with source */
            if (fetchSrc)
@@ -4471,16 +4465,16 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                       source can be optimized */
                    fetchMask (data->mask, data->xMask, data->yMask + i,
                               data->width, mask_buffer, 0, 0);
-                   
+
                    if (maskClass == SOURCE_IMAGE_CLASS_HORIZONTAL)
                        fetchMask = NULL;
                }
-               
+
                if (srcClass == SOURCE_IMAGE_CLASS_HORIZONTAL)
                {
                    fetchSrc (data->src, data->xSrc, data->ySrc + i,
                              data->width, src_buffer, 0, 0);
-                   
+
                    if (mask_buffer)
                    {
                        fbCombineInU (mask_buffer, src_buffer, data->width);
@@ -4488,7 +4482,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                    }
                    else
                        src_mask_buffer = src_buffer;
-                   
+
                    fetchSrc = NULL;
                }
                else
@@ -4496,12 +4490,12 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
                    fetchSrc (data->src, data->xSrc, data->ySrc + i,
                              data->width, src_buffer, mask_buffer,
                              0xff000000);
-                   
+
                    if (mask_buffer)
                        PIXMAN_COMPOSE_FUNCTIONS.combineMaskU (src_buffer,
                                                               mask_buffer,
                                                               data->width);
-                   
+
                    src_mask_buffer = src_buffer;
                }
            }
@@ -4509,22 +4503,22 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
            {
                fetchMask (data->mask, data->xMask, data->yMask + i,
                           data->width, mask_buffer, 0, 0);
-               
+
                fbCombineInU (mask_buffer, src_buffer, data->width);
-               
+
                src_mask_buffer = mask_buffer;
            }
-           
+
            if (store)
            {
                /* fill dest into second half of scanline */
                if (fetchDest)
                    fetchDest (data->dest, data->xDest, data->yDest + i,
                               data->width, dest_buffer, 0, 0);
-               
+
                /* blend */
                compose (dest_buffer, src_mask_buffer, data->width);
-               
+
                /* write back */
                store (data->dest, data->xDest, data->yDest + i, data->width,
                       dest_buffer);
@@ -4538,7 +4532,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data,
            }
        }
     }
-    
+
     if (!store)
        fbFinishAccess (data->dest->pDrawable);
 }
index c242aa4..c89a449 100644 (file)
@@ -37,16 +37,16 @@ rasterizeEdges (pixman_image_t  *image,
     uint32_t *buf = (image)->bits.bits;
     int32_t stride = (image)->bits.rowstride;
     int32_t width = (image)->bits.width;
-    
+
     line = buf + pixman_fixed_to_int (y) * stride;
-    
+
     for (;;)
     {
        pixman_fixed_t  lx;
        pixman_fixed_t      rx;
        int     lxi;
        int rxi;
-       
+
        /* clip X */
        lx = l->x;
        if (lx < 0)
@@ -54,15 +54,15 @@ rasterizeEdges (pixman_image_t  *image,
        rx = r->x;
        if (pixman_fixed_to_int (rx) >= width)
            rx = pixman_int_to_fixed (width);
-       
+
        /* Skip empty (or backwards) sections */
        if (rx > lx)
        {
-           
+
            /* Find pixel bounds for span */
            lxi = pixman_fixed_to_int (lx);
            rxi = pixman_fixed_to_int (rx);
-           
+
 #if N_BITS == 1
            {
                uint32_t  *a = line;
@@ -71,30 +71,30 @@ rasterizeEdges (pixman_image_t  *image,
                int         nmiddle;
                int         width = rxi - lxi;
                int         x = lxi;
-               
+
                a += x >> FB_SHIFT;
                x &= FB_MASK;
-               
+
                FbMaskBits (x, width, startmask, nmiddle, endmask);
                    if (startmask) {
-                       WRITE(a, READ(a) | startmask);
+                       WRITE(image, a, READ(image, a) | startmask);
                        a++;
                    }
                    while (nmiddle--)
-                       WRITE(a++, FB_ALLONES);
+                       WRITE(image, a++, FB_ALLONES);
                    if (endmask)
-                       WRITE(a, READ(a) | endmask);
+                       WRITE(image, a, READ(image, a) | endmask);
            }
 #else
            {
                DefineAlpha(line,lxi);
                int         lxs;
                int     rxs;
-               
+
                /* Sample coverage for edge pixels */
                lxs = RenderSamplesX (lx, N_BITS);
                rxs = RenderSamplesX (rx, N_BITS);
-               
+
                /* Add coverage across row */
                if (lxi == rxi)
                {
@@ -103,7 +103,7 @@ rasterizeEdges (pixman_image_t  *image,
                else
                {
                    int xi;
-                   
+
                    AddAlpha (N_X_FRAC(N_BITS) - lxs);
                    StepAlpha;
                    for (xi = lxi + 1; xi < rxi; xi++)
@@ -121,10 +121,10 @@ rasterizeEdges (pixman_image_t  *image,
            }
 #endif
        }
-       
+
        if (y == b)
            break;
-       
+
 #if N_BITS > 1
        if (pixman_fixed_frac (y) != Y_FRAC_LAST(N_BITS))
        {
index 24758c3..d9e2d9a 100644 (file)
 
 #define StepAlpha      ((__ap += __ao), (__ao ^= 1))
 
-#define AddAlpha(a) {                                          \
-       uint8_t   __o = READ(__ap);                             \
-       uint8_t   __a = (a) + Get4(__o, __ao);                  \
-       WRITE(__ap, Put4 (__o, __ao, __a | (0 - ((__a) >> 4))));        \
+#define AddAlpha(a) {                                                  \
+       uint8_t   __o = READ(image, __ap);                              \
+       uint8_t   __a = (a) + Get4(__o, __ao);                          \
+       WRITE(image, __ap, Put4 (__o, __ao, __a | (0 - ((__a) >> 4)))); \
     }
 
 #include "pixman-edge-imp.h"
@@ -100,7 +100,7 @@ clip255 (int x)
                                                                \
        while (i__--)                                           \
        {                                                       \
-           WRITE((buf__), clip255 (READ((buf__)) + (val__)));  \
+           WRITE(image, (buf__), clip255 (READ(image, (buf__)) + (val__)));    \
            (buf__)++;                                          \
        }                                                       \
     } while (0)
@@ -127,18 +127,18 @@ fbRasterizeEdges8 (pixman_image_t       *image,
     uint32_t  *line;
     int fill_start = -1, fill_end = -1;
     int fill_size = 0;
-    uint32_t *buf = (image)->bits.bits;                
-    int32_t stride = (image)->bits.rowstride;  
+    uint32_t *buf = (image)->bits.bits;
+    int32_t stride = (image)->bits.rowstride;
     int32_t width = (image)->bits.width;
-    
+
     line = buf + pixman_fixed_to_int (y) * stride;
-    
+
     for (;;)
     {
         uint8_t *ap = (uint8_t *) line;
        pixman_fixed_t  lx, rx;
        int     lxi, rxi;
-       
+
        /* clip X */
        lx = l->x;
        if (lx < 0)
@@ -146,32 +146,32 @@ fbRasterizeEdges8 (pixman_image_t       *image,
        rx = r->x;
        if (pixman_fixed_to_int (rx) >= width)
            rx = pixman_int_to_fixed (width);
-       
+
        /* Skip empty (or backwards) sections */
        if (rx > lx)
        {
             int lxs, rxs;
-           
+
            /* Find pixel bounds for span. */
            lxi = pixman_fixed_to_int (lx);
            rxi = pixman_fixed_to_int (rx);
-           
+
             /* Sample coverage for edge pixels */
             lxs = RenderSamplesX (lx, 8);
             rxs = RenderSamplesX (rx, 8);
-           
+
             /* Add coverage across row */
            if (lxi == rxi)
            {
-               WRITE(ap +lxi, clip255 (READ(ap + lxi) + rxs - lxs));
+               WRITE(image, ap +lxi, clip255 (READ(image, ap + lxi) + rxs - lxs));
            }
            else
            {
-               WRITE(ap + lxi, clip255 (READ(ap + lxi) + N_X_FRAC(8) - lxs));
-               
+               WRITE(image, ap + lxi, clip255 (READ(image, ap + lxi) + N_X_FRAC(8) - lxs));
+
                /* Move forward so that lxi/rxi is the pixel span */
                lxi++;
-               
+
                /* Don't bother trying to optimize the fill unless
                 * the span is longer than 4 pixels. */
                if (rxi - lxi > 4)
@@ -209,7 +209,7 @@ fbRasterizeEdges8 (pixman_image_t       *image,
                                add_saturate_8 (ap + lxi, N_X_FRAC(8),
                                                fill_start - lxi);
                            }
-                           
+
                            /* Update fill_end */
                            if (rxi < fill_end)
                            {
@@ -232,21 +232,21 @@ fbRasterizeEdges8 (pixman_image_t       *image,
                {
                    add_saturate_8 (ap + lxi, N_X_FRAC(8), rxi - lxi);
                }
-               
+
                /* Do not add in a 0 alpha here. This check is
                 * necessary to avoid a buffer overrun, (when rx
                 * is exactly on a pixel boundary). */
                if (rxs)
-                   WRITE(ap + rxi, clip255 (READ(ap + rxi) + rxs));
+                   WRITE(image, ap + rxi, clip255 (READ(image, ap + rxi) + rxs));
            }
        }
-       
+
        if (y == b) {
             /* We're done, make sure we clean up any remaining fill. */
             if (fill_start != fill_end) {
                if (fill_size == N_Y_FRAC(8))
                {
-                   MEMSET_WRAPPED (ap + fill_start, 0xff, fill_end - fill_start);
+                   MEMSET_WRAPPED (image, ap + fill_start, 0xff, fill_end - fill_start);
                }
                else
                {
@@ -256,7 +256,7 @@ fbRasterizeEdges8 (pixman_image_t       *image,
             }
            break;
         }
-       
+
        if (pixman_fixed_frac (y) != Y_FRAC_LAST(8))
        {
            RenderEdgeStepSmall (l);
@@ -272,7 +272,7 @@ fbRasterizeEdges8 (pixman_image_t       *image,
             {
                if (fill_size == N_Y_FRAC(8))
                {
-                   MEMSET_WRAPPED (ap + fill_start, 0xff, fill_end - fill_start);
+                   MEMSET_WRAPPED (image, ap + fill_start, 0xff, fill_end - fill_start);
                }
                else
                {
index 8c7be6d..5a752ce 100644 (file)
@@ -24,7 +24,7 @@
  *
  * Author:  Søren Sandmann (sandmann@redhat.com)
  * Minor Improvements: Nicholas Miell (nmiell@gmail.com)
- * MMX code paths for fbcompose.c by Lars Knoll (lars@trolltech.com) 
+ * MMX code paths for fbcompose.c by Lars Knoll (lars@trolltech.com)
  *
  * Based on work by Owen Taylor
  */
@@ -45,8 +45,8 @@
 
 #undef READ
 #undef WRITE
-#define READ(x) *(x)
-#define WRITE(ptr,v)   (*(ptr) = (v));
+#define READ(img,x) *(x)
+#define WRITE(img,ptr,v) (*(ptr) = (v));
 
 #define noVERBOSE
 
@@ -177,12 +177,12 @@ static inline __m64
 pix_multiply (__m64 a, __m64 b)
 {
     __m64 res;
-    
+
     res = _mm_mullo_pi16 (a, b);
     res = _mm_adds_pu16 (res, MC(4x0080));
     res = _mm_adds_pu16 (res, _mm_srli_pi16 (res, 8));
     res = _mm_srli_pi16 (res, 8);
-    
+
     return res;
 }
 
@@ -204,7 +204,7 @@ static inline __m64
 expand_alpha_rev (__m64 pixel)
 {
     return _mm_shuffle_pi16 (pixel, _MM_SHUFFLE(0, 0, 0, 0));
-}    
+}
 
 static inline __m64
 invert_colors (__m64 pixel)
@@ -218,7 +218,7 @@ static inline __m64
 expand_alpha (__m64 pixel)
 {
     __m64 t1, t2;
-    
+
     t1 = shift (pixel, -48);
     t2 = shift (t1, 16);
     t1 = _mm_or_si64 (t1, t2);
@@ -278,7 +278,7 @@ over_rev_non_pre (__m64 src, __m64 dest)
 {
     __m64 srca = expand_alpha (src);
     __m64 srcfaaa = _mm_or_si64 (srca, MC(full_alpha));
-    
+
     return over(pix_multiply(invert_colors(src), srcfaaa), srca, dest);
 }
 
@@ -331,14 +331,14 @@ store8888 (__m64 v)
 /* Expand 16 bits positioned at @pos (0-3) of a mmx register into
  *
  *    00RR00GG00BB
- * 
+ *
  * --- Expanding 565 in the low word ---
- * 
+ *
  * m = (m << (32 - 3)) | (m << (16 - 5)) | m;
  * m = m & (01f0003f001f);
  * m = m * (008404100840);
  * m = m >> 8;
- * 
+ *
  * Note the trick here - the top word is shifted by another nibble to
  * avoid it bumping into the middle word
  */
@@ -347,17 +347,17 @@ expand565 (__m64 pixel, int pos)
 {
     __m64 p = pixel;
     __m64 t1, t2;
-    
+
     /* move pixel to low 16 bit and zero the rest */
-    p = shift (shift (p, (3 - pos) * 16), -48); 
-    
+    p = shift (shift (p, (3 - pos) * 16), -48);
+
     t1 = shift (p, 36 - 11);
     t2 = shift (p, 16 - 5);
-    
+
     p = _mm_or_si64 (t1, p);
     p = _mm_or_si64 (t2, p);
     p = _mm_and_si64 (p, MC(565_rgb));
-    
+
     pixel = _mm_mullo_pi16 (p, MC(565_unpack_multiplier));
     return _mm_srli_pi16 (pixel, 8);
 }
@@ -377,15 +377,15 @@ pack565 (__m64 pixel, __m64 target, int pos)
     __m64 p = pixel;
     __m64 t = target;
     __m64 r, g, b;
-    
+
     r = _mm_and_si64 (p, MC(565_r));
     g = _mm_and_si64 (p, MC(565_g));
     b = _mm_and_si64 (p, MC(565_b));
-    
+
     r = shift (r, - (32 - 8) + pos * 16);
     g = shift (g, - (16 - 3) + pos * 16);
     b = shift (b, - (0  + 3) + pos * 16);
-    
+
     if (pos == 0)
        t = _mm_and_si64 (t, MC(mask_0));
     else if (pos == 1)
@@ -394,10 +394,10 @@ pack565 (__m64 pixel, __m64 target, int pos)
        t = _mm_and_si64 (t, MC(mask_2));
     else if (pos == 3)
        t = _mm_and_si64 (t, MC(mask_3));
-    
+
     p = _mm_or_si64 (r, t);
     p = _mm_or_si64 (g, p);
-    
+
     return _mm_or_si64 (b, p);
 }
 
@@ -453,7 +453,7 @@ static FASTCALL void
 mmxCombineOverU (uint32_t *dest, const uint32_t *src, int width)
 {
     const uint32_t *end = dest + width;
-    
+
     while (dest < end) {
        uint32_t ssrc = *src;
        uint32_t a = ssrc >> 24;
@@ -691,9 +691,9 @@ mmxCombineOverC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
         __m64 s = load8888(*src);
         __m64 d = load8888(*dest);
         __m64 sa = expand_alpha(s);
-       
+
        *dest = store8888(in_over (s, sa, a, d));
-       
+
         ++src;
         ++dest;
         ++mask;
@@ -712,7 +712,7 @@ mmxCombineOverReverseC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width
         __m64 da = expand_alpha(d);
 
        *dest = store8888(over (d, da, in (s, a)));
-       
+
         ++src;
         ++dest;
         ++mask;
@@ -808,7 +808,7 @@ mmxCombineAtopC (uint32_t *dest, uint32_t *src, uint32_t *mask, int width)
         __m64 s = load8888(*src);
         __m64 d = load8888(*dest);
         __m64 da = expand_alpha(d);
-        __m64 sa = expand_alpha(s); 
+        __m64 sa = expand_alpha(s);
         s = pix_multiply(s, a);
         a = pix_multiply(a, sa);
         a = negate(a);
@@ -914,7 +914,7 @@ void fbComposeSetupMMX(void)
         pixman_composeFunctions.combineC[PIXMAN_OP_ADD] = mmxCombineAddC;
 
         pixman_composeFunctions.combineMaskU = mmxCombineMaskU;
-    } 
+    }
 }
 
 
@@ -939,62 +939,62 @@ fbCompositeSolid_nx8888mmx (pixman_op_t op,
     uint16_t   w;
     int        dstStride;
     __m64      vsrc, vsrca;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     if (src >> 24 == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
-    
+
     vsrc = load8888 (src);
     vsrca = expand_alpha (vsrc);
-    
+
     while (height--)
     {
        dst = dstLine;
        dstLine += dstStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            *dst = store8888(over(vsrc, vsrca, load8888(*dst)));
-           
+
            w--;
            dst++;
        }
-       
+
        while (w >= 2)
        {
            __m64 vdest;
            __m64 dest0, dest1;
-           
+
            vdest = *(__m64 *)dst;
-           
+
            dest0 = over(vsrc, vsrca, expand8888(vdest, 0));
            dest1 = over(vsrc, vsrca, expand8888(vdest, 1));
-           
+
            *(__m64 *)dst = pack8888(dest0, dest1);
-           
+
            dst += 2;
            w -= 2;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w)
        {
            *dst = store8888(over(vsrc, vsrca, load8888(*dst)));
-           
+
            w--;
            dst++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -1017,69 +1017,69 @@ fbCompositeSolid_nx0565mmx (pixman_op_t op,
     uint16_t   w;
     int        dstStride;
     __m64      vsrc, vsrca;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     if (src >> 24 == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint16_t, dstStride, dstLine, 1);
-    
+
     vsrc = load8888 (src);
     vsrca = expand_alpha (vsrc);
-    
+
     while (height--)
     {
        dst = dstLine;
        dstLine += dstStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
            vdest = pack565(over(vsrc, vsrca, vdest), vdest, 0);
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
        }
-       
+
        while (w >= 4)
        {
            __m64 vdest;
-           
+
            vdest = *(__m64 *)dst;
-           
+
            vdest = pack565 (over(vsrc, vsrca, expand565(vdest, 0)), vdest, 0);
            vdest = pack565 (over(vsrc, vsrca, expand565(vdest, 1)), vdest, 1);
            vdest = pack565 (over(vsrc, vsrca, expand565(vdest, 2)), vdest, 2);
            vdest = pack565 (over(vsrc, vsrca, expand565(vdest, 3)), vdest, 3);
-           
+
            *(__m64 *)dst = vdest;
-           
+
            dst += 4;
            w -= 4;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w)
        {
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
            vdest = pack565(over(vsrc, vsrca, vdest), vdest, 0);
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -1102,87 +1102,87 @@ fbCompositeSolidMask_nx8888x8888Cmmx (pixman_op_t op,
     uint32_t   *maskLine;
     int        dstStride, maskStride;
     __m64      vsrc, vsrca;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     srca = src >> 24;
     if (srca == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint32_t, maskStride, maskLine, 1);
-    
+
     vsrc = load8888(src);
     vsrca = expand_alpha(vsrc);
-    
+
     while (height--)
     {
        int twidth = width;
        uint32_t *p = (uint32_t *)maskLine;
        uint32_t *q = (uint32_t *)dstLine;
-       
+
        while (twidth && (unsigned long)q & 7)
        {
            uint32_t m = *(uint32_t *)p;
-           
+
            if (m)
            {
                __m64 vdest = load8888(*q);
                vdest = in_over(vsrc, vsrca, load8888(m), vdest);
                *q = store8888(vdest);
            }
-           
+
            twidth--;
            p++;
            q++;
        }
-       
+
        while (twidth >= 2)
        {
            uint32_t m0, m1;
            m0 = *p;
            m1 = *(p + 1);
-           
+
            if (m0 | m1)
            {
                __m64 dest0, dest1;
                __m64 vdest = *(__m64 *)q;
-               
+
                dest0 = in_over(vsrc, vsrca, load8888(m0),
                                expand8888 (vdest, 0));
                dest1 = in_over(vsrc, vsrca, load8888(m1),
                                expand8888 (vdest, 1));
-               
+
                *(__m64 *)q = pack8888(dest0, dest1);
            }
-           
+
            p += 2;
            q += 2;
            twidth -= 2;
        }
-       
+
        while (twidth)
        {
            uint32_t m = *(uint32_t *)p;
-           
+
            if (m)
            {
                __m64 vdest = load8888(*q);
                vdest = in_over(vsrc, vsrca, load8888(m), vdest);
                *q = store8888(vdest);
            }
-           
+
            twidth--;
            p++;
            q++;
        }
-       
+
        dstLine += dstStride;
        maskLine += maskStride;
     }
-    
+
     _mm_empty();
 }
 
@@ -1332,7 +1332,7 @@ fbCompositeSrc_x888xnx8888mmx (pixman_op_t op,
            __m64 vd5 = *(__m64 *)(dst + 10);
            __m64 vd6 = *(__m64 *)(dst + 12);
            __m64 vd7 = *(__m64 *)(dst + 14);
-           
+
            __m64 vs0 = *(__m64 *)(src + 0);
            __m64 vs1 = *(__m64 *)(src + 2);
            __m64 vs2 = *(__m64 *)(src + 4);
@@ -1341,27 +1341,27 @@ fbCompositeSrc_x888xnx8888mmx (pixman_op_t op,
            __m64 vs5 = *(__m64 *)(src + 10);
            __m64 vs6 = *(__m64 *)(src + 12);
            __m64 vs7 = *(__m64 *)(src + 14);
-           
+
            vd0 = pack8888 (
                in_over (expand8888 (vs0, 0), srca, vmask, expand8888 (vd0, 0)),
                in_over (expand8888 (vs0, 1), srca, vmask, expand8888 (vd0, 1)));
-           
+
            vd1 = pack8888 (
                in_over (expand8888 (vs1, 0), srca, vmask, expand8888 (vd1, 0)),
                in_over (expand8888 (vs1, 1), srca, vmask, expand8888 (vd1, 1)));
-           
+
            vd2 = pack8888 (
                in_over (expand8888 (vs2, 0), srca, vmask, expand8888 (vd2, 0)),
                in_over (expand8888 (vs2, 1), srca, vmask, expand8888 (vd2, 1)));
-           
+
            vd3 = pack8888 (
                in_over (expand8888 (vs3, 0), srca, vmask, expand8888 (vd3, 0)),
                in_over (expand8888 (vs3, 1), srca, vmask, expand8888 (vd3, 1)));
-           
+
            vd4 = pack8888 (
                in_over (expand8888 (vs4, 0), srca, vmask, expand8888 (vd4, 0)),
                in_over (expand8888 (vs4, 1), srca, vmask, expand8888 (vd4, 1)));
-           
+
            vd5 = pack8888 (
                in_over (expand8888 (vs5, 0), srca, vmask, expand8888 (vd5, 0)),
                in_over (expand8888 (vs5, 1), srca, vmask, expand8888 (vd5, 1)));
@@ -1387,7 +1387,7 @@ fbCompositeSrc_x888xnx8888mmx (pixman_op_t op,
            dst += 16;
            src += 16;
        }
-       
+
        while (w)
        {
            __m64 s = load8888 (*src | 0xff000000);
@@ -1424,9 +1424,9 @@ fbCompositeSrc_8888x8888mmx (pixman_op_t op,
     int        dstStride, srcStride;
     uint8_t     a;
     uint16_t   w;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
 
@@ -1453,7 +1453,7 @@ fbCompositeSrc_8888x8888mmx (pixman_op_t op,
            dst++;
        }
     }
-    _mm_empty(); 
+    _mm_empty();
 }
 
 void
@@ -1474,17 +1474,17 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
     uint32_t   *srcLine, *src;
     int        dstStride, srcStride;
     uint16_t   w;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint16_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
-    
+
 #if 0
     /* FIXME */
     assert (pSrc->pDrawable == pMask->pDrawable);
 #endif
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -1492,26 +1492,26 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            __m64 vsrc = load8888 (*src);
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
-           
+
            vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
-           
+
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
            src++;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w >= 4)
        {
            __m64 vsrc0, vsrc1, vsrc2, vsrc3;
@@ -1523,12 +1523,12 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
            vsrc3 = load8888(*(src + 3));
 
            vdest = *(__m64 *)dst;
-           
+
            vdest = pack565(over(vsrc0, expand_alpha(vsrc0), expand565(vdest, 0)), vdest, 0);
            vdest = pack565(over(vsrc1, expand_alpha(vsrc1), expand565(vdest, 1)), vdest, 1);
            vdest = pack565(over(vsrc2, expand_alpha(vsrc2), expand565(vdest, 2)), vdest, 2);
            vdest = pack565(over(vsrc3, expand_alpha(vsrc3), expand565(vdest, 3)), vdest, 3);
-           
+
            *(__m64 *)dst = vdest;
 
            w -= 4;
@@ -1537,23 +1537,23 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
        }
 
        CHECKPOINT();
-       
+
        while (w)
        {
            __m64 vsrc = load8888 (*src);
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
-           
+
            vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
-           
+
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
            src++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -1578,23 +1578,23 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
     uint16_t   w;
     __m64      vsrc, vsrca;
     ullong     srcsrc;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     srca = src >> 24;
     if (srca == 0)
        return;
-    
+
     srcsrc = (unsigned long long)src << 32 | src;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint8_t, maskStride, maskLine, 1);
-    
+
     vsrc = load8888 (src);
     vsrca = expand_alpha (vsrc);
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -1602,32 +1602,32 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
        mask = maskLine;
        maskLine += maskStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            ullong m = *mask;
-           
+
            if (m)
            {
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), load8888(*dst));
                *dst = store8888(vdest);
            }
-           
+
            w--;
            mask++;
            dst++;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w >= 2)
        {
            ullong m0, m1;
            m0 = *mask;
            m1 = *(mask + 1);
-           
+
            if (srca == 0xff && (m0 & m1) == 0xff)
            {
                *(unsigned long long *)dst = srcsrc;
@@ -1636,39 +1636,39 @@ fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
            {
                __m64 vdest;
                __m64 dest0, dest1;
-               
+
                vdest = *(__m64 *)dst;
-               
+
                dest0 = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m0), expand8888(vdest, 0));
                dest1 = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m1), expand8888(vdest, 1));
-               
+
                *(__m64 *)dst = pack8888(dest0, dest1);
            }
-           
+
            mask += 2;
            dst += 2;
            w -= 2;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w)
        {
            ullong m = *mask;
-           
+
            if (m)
            {
                __m64 vdest = load8888(*dst);
                vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), vdest);
                *dst = store8888(vdest);
            }
-           
+
            w--;
            mask++;
            dst++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -1689,13 +1689,13 @@ pixman_fill_mmx (uint32_t *bits,
 #ifdef __GNUC__
     __m64      v1, v2, v3, v4, v5, v6, v7;
 #endif
-    
+
     if (bpp == 16 && (xor >> 16 != (xor & 0xffff)))
        return FALSE;
-    
+
     if (bpp != 16 && bpp != 32)
        return FALSE;
-    
+
     if (bpp == 16)
     {
        stride = stride * sizeof (uint32_t) / 2;
@@ -1710,10 +1710,10 @@ pixman_fill_mmx (uint32_t *bits,
        byte_width = 4 * width;
        stride *= 4;
     }
-    
+
     fill = ((ullong)xor << 32) | xor;
     vfill = (__m64)fill;
-    
+
 #ifdef __GNUC__
     __asm__ (
        "movq           %7,     %0\n"
@@ -1727,25 +1727,25 @@ pixman_fill_mmx (uint32_t *bits,
          "=y" (v4), "=y" (v5), "=y" (v6), "=y" (v7)
        : "y" (vfill));
 #endif
-    
+
     while (height--)
     {
        int w;
        uint8_t *d = byte_line;
        byte_line += stride;
        w = byte_width;
-       
+
        while (w >= 2 && ((unsigned long)d & 3))
        {
            *(uint16_t *)d = xor;
            w -= 2;
            d += 2;
        }
-       
+
        while (w >= 4 && ((unsigned long)d & 7))
        {
            *(uint32_t *)d = xor;
-           
+
            w -= 4;
            d += 4;
        }
@@ -1776,15 +1776,15 @@ pixman_fill_mmx (uint32_t *bits,
            *(__m64*) (d + 40) = vfill;
            *(__m64*) (d + 48) = vfill;
            *(__m64*) (d + 56) = vfill;
-#endif    
+#endif
            w -= 64;
            d += 64;
        }
-       
+
        while (w >= 4)
        {
            *(uint32_t *)d = xor;
-           
+
            w -= 4;
            d += 4;
        }
@@ -1795,7 +1795,7 @@ pixman_fill_mmx (uint32_t *bits,
            d += 2;
        }
     }
-    
+
     _mm_empty();
     return TRUE;
 }
@@ -1952,26 +1952,26 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
     uint16_t   w;
     __m64      vsrc, vsrca;
     unsigned long long srcsrcsrcsrc, src16;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     srca = src >> 24;
     if (srca == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint16_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint8_t, maskStride, maskLine, 1);
-    
+
     vsrc = load8888 (src);
     vsrca = expand_alpha (vsrc);
-    
+
     src16 = (ullong)pack565(vsrc, _mm_setzero_si64(), 0);
-    
+
     srcsrcsrcsrc = (ullong)src16 << 48 | (ullong)src16 << 32 |
        (ullong)src16 << 16 | (ullong)src16;
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -1979,13 +1979,13 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
        mask = maskLine;
        maskLine += maskStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            ullong m = *mask;
-           
+
            if (m)
            {
                ullong d = *dst;
@@ -1993,14 +1993,14 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), expand565(vd, 0));
                *dst = (ullong)pack565(vdest, _mm_setzero_si64(), 0);
            }
-           
+
            w--;
            mask++;
            dst++;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w >= 4)
        {
            ullong m0, m1, m2, m3;
@@ -2008,7 +2008,7 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
            m1 = *(mask + 1);
            m2 = *(mask + 2);
            m3 = *(mask + 3);
-           
+
            if (srca == 0xff && (m0 & m1 & m2 & m3) == 0xff)
            {
                *(unsigned long long *)dst = srcsrcsrcsrc;
@@ -2017,9 +2017,9 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
            {
                __m64 vdest;
                __m64 vm0, vm1, vm2, vm3;
-               
+
                vdest = *(__m64 *)dst;
-               
+
                vm0 = (__m64)m0;
                vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm0), expand565(vdest, 0)), vdest, 0);
                vm1 = (__m64)m1;
@@ -2028,21 +2028,21 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
                vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm2), expand565(vdest, 2)), vdest, 2);
                vm3 = (__m64)m3;
                vdest = pack565(in_over(vsrc, vsrca, expand_alpha_rev(vm3), expand565(vdest, 3)), vdest, 3);
-               
+
                *(__m64 *)dst = vdest;
            }
-           
+
            w -= 4;
            mask += 4;
            dst += 4;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w)
        {
            ullong m = *mask;
-           
+
            if (m)
            {
                ullong d = *dst;
@@ -2050,13 +2050,13 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev ((__m64)m), expand565(vd, 0));
                *dst = (ullong)pack565(vdest, _mm_setzero_si64(), 0);
            }
-           
+
            w--;
            mask++;
            dst++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -2078,17 +2078,17 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
     uint32_t   *srcLine, *src;
     int        dstStride, srcStride;
     uint16_t   w;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint16_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
-    
+
 #if 0
     /* FIXME */
     assert (pSrc->pDrawable == pMask->pDrawable);
 #endif
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -2096,41 +2096,41 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        CHECKPOINT();
-       
+
        while (w && (unsigned long)dst & 7)
        {
            __m64 vsrc = load8888 (*src);
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
-           
+
            vdest = pack565(over_rev_non_pre(vsrc, vdest), vdest, 0);
-           
+
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
            src++;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w >= 4)
        {
            uint32_t s0, s1, s2, s3;
            unsigned char a0, a1, a2, a3;
-           
+
            s0 = *src;
            s1 = *(src + 1);
            s2 = *(src + 2);
            s3 = *(src + 3);
-           
+
            a0 = (s0 >> 24);
            a1 = (s1 >> 24);
            a2 = (s2 >> 24);
            a3 = (s3 >> 24);
-           
+
            if ((a0 & a1 & a2 & a3) == 0xFF)
            {
                __m64 vdest;
@@ -2138,44 +2138,44 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
                vdest = pack565(invert_colors(load8888(s1)), vdest, 1);
                vdest = pack565(invert_colors(load8888(s2)), vdest, 2);
                vdest = pack565(invert_colors(load8888(s3)), vdest, 3);
-               
+
                *(__m64 *)dst = vdest;
            }
            else if (a0 | a1 | a2 | a3)
            {
                __m64 vdest = *(__m64 *)dst;
-               
+
                vdest = pack565(over_rev_non_pre(load8888(s0), expand565(vdest, 0)), vdest, 0);
                vdest = pack565(over_rev_non_pre(load8888(s1), expand565(vdest, 1)), vdest, 1);
                vdest = pack565(over_rev_non_pre(load8888(s2), expand565(vdest, 2)), vdest, 2);
                vdest = pack565(over_rev_non_pre(load8888(s3), expand565(vdest, 3)), vdest, 3);
-               
+
                *(__m64 *)dst = vdest;
            }
-           
+
            w -= 4;
            dst += 4;
            src += 4;
        }
-       
+
        CHECKPOINT();
-       
+
        while (w)
        {
            __m64 vsrc = load8888 (*src);
            ullong d = *dst;
            __m64 vdest = expand565 ((__m64)d, 0);
-           
+
            vdest = pack565(over_rev_non_pre(vsrc, vdest), vdest, 0);
-           
+
            *dst = (ullong)vdest;
-           
+
            w--;
            dst++;
            src++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -2199,17 +2199,17 @@ fbCompositeSrc_8888RevNPx8888mmx (pixman_op_t op,
     uint32_t   *srcLine, *src;
     int        dstStride, srcStride;
     uint16_t   w;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
-    
+
 #if 0
     /* FIXME */
     assert (pSrc->pDrawable == pMask->pDrawable);
 #endif
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -2217,66 +2217,66 @@ fbCompositeSrc_8888RevNPx8888mmx (pixman_op_t op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        while (w && (unsigned long)dst & 7)
        {
            __m64 s = load8888 (*src);
            __m64 d = load8888 (*dst);
-           
+
            *dst = store8888 (over_rev_non_pre (s, d));
-           
+
            w--;
            dst++;
            src++;
        }
-       
+
        while (w >= 2)
        {
            ullong s0, s1;
            unsigned char a0, a1;
            __m64 d0, d1;
-           
+
            s0 = *src;
            s1 = *(src + 1);
-           
+
            a0 = (s0 >> 24);
            a1 = (s1 >> 24);
-           
+
            if ((a0 & a1) == 0xFF)
            {
                d0 = invert_colors(load8888(s0));
                d1 = invert_colors(load8888(s1));
-               
+
                *(__m64 *)dst = pack8888 (d0, d1);
            }
            else if (a0 | a1)
            {
                __m64 vdest = *(__m64 *)dst;
-               
+
                d0 = over_rev_non_pre (load8888(s0), expand8888 (vdest, 0));
                d1 = over_rev_non_pre (load8888(s1), expand8888 (vdest, 1));
-               
+
                *(__m64 *)dst = pack8888 (d0, d1);
            }
-           
+
            w -= 2;
            dst += 2;
            src += 2;
        }
-       
+
        while (w)
        {
            __m64 s = load8888 (*src);
            __m64 d = load8888 (*dst);
-           
+
            *dst = store8888 (over_rev_non_pre (s, d));
-           
+
            w--;
            dst++;
            src++;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -2299,31 +2299,31 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
     uint32_t   *maskLine;
     int        dstStride, maskStride;
     __m64  vsrc, vsrca;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
-    
+
     srca = src >> 24;
     if (srca == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint16_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint32_t, maskStride, maskLine, 1);
-    
+
     vsrc = load8888 (src);
     vsrca = expand_alpha (vsrc);
-    
+
     while (height--)
     {
        int twidth = width;
        uint32_t *p = (uint32_t *)maskLine;
        uint16_t *q = (uint16_t *)dstLine;
-       
+
        while (twidth && ((unsigned long)q & 7))
        {
            uint32_t m = *(uint32_t *)p;
-           
+
            if (m)
            {
                ullong d = *q;
@@ -2331,41 +2331,41 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
                vdest = pack565 (in_over (vsrc, vsrca, load8888 (m), vdest), vdest, 0);
                *q = (ullong)vdest;
            }
-           
+
            twidth--;
            p++;
            q++;
        }
-       
+
        while (twidth >= 4)
        {
            uint32_t m0, m1, m2, m3;
-           
+
            m0 = *p;
            m1 = *(p + 1);
            m2 = *(p + 2);
            m3 = *(p + 3);
-           
+
            if ((m0 | m1 | m2 | m3))
            {
                __m64 vdest = *(__m64 *)q;
-               
+
                vdest = pack565(in_over(vsrc, vsrca, load8888(m0), expand565(vdest, 0)), vdest, 0);
                vdest = pack565(in_over(vsrc, vsrca, load8888(m1), expand565(vdest, 1)), vdest, 1);
                vdest = pack565(in_over(vsrc, vsrca, load8888(m2), expand565(vdest, 2)), vdest, 2);
                vdest = pack565(in_over(vsrc, vsrca, load8888(m3), expand565(vdest, 3)), vdest, 3);
-               
+
                *(__m64 *)q = vdest;
            }
            twidth -= 4;
            p += 4;
            q += 4;
        }
-       
+
        while (twidth)
        {
            uint32_t m;
-           
+
            m = *(uint32_t *)p;
            if (m)
            {
@@ -2374,16 +2374,16 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
                vdest = pack565 (in_over(vsrc, vsrca, load8888(m), vdest), vdest, 0);
                *q = (ullong)vdest;
            }
-           
+
            twidth--;
            p++;
            q++;
        }
-       
+
        maskLine += maskStride;
        dstLine += dstStride;
     }
-    
+
     _mm_empty ();
 }
 
@@ -2633,12 +2633,12 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
     uint16_t   w;
     uint8_t    s, d;
     uint16_t   t;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pSrc, xSrc, ySrc, uint8_t, srcStride, srcLine, 1);
     fbComposeGetStart (pDst, xDst, yDst, uint8_t, dstStride, dstLine, 1);
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -2646,7 +2646,7 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        while (w && (unsigned long)dst & 7)
        {
            s = *src;
@@ -2654,12 +2654,12 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
            t = d + s;
            s = t | (0 - (t >> 8));
            *dst = s;
-           
+
            dst++;
            src++;
            w--;
        }
-       
+
        while (w >= 8)
        {
            *(__m64*)dst = _mm_adds_pu8(*(__m64*)src, *(__m64*)dst);
@@ -2667,7 +2667,7 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
            src += 8;
            w -= 8;
        }
-       
+
        while (w)
        {
            s = *src;
@@ -2675,13 +2675,13 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
            t = d + s;
            s = t | (0 - (t >> 8));
            *dst = s;
-           
+
            dst++;
            src++;
            w--;
        }
     }
-    
+
     _mm_empty();
 }
 
@@ -2703,12 +2703,12 @@ fbCompositeSrcAdd_8888x8888mmx (pixman_op_t     op,
     uint32_t   *srcLine, *src;
     int        dstStride, srcStride;
     uint16_t   w;
-    
+
     CHECKPOINT();
-    
+
     fbComposeGetStart (pSrc, xSrc, ySrc, uint32_t, srcStride, srcLine, 1);
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -2716,7 +2716,7 @@ fbCompositeSrcAdd_8888x8888mmx (pixman_op_t       op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        while (w && (unsigned long)dst & 7)
        {
            *dst = _mm_cvtsi64_si32(_mm_adds_pu8(_mm_cvtsi32_si64(*src),
@@ -2725,7 +2725,7 @@ fbCompositeSrcAdd_8888x8888mmx (pixman_op_t       op,
            src++;
            w--;
        }
-       
+
        while (w >= 2)
        {
            *(ullong*)dst = (ullong) _mm_adds_pu8(*(__m64*)src, *(__m64*)dst);
@@ -2733,19 +2733,19 @@ fbCompositeSrcAdd_8888x8888mmx (pixman_op_t     op,
            src += 2;
            w -= 2;
        }
-       
+
        if (w)
        {
            *dst = _mm_cvtsi64_si32(_mm_adds_pu8(_mm_cvtsi32_si64(*src),
                                                 _mm_cvtsi32_si64(*dst)));
-           
+
        }
     }
-    
+
     _mm_empty();
 }
 
-pixman_bool_t 
+pixman_bool_t
 pixman_blt_mmx (uint32_t *src_bits,
                uint32_t *dst_bits,
                int src_stride,
@@ -2759,10 +2759,10 @@ pixman_blt_mmx (uint32_t *src_bits,
     uint8_t *  src_bytes;
     uint8_t *  dst_bytes;
     int                byte_width;
-    
+
     if (src_bpp != dst_bpp)
        return FALSE;
-    
+
     if (src_bpp == 16)
     {
        src_stride = src_stride * sizeof (uint32_t) / 2;
@@ -2792,7 +2792,7 @@ pixman_blt_mmx (uint32_t *src_bits,
        src_bytes += src_stride;
        dst_bytes += dst_stride;
        w = byte_width;
-       
+
        while (w >= 2 && ((unsigned long)d & 3))
        {
            *(uint16_t *)d = *(uint16_t *)s;
@@ -2800,16 +2800,16 @@ pixman_blt_mmx (uint32_t *src_bits,
            s += 2;
            d += 2;
        }
-       
+
        while (w >= 4 && ((unsigned long)d & 7))
        {
            *(uint32_t *)d = *(uint32_t *)s;
-           
+
            w -= 4;
            s += 4;
            d += 4;
        }
-       
+
        while (w >= 64)
        {
 #ifdef __GNUC__
@@ -2853,8 +2853,8 @@ pixman_blt_mmx (uint32_t *src_bits,
            *(__m64 *)(d + 40) = v5;
            *(__m64 *)(d + 48) = v6;
            *(__m64 *)(d + 56) = v7;
-#endif     
-           
+#endif
+
            w -= 64;
            s += 64;
            d += 64;
@@ -2875,7 +2875,7 @@ pixman_blt_mmx (uint32_t *src_bits,
            d += 2;
        }
     }
-    
+
     _mm_empty();
 
     return TRUE;
@@ -2960,7 +2960,7 @@ fbCompositeOver_x888x8x8888mmx (pixman_op_t      op,
                    *dst = store8888 (vdest);
                }
            }
-           
+
            mask++;
            dst++;
            src++;
index c7d73fc..d007e4b 100644 (file)
@@ -34,8 +34,8 @@
 
 #undef READ
 #undef WRITE
-#define READ(x) (*(x))
-#define WRITE(ptr,v) ((*(ptr)) = (v))
+#define READ(img,x) (*(x))
+#define WRITE(img,ptr,v) ((*(ptr)) = (v))
 
 typedef void (* CompositeFunc) (pixman_op_t,
                                pixman_image_t *, pixman_image_t *, pixman_image_t *,
@@ -127,24 +127,24 @@ fbCompositeOver_x888x8x8888 (pixman_op_t      op,
        w = width;
        while (w--)
        {
-           m = READ(mask++);
+           m = READ(pMask, mask++);
            if (m)
            {
-               s = READ(src) | 0xff000000;
+               s = READ(pSrc, src) | 0xff000000;
 
                if (m == 0xff)
-                   WRITE (dst, s);
+                   WRITE(pDst, dst, s);
                else
                {
                    d = fbIn (s, m);
-                   WRITE(dst, fbOver (d, READ(dst)));
+                   WRITE(pDst, dst, fbOver (d, READ(pDst, dst)));
                }
            }
            src++;
            dst++;
        }
     }
-    
+
     fbFinishAccess (pMask->pDrawable);
     fbFinishAccess (pDst->pDrawable);
 }
@@ -169,12 +169,12 @@ fbCompositeSolidMaskIn_nx8x8 (pixman_op_t      op,
     int        dstStride, maskStride;
     uint16_t   w;
     uint16_t    t;
-    
+
     fbComposeGetSolid(iSrc, src, iDst->bits.format);
 
     dstMask = FbFullMask (PIXMAN_FORMAT_DEPTH (iDst->bits.format));
     srca = src >> 24;
-    
+
     fbComposeGetStart (iDst, xDst, yDst, uint8_t, dstStride, dstLine, 1);
     fbComposeGetStart (iMask, xMask, yMask, uint8_t, maskStride, maskLine, 1);
 
@@ -251,10 +251,10 @@ fbCompositeSrcIn_8x8 (pixman_op_t      op,
     uint16_t   w;
     uint8_t    s;
     uint16_t   t;
-    
+
     fbComposeGetStart (iSrc, xSrc, ySrc, uint8_t, srcStride, srcLine, 1);
     fbComposeGetStart (iDst, xDst, yDst, uint8_t, dstStride, dstLine, 1);
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -262,7 +262,7 @@ fbCompositeSrcIn_8x8 (pixman_op_t      op,
        src = srcLine;
        srcLine += srcStride;
        w = width;
-       
+
        while (w--)
        {
            s = *src++;
@@ -305,10 +305,10 @@ fbCompositeSolidMask_nx8x8888 (pixman_op_t      op,
     srca = src >> 24;
     if (src == 0)
        return;
-    
+
     fbComposeGetStart (pDst, xDst, yDst, uint32_t, dstStride, dstLine, 1);
     fbComposeGetStart (pMask, xMask, yMask, uint8_t, maskStride, maskLine, 1);
-    
+
     while (height--)
     {
        dst = dstLine;
@@ -316,26 +316,26 @@ fbCompositeSolidMask_nx8x8888 (pixman_op_t      op,
        mask = maskLine;
        maskLine += maskStride;
        w = width;
-       
+
        while (w--)
        {
-           m = READ(mask++);
+           m = READ(pMask, mask++);
            if (m == 0xff)
            {
                if (srca == 0xff)
-                   WRITE(dst, src & dstMask);
+                   WRITE(pDst, dst, src & dstMask);
                else
-                   WRITE(dst, fbOver (src, READ(dst)) & dstMask);
+                   WRITE(pDst, dst, fbOver (src, READ(pDst, dst)) & dstMask);
            }
            else if (m)
            {
                d = fbIn (src, m);
-               WRITE(dst, fbOver (d, READ(dst)) & dstMask);
+               WRITE(pDst, dst, fbOver (d, READ(pDst, dst)) & dstMask);
            }
            dst++;
        }
     }
-    
+
     fbFinishAccess (pMask->pDrawable);
     fbFinishAccess (pDst->pDrawable);
 }
@@ -381,17 +381,17 @@ fbCompositeSolidMask_nx8888x8888C (pixman_op_t op,
 
        while (w--)
        {
-           ma = READ(mask++);
+           ma = READ(pMask, mask++);
            if (ma == 0xffffffff)
            {
                if (srca == 0xff)
-                   WRITE(dst, src & dstMask);
+                   WRITE(pDst, dst, src & dstMask);
                else
-                   WRITE(dst, fbOver (src, READ(dst)) & dstMask);
+                   WRITE(pDst, dst, fbOver (src, READ(pDst, dst)) & dstMask);
            }
            else if (ma)
            {
-               d = READ(dst);
+               d = READ(pDst, dst);
 #define FbInOverC(src,srca,msk,dst,i,result) { \
     uint16_t  __a = FbGet8(msk,i); \
     uint32_t  __t, __ta; \
@@ -406,7 +406,7 @@ fbCompositeSolidMask_nx8888x8888C (pixman_op_t op,
                FbInOverC (src, srca, ma, d, 8, n);
                FbInOverC (src, srca, ma, d, 16, o);
                FbInOverC (src, srca, ma, d, 24, p);
-               WRITE(dst, m|n|o|p);
+               WRITE(pDst, dst, m|n|o|p);
            }
            dst++;
        }
@@ -456,22 +456,22 @@ fbCompositeSolidMask_nx8x0888 (pixman_op_t op,
 
        while (w--)
        {
-           m = READ(mask++);
+           m = READ(pMask, mask++);
            if (m == 0xff)
            {
                if (srca == 0xff)
                    d = src;
                else
                {
-                   d = Fetch24(dst);
+                   d = Fetch24(pDst, dst);
                    d = fbOver24 (src, d);
                }
-               Store24(dst,d);
+               Store24(pDst, dst,d);
            }
            else if (m)
            {
-               d = fbOver24 (fbIn(src,m), Fetch24(dst));
-               Store24(dst,d);
+               d = fbOver24 (fbIn(src,m), Fetch24(pDst, dst));
+               Store24(pDst, dst, d);
            }
            dst += 3;
        }
@@ -521,23 +521,23 @@ fbCompositeSolidMask_nx8x0565 (pixman_op_t op,
 
        while (w--)
        {
-           m = READ(mask++);
+           m = READ(pMask, mask++);
            if (m == 0xff)
            {
                if (srca == 0xff)
                    d = src;
                else
                {
-                   d = READ(dst);
+                   d = READ(pDst, dst);
                    d = fbOver24 (src, cvt0565to0888(d));
                }
-               WRITE(dst, cvt8888to0565(d));
+               WRITE(pDst, dst, cvt8888to0565(d));
            }
            else if (m)
            {
-               d = READ(dst);
+               d = READ(pDst, dst);
                d = fbOver24 (fbIn(src,m), cvt0565to0888(d));
-               WRITE(dst, cvt8888to0565(d));
+               WRITE(pDst, dst, cvt8888to0565(d));
            }
            dst++;
        }
@@ -591,29 +591,29 @@ fbCompositeSolidMask_nx8888x0565C (pixman_op_t op,
 
        while (w--)
        {
-           ma = READ(mask++);
+           ma = READ(pMask, mask++);
            if (ma == 0xffffffff)
            {
                if (srca == 0xff)
                {
-                   WRITE(dst, src16);
+                   WRITE(pDst, dst, src16);
                }
                else
                {
-                   d = READ(dst);
+                   d = READ(pDst, dst);
                    d = fbOver24 (src, cvt0565to0888(d));
-                   WRITE(dst, cvt8888to0565(d));
+                   WRITE(pDst, dst, cvt8888to0565(d));
                }
            }
            else if (ma)
            {
-               d = READ(dst);
+               d = READ(pDst, dst);
                d = cvt0565to0888(d);
                FbInOverC (src, srca, ma, d, 0, m);
                FbInOverC (src, srca, ma, d, 8, n);
                FbInOverC (src, srca, ma, d, 16, o);
                d = m|n|o;
-               WRITE(dst, cvt8888to0565(d));
+               WRITE(pDst, dst, cvt8888to0565(d));
            }
            dst++;
        }
@@ -658,12 +658,12 @@ fbCompositeSrc_8888x8888 (pixman_op_t op,
 
        while (w--)
        {
-           s = READ(src++);
+           s = READ(pSrc, src++);
            a = s >> 24;
            if (a == 0xff)
-               WRITE(dst, s & dstMask);
+               WRITE(pDst, dst, s & dstMask);
            else if (a)
-               WRITE(dst, fbOver (s, READ(dst)) & dstMask);
+               WRITE(pDst, dst, fbOver (s, READ(pDst, dst)) & dstMask);
            dst++;
        }
     }
@@ -706,15 +706,15 @@ fbCompositeSrc_8888x0888 (pixman_op_t op,
 
        while (w--)
        {
-           s = READ(src++);
+           s = READ(pSrc, src++);
            a = s >> 24;
            if (a)
            {
                if (a == 0xff)
                    d = s;
                else
-                   d = fbOver24 (s, Fetch24(dst));
-               Store24(dst,d);
+                   d = fbOver24 (s, Fetch24(pDst, dst));
+               Store24(pDst, dst, d);
            }
            dst += 3;
        }
@@ -758,7 +758,7 @@ fbCompositeSrc_8888x0565 (pixman_op_t op,
 
        while (w--)
        {
-           s = READ(src++);
+           s = READ(pSrc, src++);
            a = s >> 24;
            if (a)
            {
@@ -766,10 +766,10 @@ fbCompositeSrc_8888x0565 (pixman_op_t op,
                    d = s;
                else
                {
-                   d = READ(dst);
+                   d = READ(pDst, dst);
                    d = fbOver24 (s, cvt0565to0888(d));
                }
-               WRITE(dst, cvt8888to0565(d));
+               WRITE(pDst, dst, cvt8888to0565(d));
            }
            dst++;
        }
@@ -813,16 +813,16 @@ fbCompositeSrcAdd_8000x8000 (pixman_op_t  op,
 
        while (w--)
        {
-           s = READ(src++);
+           s = READ(pSrc, src++);
            if (s)
            {
                if (s != 0xff)
                {
-                   d = READ(dst);
+                   d = READ(pDst, dst);
                    t = d + s;
                    s = t | (0 - (t >> 8));
                }
-               WRITE(dst, s);
+               WRITE(pDst, dst, s);
            }
            dst++;
        }
@@ -867,12 +867,12 @@ fbCompositeSrcAdd_8888x8888 (pixman_op_t  op,
 
        while (w--)
        {
-           s = READ(src++);
+           s = READ(pSrc, src++);
            if (s)
            {
                if (s != 0xffffffff)
                {
-                   d = READ(dst);
+                   d = READ(pDst, dst);
                    if (d)
                    {
                        m = FbAdd(s,d,0,t);
@@ -882,7 +882,7 @@ fbCompositeSrcAdd_8888x8888 (pixman_op_t    op,
                        s = m|n|o|p;
                    }
                }
-               WRITE(dst, s);
+               WRITE(pDst, dst, s);
            }
            dst++;
        }
@@ -933,16 +933,16 @@ fbCompositeSrcAdd_8888x8x8 (pixman_op_t op,
            uint32_t    m, d;
            uint32_t    r;
 
-           a = READ(mask++);
-           d = READ(dst);
+           a = READ(pMask, mask++);
+           d = READ(pDst, dst);
 
            m = FbInU (sa, 0, a, tmp);
            r = FbAdd (m, d, 0, tmp);
 
-           WRITE(dst++, r);
+           WRITE(pDst, dst++, r);
        }
     }
-    
+
     fbFinishAccess(pDst->pDrawable);
     fbFinishAccess(pMask->pDrawable);
 }
@@ -963,7 +963,7 @@ fbCompositeSrcAdd_1000x1000 (pixman_op_t    op,
 {
     /* FIXME */
 #if 0
-    
+
     uint32_t   *dstBits, *srcBits;
     int        dstStride, srcStride;
     int                dstBpp, srcBpp;
@@ -1105,14 +1105,14 @@ fbCompositeSrcSrc_nxn  (pixman_op_t        op,
     int                dstBpp;
     pixman_bool_t      reverse = FALSE;
     pixman_bool_t      upsidedown = FALSE;
-    
+
     fbGetDrawable(pSrc->pDrawable,src,srcStride,srcBpp,srcXoff,srcYoff);
     fbGetDrawable(pDst->pDrawable,dst,dstStride,dstBpp,dstXoff,dstYoff);
-       
+
     fbBlt (src + (ySrc + srcYoff) * srcStride,
           srcStride,
           (xSrc + srcXoff) * srcBpp,
+
           dst + (yDst + dstYoff) * dstStride,
           dstStride,
           (xDst + dstXoff) * dstBpp,
@@ -1126,7 +1126,7 @@ fbCompositeSrcSrc_nxn  (pixman_op_t          op,
 
           reverse,
           upsidedown);
-    
+
     fbFinishAccess(pSrc->pDrawable);
     fbFinishAccess(pDst->pDrawable);
 #endif
@@ -1160,7 +1160,7 @@ fbCompositeSolidFill (pixman_op_t op,
                      uint16_t     height)
 {
     uint32_t   src;
-    
+
     fbComposeGetSolid(pSrc, src, pDst->bits.format);
 
     if (pDst->bits.format == PIXMAN_a8)
@@ -1205,7 +1205,7 @@ fbCompositeSrc_8888xx888 (pixman_op_t op,
        dst += dstStride;
        src += srcStride;
     }
-    
+
     fbFinishAccess(pSrc->pDrawable);
     fbFinishAccess(pDst->pDrawable);
 }
@@ -1242,7 +1242,7 @@ pixman_walk_composite_region (pixman_op_t op,
     }
 
     region = &reg;
-    
+
     pbox = pixman_region_rectangles (region, &n);
     while (n--)
     {
@@ -1307,7 +1307,7 @@ can_get_solid (pixman_image_t *image)
 {
     if (image->type == SOLID)
        return TRUE;
-    
+
     if (image->type != BITS    ||
        image->bits.width != 1  ||
        image->bits.height != 1)
@@ -1356,7 +1356,7 @@ pixman_image_composite_rect  (pixman_op_t                   op,
 
     return_if_fail (src != NULL);
     return_if_fail (dest != NULL);
-    
+
     if (width > SCANLINE_BUFFER_LENGTH)
     {
        scanline_buffer = (uint32_t *)pixman_malloc_abc (width, 3, sizeof (uint32_t));
@@ -1364,7 +1364,7 @@ pixman_image_composite_rect  (pixman_op_t                   op,
        if (!scanline_buffer)
            return;
     }
-    
+
     compose_data.op = op;
     compose_data.src = src;
     compose_data.mask = mask;
@@ -1382,7 +1382,7 @@ pixman_image_composite_rect  (pixman_op_t                   op,
 
     if (scanline_buffer != _scanline_buffer)
        free (scanline_buffer);
-}    
+}
 
 
 void
@@ -1421,7 +1421,7 @@ pixman_image_composite (pixman_op_t      op,
        pSrc->bits.width == 1 &&
        pSrc->bits.height == 1)
        srcTransform = FALSE;
-    
+
     if (pMask && pMask->type == BITS)
     {
        maskRepeat = pMask->common.repeat == PIXMAN_REPEAT_NORMAL;
@@ -1666,7 +1666,7 @@ pixman_image_composite (pixman_op_t      op,
                    default:
                        break;
                    }
-                   
+
                    if (func)
                        maskRepeat = FALSE;
                }
@@ -1985,10 +1985,10 @@ pixman_image_composite (pixman_op_t      op,
        if (pSrc->bits.format == PIXMAN_a8 &&
            pDst->bits.format == PIXMAN_a8 &&
            !pMask)
-       {       
+       {
 #ifdef USE_MMX
            if (pixman_have_mmx())
-               func = fbCompositeIn_8x8mmx;        
+               func = fbCompositeIn_8x8mmx;
            else
 #endif
                func = fbCompositeSrcIn_8x8;
@@ -2029,7 +2029,7 @@ pixman_image_composite (pixman_op_t      op,
         */
        func = NULL;
     }
-    
+
     if (!func) {
        func = pixman_image_composite_rect;
 
@@ -2039,7 +2039,7 @@ pixman_image_composite (pixman_op_t      op,
        {
            srcRepeat = FALSE;
        }
-       
+
        if (pMask && pMask->type == BITS &&
            pMask->bits.width == 1 && pMask->bits.height == 1)
        {
@@ -2049,7 +2049,7 @@ pixman_image_composite (pixman_op_t      op,
        /* if we are transforming, repeats are handled in fbFetchTransformed */
        if (srcTransform)
            srcRepeat = FALSE;
-       
+
        if (maskTransform)
            maskTransform = FALSE;
     }
@@ -2075,7 +2075,7 @@ pixman_image_composite (pixman_op_t      op,
 enum CPUFeatures {
     NoFeatures = 0,
     MMX = 0x1,
-    MMX_Extensions = 0x2, 
+    MMX_Extensions = 0x2,
     SSE = 0x6,
     SSE2 = 0x8,
     CMOV = 0x10
@@ -2141,9 +2141,9 @@ static unsigned int detectCPUFeatures(void) {
             "pop %%ebx\n"
              "1:\n"
              "mov %%edx, %0\n"
-             : "=r" (result), 
-               "=m" (vendor[0]), 
-               "=m" (vendor[4]), 
+             : "=r" (result),
+               "=m" (vendor[0]),
+               "=m" (vendor[4]),
                "=m" (vendor[8])
              :
              : "%eax", "%ecx", "%edx"
@@ -2186,7 +2186,7 @@ static unsigned int detectCPUFeatures(void) {
 #else
 #   error unsupported compiler
 #endif
-    
+
     features = 0;
     if (result) {
         /* result now contains the standard feature bits */
@@ -2254,8 +2254,8 @@ pixman_have_mmx (void)
        mmx_present = (features & (MMX|MMX_Extensions)) == (MMX|MMX_Extensions);
         initialized = TRUE;
     }
-    
+
     return mmx_present;
 }
 #endif /* __amd64__ */
-#endif 
+#endif
index 775f7a7..56dec83 100644 (file)
@@ -43,7 +43,7 @@
 #define FB_HALFUNIT (1 << (FB_SHIFT-1))
 #define FB_MASK     (FB_UNIT - 1)
 #define FB_ALLONES  ((uint32_t) -1)
-    
+
 /* Memory allocation helpers */
 void *pixman_malloc_ab (unsigned int n, unsigned int b);
 void *pixman_malloc_abc (unsigned int a, unsigned int b, unsigned int c);
@@ -197,7 +197,7 @@ struct solid_fill
     source_image_t     common;
     uint32_t           color;          /* FIXME: shouldn't this be a pixman_color_t? */
 };
-    
+
 struct gradient
 {
     source_image_t             common;
@@ -239,7 +239,7 @@ struct conical_gradient
     gradient_t                 common;
     pixman_point_fixed_t       center;
     pixman_fixed_t             angle;
-}; 
+};
 
 struct bits_image
 {
@@ -307,23 +307,23 @@ union pixman_image
     }
 
 #if IMAGE_BYTE_ORDER == MSBFirst
-#define Fetch24(a)  ((unsigned long) (a) & 1 ?                       \
-                    ((READ(a) << 16) | READ((uint16_t *) ((a)+1))) : \
-                    ((READ((uint16_t *) (a)) << 8) | READ((a)+2)))
-#define Store24(a,v) ((unsigned long) (a) & 1 ?                \
-                     (WRITE(a, (uint8_t) ((v) >> 16)),               \
-                      WRITE((uint16_t *) ((a)+1), (uint16_t) (v))) :  \
-                     (WRITE((uint16_t *) (a), (uint16_t) ((v) >> 8)), \
-                      WRITE((a)+2, (uint8_t) (v))))
+#define Fetch24(img, a)  ((unsigned long) (a) & 1 ?          \
+    ((READ(img, a) << 16) | READ(img, (uint16_t *) ((a)+1))) : \
+    ((READ(img, (uint16_t *) (a)) << 8) | READ(img, (a)+2)))
+#define Store24(img,a,v) ((unsigned long) (a) & 1 ? \
+    (WRITE(img, a, (uint8_t) ((v) >> 16)),               \
+     WRITE(img, (uint16_t *) ((a)+1), (uint16_t) (v))) :  \
+    (WRITE(img, (uint16_t *) (a), (uint16_t) ((v) >> 8)), \
+     WRITE(img, (a)+2, (uint8_t) (v))))
 #else
-#define Fetch24(a)  ((unsigned long) (a) & 1 ?                      \
-                    (READ(a) | (READ((uint16_t *) ((a)+1)) << 8)) : \
-                    (READ((uint16_t *) (a)) | (READ((a)+2) << 16)))
-#define Store24(a,v) ((unsigned long) (a) & 1 ? \
-                     (WRITE(a, (uint8_t) (v)),                         \
-                      WRITE((uint16_t *) ((a)+1), (uint16_t) ((v) >> 8))) : \
-                     (WRITE((uint16_t *) (a), (uint16_t) (v)),         \
-                      WRITE((a)+2, (uint8_t) ((v) >> 16))))
+#define Fetch24(img,a)  ((unsigned long) (a) & 1 ?                          \
+    (READ(img, a) | (READ(img, (uint16_t *) ((a)+1)) << 8)) : \
+    (READ(img, (uint16_t *) (a)) | (READ(img, (a)+2) << 16)))
+#define Store24(img,a,v) ((unsigned long) (a) & 1 ? \
+    (WRITE(img, a, (uint8_t) (v)),                             \
+     WRITE(img, (uint16_t *) ((a)+1), (uint16_t) ((v) >> 8))) : \
+    (WRITE(img, (uint16_t *) (a), (uint16_t) (v)),             \
+     WRITE(img, (a)+2, (uint8_t) ((v) >> 16))))
 #endif
 
 #define Alpha(x) ((x) >> 24)
@@ -612,26 +612,26 @@ union pixman_image
 
 #ifdef PIXMAN_FB_ACCESSORS
 
-#define READ(ptr)                                                      \
-    (image->common.read_func ((ptr), sizeof(*(ptr))))
-#define WRITE(ptr,val)                                                 \
-    (image->common.write_func ((ptr), (val), sizeof (*(ptr))))
+#define READ(img, ptr)                                                 \
+    ((img)->common.read_func ((ptr), sizeof(*(ptr))))
+#define WRITE(img, ptr,val)                                            \
+    ((img)->common.write_func ((ptr), (val), sizeof (*(ptr))))
 
-#define MEMCPY_WRAPPED(dst, src, size)                                 \
+#define MEMCPY_WRAPPED(img, dst, src, size)                            \
     do {                                                               \
        size_t _i;                                                      \
        uint8_t *_dst = (uint8_t*)(dst), *_src = (uint8_t*)(src);       \
        for(_i = 0; _i < size; _i++) {                                  \
-           WRITE(_dst +_i, READ(_src + _i));                           \
+           WRITE((img), _dst +_i, READ((img), _src + _i));             \
        }                                                               \
     } while (0)
-       
-#define MEMSET_WRAPPED(dst, val, size)                                 \
+
+#define MEMSET_WRAPPED(img, dst, val, size)                            \
     do {                                                               \
        size_t _i;                                                      \
        uint8_t *_dst = (uint8_t*)(dst);                                \
-       for(_i = 0; _i < (size_t) size; _i++) {                          \
-           WRITE(_dst +_i, (val));                                     \
+       for(_i = 0; _i < (size_t) size; _i++) {                         \
+           WRITE((img), _dst +_i, (val));                              \
        }                                                               \
     } while (0)
 
@@ -641,11 +641,11 @@ union pixman_image
 
 #else
 
-#define READ(ptr)              (*(ptr))
-#define WRITE(ptr, val)                (*(ptr) = (val))
-#define MEMCPY_WRAPPED(dst, src, size)                                 \
+#define READ(img, ptr)         (*(ptr))
+#define WRITE(img, ptr, val)   (*(ptr) = (val))
+#define MEMCPY_WRAPPED(img, dst, src, size)                                    \
     memcpy(dst, src, size)
-#define MEMSET_WRAPPED(dst, val, size)                                 \
+#define MEMSET_WRAPPED(img, dst, val, size)                                    \
     memset(dst, val, size)
 #define fbPrepareAccess(x)
 #define fbFinishAccess(x)
@@ -668,21 +668,21 @@ union pixman_image
            switch (PIXMAN_FORMAT_BPP((img)->bits.format))              \
            {                                                           \
            case 32:                                                    \
-               (res) = READ((uint32_t *)bits__);                       \
+               (res) = READ(img, (uint32_t *)bits__);                  \
                break;                                                  \
            case 24:                                                    \
-               (res) = Fetch24 ((uint8_t *) bits__);                   \
+               (res) = Fetch24(img, (uint8_t *) bits__);                       \
                break;                                                  \
            case 16:                                                    \
-               (res) = READ((uint16_t *) bits__);                      \
+               (res) = READ(img, (uint16_t *) bits__);                 \
                (res) = cvt0565to0888(res);                             \
                break;                                                  \
            case 8:                                                     \
-               (res) = READ((uint8_t *) bits__);                       \
+               (res) = READ(img, (uint8_t *) bits__);                  \
                (res) = (res) << 24;                                    \
                break;                                                  \
            case 1:                                                     \
-               (res) = READ((uint32_t *) bits__);                      \
+               (res) = READ(img, (uint32_t *) bits__);                 \
                (res) = FbLeftStipBits((res),1) ? 0xff000000 : 0x00000000; \
                break;                                                  \
            default:                                                    \
@@ -812,7 +812,7 @@ void pixman_timer_register (PixmanTimer *timer);
                                                                        \
        timer##tname.n_times++;                                         \
        begin##tname = OIL_STAMP();
-       
+
 #define TIMER_END(tname)                                               \
         timer##tname.total += OIL_STAMP() - begin##tname;              \
     }