Change prototypes for compositing functions to use 32 bit integers
authorSøren Sandmann Pedersen <sandmann@redhat.com>
Wed, 13 May 2009 12:14:01 +0000 (08:14 -0400)
committerSøren Sandmann Pedersen <sandmann@redhat.com>
Sat, 23 May 2009 16:05:00 +0000 (12:05 -0400)
pixman/pixman-fast-path.c
pixman/pixman-general.c
pixman/pixman-mmx.c
pixman/pixman-mmx.h
pixman/pixman-private.h
pixman/pixman-sse2.c

index f7f6f19..62a39d1 100644 (file)
@@ -78,18 +78,19 @@ fbIn (uint32_t x, uint8_t y)
  */
 
 static void
-fbCompositeOver_x888x8x8888 (pixman_op_t      op,
+fbCompositeOver_x888x8x8888 (pixman_implementation_t *imp,
+                            pixman_op_t      op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t      xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t      xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint32_t   *src, *srcLine;
     uint32_t    *dst, *dstLine;
@@ -135,18 +136,19 @@ fbCompositeOver_x888x8x8888 (pixman_op_t      op,
 }
 
 static void
-fbCompositeSolidMaskIn_nx8x8 (pixman_op_t      op,
+fbCompositeSolidMaskIn_nx8x8 (pixman_implementation_t *imp,
+                             pixman_op_t      op,
                              pixman_image_t    *iSrc,
                              pixman_image_t    *iMask,
                              pixman_image_t    *iDst,
-                             int16_t      xSrc,
-                             int16_t      ySrc,
-                             int16_t      xMask,
-                             int16_t      yMask,
-                             int16_t      xDst,
-                             int16_t      yDst,
-                             uint16_t     width,
-                             uint16_t     height)
+                             int32_t      xSrc,
+                             int32_t      ySrc,
+                             int32_t      xMask,
+                             int32_t      yMask,
+                             int32_t      xDst,
+                             int32_t      yDst,
+                             int32_t     width,
+                             int32_t     height)
 {
     uint32_t   src, srca;
     uint8_t    *dstLine, *dst, dstMask;
@@ -217,18 +219,19 @@ fbCompositeSolidMaskIn_nx8x8 (pixman_op_t      op,
 
 
 static void
-fbCompositeSrcIn_8x8 (pixman_op_t      op,
+fbCompositeSrcIn_8x8 (pixman_implementation_t *imp,
+                     pixman_op_t      op,
                      pixman_image_t  *iSrc,
                      pixman_image_t  *iMask,
                      pixman_image_t  *iDst,
-                     int16_t          xSrc,
-                     int16_t          ySrc,
-                     int16_t          xMask,
-                     int16_t          yMask,
-                     int16_t          xDst,
-                     int16_t          yDst,
-                     uint16_t         width,
-                     uint16_t         height)
+                     int32_t          xSrc,
+                     int32_t          ySrc,
+                     int32_t          xMask,
+                     int32_t          yMask,
+                     int32_t          xDst,
+                     int32_t          yDst,
+                     int32_t         width,
+                     int32_t         height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -265,18 +268,19 @@ fbCompositeSrcIn_8x8 (pixman_op_t      op,
 }
 
 static void
-fbCompositeSolidMask_nx8x8888 (pixman_op_t      op,
+fbCompositeSolidMask_nx8x8888 (pixman_implementation_t *imp,
+                              pixman_op_t      op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t      xSrc,
-                              int16_t      ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t      xSrc,
+                              int32_t      ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t    src, srca;
     uint32_t   *dstLine, *dst, d, dstMask;
@@ -323,18 +327,19 @@ fbCompositeSolidMask_nx8x8888 (pixman_op_t      op,
 }
 
 static void
-fbCompositeSolidMask_nx8888x8888C (pixman_op_t op,
+fbCompositeSolidMask_nx8888x8888C (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                   pixman_image_t * pSrc,
                                   pixman_image_t * pMask,
                                   pixman_image_t * pDst,
-                                  int16_t      xSrc,
-                                  int16_t      ySrc,
-                                  int16_t      xMask,
-                                  int16_t      yMask,
-                                  int16_t      xDst,
-                                  int16_t      yDst,
-                                  uint16_t     width,
-                                  uint16_t     height)
+                                  int32_t      xSrc,
+                                  int32_t      ySrc,
+                                  int32_t      xMask,
+                                  int32_t      yMask,
+                                  int32_t      xDst,
+                                  int32_t      yDst,
+                                  int32_t     width,
+                                  int32_t     height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, *dst, d, dstMask;
@@ -396,18 +401,19 @@ fbCompositeSolidMask_nx8888x8888C (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8x0888 (pixman_op_t op,
+fbCompositeSolidMask_nx8x0888 (pixman_implementation_t *imp,
+                              pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t      xSrc,
-                              int16_t      ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t      xSrc,
+                              int32_t      ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t   src, srca;
     uint8_t    *dstLine, *dst;
@@ -458,18 +464,19 @@ fbCompositeSolidMask_nx8x0888 (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8x0565 (pixman_op_t op,
+fbCompositeSolidMask_nx8x0565 (pixman_implementation_t *imp,
+                              pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   *dstLine, *dst;
@@ -521,18 +528,19 @@ fbCompositeSolidMask_nx8x0565 (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8888x0565C (pixman_op_t op,
+fbCompositeSolidMask_nx8888x0565C (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                   pixman_image_t * pSrc,
                                   pixman_image_t * pMask,
                                   pixman_image_t * pDst,
-                                  int16_t      xSrc,
-                                  int16_t      ySrc,
-                                  int16_t      xMask,
-                                  int16_t      yMask,
-                                  int16_t      xDst,
-                                  int16_t      yDst,
-                                  uint16_t     width,
-                                  uint16_t     height)
+                                  int32_t      xSrc,
+                                  int32_t      ySrc,
+                                  int32_t      xMask,
+                                  int32_t      yMask,
+                                  int32_t      xDst,
+                                  int32_t      yDst,
+                                  int32_t     width,
+                                  int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   src16;
@@ -594,18 +602,19 @@ fbCompositeSolidMask_nx8888x0565C (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x8888 (pixman_op_t op,
+fbCompositeSrc_8888x8888 (pixman_implementation_t *imp,
+                         pixman_op_t op,
                         pixman_image_t * pSrc,
                         pixman_image_t * pMask,
                         pixman_image_t * pDst,
-                        int16_t      xSrc,
-                        int16_t      ySrc,
-                        int16_t      xMask,
-                        int16_t      yMask,
-                        int16_t      xDst,
-                        int16_t      yDst,
-                        uint16_t     width,
-                        uint16_t     height)
+                        int32_t      xSrc,
+                        int32_t      ySrc,
+                        int32_t      xMask,
+                        int32_t      yMask,
+                        int32_t      xDst,
+                        int32_t      yDst,
+                        int32_t     width,
+                        int32_t     height)
 {
     uint32_t   *dstLine, *dst, dstMask;
     uint32_t   *srcLine, *src, s;
@@ -640,18 +649,19 @@ fbCompositeSrc_8888x8888 (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x0888 (pixman_op_t op,
+fbCompositeSrc_8888x0888 (pixman_implementation_t *imp,
+                         pixman_op_t op,
                         pixman_image_t * pSrc,
                         pixman_image_t * pMask,
                         pixman_image_t * pDst,
-                        int16_t      xSrc,
-                        int16_t      ySrc,
-                        int16_t      xMask,
-                        int16_t      yMask,
-                        int16_t      xDst,
-                        int16_t      yDst,
-                        uint16_t     width,
-                        uint16_t     height)
+                        int32_t      xSrc,
+                        int32_t      ySrc,
+                        int32_t      xMask,
+                        int32_t      yMask,
+                        int32_t      xDst,
+                        int32_t      yDst,
+                        int32_t     width,
+                        int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint32_t   d;
@@ -689,18 +699,19 @@ fbCompositeSrc_8888x0888 (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x0565 (pixman_op_t op,
+fbCompositeSrc_8888x0565 (pixman_implementation_t *imp,
+                         pixman_op_t op,
                         pixman_image_t * pSrc,
                         pixman_image_t * pMask,
                         pixman_image_t * pDst,
-                        int16_t      xSrc,
-                        int16_t      ySrc,
-                        int16_t      xMask,
-                        int16_t      yMask,
-                        int16_t      xDst,
-                        int16_t      yDst,
-                        uint16_t     width,
-                        uint16_t     height)
+                        int32_t      xSrc,
+                        int32_t      ySrc,
+                        int32_t      xMask,
+                        int32_t      yMask,
+                        int32_t      xDst,
+                        int32_t      yDst,
+                        int32_t     width,
+                        int32_t     height)
 {
     uint16_t   *dstLine, *dst;
     uint32_t   d;
@@ -741,18 +752,19 @@ fbCompositeSrc_8888x0565 (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_x888x0565 (pixman_op_t op,
+fbCompositeSrc_x888x0565 (pixman_implementation_t *imp,
+                         pixman_op_t op,
                           pixman_image_t * pSrc,
                           pixman_image_t * pMask,
                           pixman_image_t * pDst,
-                          int16_t      xSrc,
-                          int16_t      ySrc,
-                          int16_t      xMask,
-                          int16_t      yMask,
-                          int16_t      xDst,
-                          int16_t      yDst,
-                          uint16_t     width,
-                          uint16_t     height)
+                          int32_t      xSrc,
+                          int32_t      ySrc,
+                          int32_t      xMask,
+                          int32_t      yMask,
+                          int32_t      xDst,
+                          int32_t      yDst,
+                          int32_t     width,
+                          int32_t     height)
 {
     uint16_t   *dstLine, *dst;
     uint32_t   *srcLine, *src, s;
@@ -780,18 +792,19 @@ fbCompositeSrc_x888x0565 (pixman_op_t op,
 }
 
 static void
-fbCompositeSrcAdd_8000x8000 (pixman_op_t       op,
+fbCompositeSrcAdd_8000x8000 (pixman_implementation_t *imp,
+                            pixman_op_t        op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t      xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t      xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -830,18 +843,19 @@ fbCompositeSrcAdd_8000x8000 (pixman_op_t  op,
 }
 
 static void
-fbCompositeSrcAdd_8888x8888 (pixman_op_t       op,
+fbCompositeSrcAdd_8888x8888 (pixman_implementation_t *imp,
+                            pixman_op_t        op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t      xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t      xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -887,18 +901,19 @@ fbCompositeSrcAdd_8888x8888 (pixman_op_t  op,
 }
 
 static void
-fbCompositeSrcAdd_8888x8x8 (pixman_op_t op,
+fbCompositeSrcAdd_8888x8x8 (pixman_implementation_t *imp,
+                           pixman_op_t op,
                            pixman_image_t * pSrc,
                            pixman_image_t * pMask,
                            pixman_image_t * pDst,
-                           int16_t      xSrc,
-                           int16_t      ySrc,
-                           int16_t      xMask,
-                           int16_t      yMask,
-                           int16_t      xDst,
-                           int16_t      yDst,
-                           uint16_t     width,
-                           uint16_t     height)
+                           int32_t      xSrc,
+                           int32_t      ySrc,
+                           int32_t      xMask,
+                           int32_t      yMask,
+                           int32_t      xDst,
+                           int32_t      yDst,
+                           int32_t     width,
+                           int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *maskLine, *mask;
@@ -943,18 +958,19 @@ fbCompositeSrcAdd_8888x8x8 (pixman_op_t op,
  */
 
 static void
-fbCompositeSolidFill (pixman_op_t op,
+fbCompositeSolidFill (pixman_implementation_t *imp,
+                     pixman_op_t op,
                      pixman_image_t * pSrc,
                      pixman_image_t * pMask,
                      pixman_image_t * pDst,
-                     int16_t      xSrc,
-                     int16_t      ySrc,
-                     int16_t      xMask,
-                     int16_t      yMask,
-                     int16_t      xDst,
-                     int16_t      yDst,
-                     uint16_t     width,
-                     uint16_t     height)
+                     int32_t      xSrc,
+                     int32_t      ySrc,
+                     int32_t      xMask,
+                     int32_t      yMask,
+                     int32_t      xDst,
+                     int32_t      yDst,
+                     int32_t     width,
+                     int32_t     height)
 {
     uint32_t   src;
 
@@ -974,18 +990,19 @@ fbCompositeSolidFill (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888xx888 (pixman_op_t op,
+fbCompositeSrc_8888xx888 (pixman_implementation_t *imp,
+                         pixman_op_t op,
                          pixman_image_t * pSrc,
                          pixman_image_t * pMask,
                          pixman_image_t * pDst,
-                         int16_t      xSrc,
-                         int16_t      ySrc,
-                         int16_t      xMask,
-                         int16_t      yMask,
-                         int16_t      xDst,
-                         int16_t      yDst,
-                         uint16_t     width,
-                         uint16_t     height)
+                         int32_t      xSrc,
+                         int32_t      ySrc,
+                         int32_t      xMask,
+                         int32_t      yMask,
+                         int32_t      xDst,
+                         int32_t      yDst,
+                         int32_t     width,
+                         int32_t     height)
 {
     uint32_t   *dst;
     uint32_t    *src;
index 5b50984..734dfce 100644 (file)
@@ -318,18 +318,19 @@ general_composite_rect (const FbComposeData *data)
 #include "pixman-combine32.h"
 
 static void
-fbCompositeSrcScaleNearest (pixman_op_t     op,
+fbCompositeSrcScaleNearest (pixman_implementation_t *imp,
+                           pixman_op_t     op,
                            pixman_image_t *pSrc,
                            pixman_image_t *pMask,
                            pixman_image_t *pDst,
-                           int16_t         xSrc,
-                           int16_t         ySrc,
-                           int16_t         xMask,
-                           int16_t         yMask,
-                           int16_t         xDst,
-                           int16_t         yDst,
-                           uint16_t        width,
-                           uint16_t        height)
+                           int32_t         xSrc,
+                           int32_t         ySrc,
+                           int32_t         xMask,
+                           int32_t         yMask,
+                           int32_t         xDst,
+                           int32_t         yDst,
+                           int32_t        width,
+                           int32_t        height)
 {
     uint32_t       *dst;
     uint32_t       *src;
@@ -414,7 +415,8 @@ fbCompositeSrcScaleNearest (pixman_op_t     op,
 }
 
 static void
-pixman_walk_composite_region (pixman_op_t op,
+pixman_walk_composite_region (pixman_implementation_t *imp,
+                             pixman_op_t op,
                              pixman_image_t * pSrc,
                              pixman_image_t * pMask,
                              pixman_image_t * pDst,
@@ -428,7 +430,7 @@ pixman_walk_composite_region (pixman_op_t op,
                              uint16_t height,
                              pixman_bool_t srcRepeat,
                              pixman_bool_t maskRepeat,
-                             CompositeFunc compositeRect)
+                             pixman_composite_func_t compositeRect)
 {
     int                    n;
     const pixman_box32_t *pbox;
@@ -487,7 +489,8 @@ pixman_walk_composite_region (pixman_op_t op,
                    if (w_this > pSrc->bits.width - x_src)
                        w_this = pSrc->bits.width - x_src;
                }
-               (*compositeRect) (op, pSrc, pMask, pDst,
+               (*compositeRect) (imp,
+                                 op, pSrc, pMask, pDst,
                                  x_src, y_src, x_msk, y_msk, x_dst, y_dst,
                                  w_this, h_this);
                w -= w_this;
@@ -506,18 +509,19 @@ pixman_walk_composite_region (pixman_op_t op,
 }
 
 static void
-pixman_image_composite_rect  (pixman_op_t                   op,
+pixman_image_composite_rect  (pixman_implementation_t *imp,
+                             pixman_op_t                   op,
                              pixman_image_t               *src,
                              pixman_image_t               *mask,
                              pixman_image_t               *dest,
-                             int16_t                       src_x,
-                             int16_t                       src_y,
-                             int16_t                       mask_x,
-                             int16_t                       mask_y,
-                             int16_t                       dest_x,
-                             int16_t                       dest_y,
-                             uint16_t                      width,
-                             uint16_t                      height)
+                             int32_t                       src_x,
+                             int32_t                       src_y,
+                             int32_t                       mask_x,
+                             int32_t                       mask_y,
+                             int32_t                       dest_x,
+                             int32_t                       dest_y,
+                             int32_t                      width,
+                             int32_t                      height)
 {
     FbComposeData compose_data;
 
@@ -659,7 +663,7 @@ general_composite (pixman_implementation_t *        imp,
     pixman_bool_t srcAlphaMap = src->common.alpha_map != NULL;
     pixman_bool_t maskAlphaMap = FALSE;
     pixman_bool_t dstAlphaMap = dest->common.alpha_map != NULL;
-    CompositeFunc func = NULL;
+    pixman_composite_func_t func = NULL;
 
 #ifdef USE_MMX
     fbComposeSetupMMX();
@@ -832,7 +836,7 @@ general_composite (pixman_implementation_t *        imp,
            maskRepeat = FALSE;
     }
 
-    pixman_walk_composite_region (op, src, mask, dest, src_x, src_y,
+    pixman_walk_composite_region (imp, op, src, mask, dest, src_x, src_y,
                                  mask_x, mask_y, dest_x, dest_y, width, height,
                                  srcRepeat, maskRepeat, func);
 }
index b26625b..05b0a9c 100644 (file)
@@ -962,18 +962,19 @@ fbComposeSetupMMX(void)
 /* ------------------ MMX code paths called from fbpict.c ----------------------- */
 
 static void
-fbCompositeSolid_nx8888mmx (pixman_op_t op,
+fbCompositeSolid_nx8888mmx (pixman_implementation_t *imp,
+                           pixman_op_t op,
                            pixman_image_t * pSrc,
                            pixman_image_t * pMask,
                            pixman_image_t * pDst,
-                           int16_t     xSrc,
-                           int16_t     ySrc,
-                           int16_t     xMask,
-                           int16_t     yMask,
-                           int16_t     xDst,
-                           int16_t     yDst,
-                           uint16_t    width,
-                           uint16_t    height)
+                           int32_t     xSrc,
+                           int32_t     ySrc,
+                           int32_t     xMask,
+                           int32_t     yMask,
+                           int32_t     xDst,
+                           int32_t     yDst,
+                           int32_t     width,
+                           int32_t     height)
 {
     uint32_t   src;
     uint32_t   *dstLine, *dst;
@@ -1040,18 +1041,19 @@ fbCompositeSolid_nx8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSolid_nx0565mmx (pixman_op_t op,
+fbCompositeSolid_nx0565mmx (pixman_implementation_t *imp,
+                           pixman_op_t op,
                            pixman_image_t * pSrc,
                            pixman_image_t * pMask,
                            pixman_image_t * pDst,
-                           int16_t     xSrc,
-                           int16_t     ySrc,
-                           int16_t     xMask,
-                           int16_t     yMask,
-                           int16_t     xDst,
-                           int16_t     yDst,
-                           uint16_t    width,
-                           uint16_t    height)
+                           int32_t     xSrc,
+                           int32_t     ySrc,
+                           int32_t     xMask,
+                           int32_t     yMask,
+                           int32_t     xDst,
+                           int32_t     yDst,
+                           int32_t     width,
+                           int32_t     height)
 {
     uint32_t   src;
     uint16_t   *dstLine, *dst;
@@ -1125,18 +1127,19 @@ fbCompositeSolid_nx0565mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8888x8888Cmmx (pixman_op_t op,
+fbCompositeSolidMask_nx8888x8888Cmmx (pixman_implementation_t *imp,
+                                     pixman_op_t op,
                                      pixman_image_t * pSrc,
                                      pixman_image_t * pMask,
                                      pixman_image_t * pDst,
-                                     int16_t   xSrc,
-                                     int16_t   ySrc,
-                                     int16_t   xMask,
-                                     int16_t   yMask,
-                                     int16_t   xDst,
-                                     int16_t   yDst,
-                                     uint16_t  width,
-                                     uint16_t  height)
+                                     int32_t   xSrc,
+                                     int32_t   ySrc,
+                                     int32_t   xMask,
+                                     int32_t   yMask,
+                                     int32_t   xDst,
+                                     int32_t   yDst,
+                                     int32_t   width,
+                                     int32_t   height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine;
@@ -1228,18 +1231,19 @@ fbCompositeSolidMask_nx8888x8888Cmmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x8x8888mmx (pixman_op_t op,
+fbCompositeSrc_8888x8x8888mmx (pixman_implementation_t *imp,
+                              pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t  xSrc,
-                              int16_t  ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t  xSrc,
+                              int32_t  ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -1312,18 +1316,19 @@ fbCompositeSrc_8888x8x8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_x888xnx8888mmx (pixman_op_t op,
+fbCompositeSrc_x888xnx8888mmx (pixman_implementation_t *imp,
+                              pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t  xSrc,
-                              int16_t  ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t  xSrc,
+                              int32_t  ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -1446,18 +1451,19 @@ fbCompositeSrc_x888xnx8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x8888mmx (pixman_op_t op,
+fbCompositeSrc_8888x8888mmx (pixman_implementation_t *imp,
+                            pixman_op_t op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t    xSrc,
-                            int16_t    ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t    xSrc,
+                            int32_t    ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -1498,18 +1504,19 @@ fbCompositeSrc_8888x8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888x0565mmx (pixman_op_t op,
+fbCompositeSrc_8888x0565mmx (pixman_implementation_t *imp,
+                            pixman_op_t op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t      xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t      xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint16_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -1599,18 +1606,19 @@ fbCompositeSrc_8888x0565mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8x8888mmx (pixman_op_t op,
+fbCompositeSolidMask_nx8x8888mmx (pixman_implementation_t *imp,
+                                 pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, *dst;
@@ -1870,18 +1878,19 @@ pixman_fill_mmx (uint32_t *bits,
 }
 
 static void
-fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_op_t op,
+fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_implementation_t *imp,
+                                    pixman_op_t op,
                                     pixman_image_t * pSrc,
                                     pixman_image_t * pMask,
                                     pixman_image_t * pDst,
-                                    int16_t      xSrc,
-                                    int16_t      ySrc,
-                                    int16_t      xMask,
-                                    int16_t      yMask,
-                                    int16_t      xDst,
-                                    int16_t      yDst,
-                                    uint16_t     width,
-                                    uint16_t     height)
+                                    int32_t      xSrc,
+                                    int32_t      ySrc,
+                                    int32_t      xMask,
+                                    int32_t      yMask,
+                                    int32_t      xDst,
+                                    int32_t      yDst,
+                                    int32_t     width,
+                                    int32_t     height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, *dst;
@@ -2001,18 +2010,19 @@ fbCompositeSolidMaskSrc_nx8x8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
+fbCompositeSolidMask_nx8x0565mmx (pixman_implementation_t *imp,
+                                 pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   *dstLine, *dst;
@@ -2133,18 +2143,19 @@ fbCompositeSolidMask_nx8x0565mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
+fbCompositeSrc_8888RevNPx0565mmx (pixman_implementation_t *imp,
+                                 pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint16_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -2254,18 +2265,19 @@ fbCompositeSrc_8888RevNPx0565mmx (pixman_op_t op,
 /* "8888RevNP" is GdkPixbuf's format: ABGR, non premultiplied */
 
 static void
-fbCompositeSrc_8888RevNPx8888mmx (pixman_op_t op,
+fbCompositeSrc_8888RevNPx8888mmx (pixman_implementation_t *imp,
+                                 pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -2353,18 +2365,19 @@ fbCompositeSrc_8888RevNPx8888mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
+fbCompositeSolidMask_nx8888x0565Cmmx (pixman_implementation_t *imp,
+                                     pixman_op_t op,
                                      pixman_image_t * pSrc,
                                      pixman_image_t * pMask,
                                      pixman_image_t * pDst,
-                                     int16_t      xSrc,
-                                     int16_t      ySrc,
-                                     int16_t      xMask,
-                                     int16_t      yMask,
-                                     int16_t      xDst,
-                                     int16_t      yDst,
-                                     uint16_t     width,
-                                     uint16_t     height)
+                                     int32_t      xSrc,
+                                     int32_t      ySrc,
+                                     int32_t      xMask,
+                                     int32_t      yMask,
+                                     int32_t      xDst,
+                                     int32_t      yDst,
+                                     int32_t     width,
+                                     int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   *dstLine;
@@ -2460,18 +2473,19 @@ fbCompositeSolidMask_nx8888x0565Cmmx (pixman_op_t op,
 }
 
 static void
-fbCompositeIn_nx8x8mmx (pixman_op_t op,
+fbCompositeIn_nx8x8mmx (pixman_implementation_t *imp,
+                       pixman_op_t op,
                        pixman_image_t * pSrc,
                        pixman_image_t * pMask,
                        pixman_image_t * pDst,
-                       int16_t      xSrc,
-                       int16_t      ySrc,
-                       int16_t      xMask,
-                       int16_t      yMask,
-                       int16_t      xDst,
-                       int16_t      yDst,
-                       uint16_t     width,
-                       uint16_t     height)
+                       int32_t      xSrc,
+                       int32_t      ySrc,
+                       int32_t      xMask,
+                       int32_t      yMask,
+                       int32_t      xDst,
+                       int32_t      yDst,
+                       int32_t     width,
+                       int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *maskLine, *mask;
@@ -2544,18 +2558,19 @@ fbCompositeIn_nx8x8mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeIn_8x8mmx (pixman_op_t op,
+fbCompositeIn_8x8mmx (pixman_implementation_t *imp,
+                     pixman_op_t op,
                      pixman_image_t * pSrc,
                      pixman_image_t * pMask,
                      pixman_image_t * pDst,
-                     int16_t      xSrc,
-                     int16_t      ySrc,
-                     int16_t      xMask,
-                     int16_t      yMask,
-                     int16_t      xDst,
-                     int16_t      yDst,
-                     uint16_t     width,
-                     uint16_t     height)
+                     int32_t      xSrc,
+                     int32_t      ySrc,
+                     int32_t      xMask,
+                     int32_t      yMask,
+                     int32_t      xDst,
+                     int32_t      yDst,
+                     int32_t     width,
+                     int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -2608,18 +2623,19 @@ fbCompositeIn_8x8mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrcAdd_8888x8x8mmx (pixman_op_t op,
+fbCompositeSrcAdd_8888x8x8mmx (pixman_implementation_t *imp,
+                              pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t      xSrc,
-                              int16_t      ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t      xSrc,
+                              int32_t      ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *maskLine, *mask;
@@ -2686,18 +2702,19 @@ fbCompositeSrcAdd_8888x8x8mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
+fbCompositeSrcAdd_8000x8000mmx (pixman_implementation_t *imp,
+                               pixman_op_t op,
                                pixman_image_t * pSrc,
                                pixman_image_t * pMask,
                                pixman_image_t * pDst,
-                               int16_t      xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t      xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -2758,18 +2775,19 @@ fbCompositeSrcAdd_8000x8000mmx (pixman_op_t op,
 }
 
 static void
-fbCompositeSrcAdd_8888x8888mmx (pixman_op_t    op,
+fbCompositeSrcAdd_8888x8888mmx (pixman_implementation_t *imp,
+                               pixman_op_t     op,
                                pixman_image_t *        pSrc,
                                pixman_image_t *        pMask,
                                pixman_image_t *         pDst,
-                               int16_t          xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t          xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     __m64 dst64;
     uint32_t   *dstLine, *dst;
@@ -2956,18 +2974,19 @@ pixman_blt_mmx (uint32_t *src_bits,
 }
 
 void
-fbCompositeCopyAreammx (pixman_op_t       op,
+fbCompositeCopyAreammx (pixman_implementation_t *imp,
+                       pixman_op_t       op,
                        pixman_image_t *        pSrc,
                        pixman_image_t *        pMask,
                        pixman_image_t *        pDst,
-                       int16_t         xSrc,
-                       int16_t         ySrc,
-                       int16_t         xMask,
-                       int16_t         yMask,
-                       int16_t         xDst,
-                       int16_t         yDst,
-                       uint16_t                width,
-                       uint16_t                height)
+                       int32_t         xSrc,
+                       int32_t         ySrc,
+                       int32_t         xMask,
+                       int32_t         yMask,
+                       int32_t         xDst,
+                       int32_t         yDst,
+                       int32_t         width,
+                       int32_t         height)
 {
     pixman_blt_mmx (pSrc->bits.bits,
                    pDst->bits.bits,
@@ -2979,18 +2998,19 @@ fbCompositeCopyAreammx (pixman_op_t       op,
 }
 
 static void
-fbCompositeOver_x888x8x8888mmx (pixman_op_t      op,
+fbCompositeOver_x888x8x8888mmx (pixman_implementation_t *imp,
+                               pixman_op_t      op,
                                pixman_image_t * pSrc,
                                pixman_image_t * pMask,
                                pixman_image_t * pDst,
-                               int16_t      xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t      xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     uint32_t   *src, *srcLine;
     uint32_t    *dst, *dstLine;
index f17816f..f30ff76 100644 (file)
@@ -72,18 +72,19 @@ pixman_fill_mmx (uint32_t *bits,
                 uint32_t xor);
 
 void fbComposeSetupMMX(void);
-void fbCompositeCopyAreammx (pixman_op_t       op,
+void fbCompositeCopyAreammx (pixman_implementation_t *imp,
+                            pixman_op_t        op,
                             pixman_image_t *   pSrc,
                             pixman_image_t *   pMask,
                             pixman_image_t *   pDst,
-                            int16_t    xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height);
+                            int32_t    xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height);
 
 #endif /* USE_MMX */
 
index c79d890..e660be6 100644 (file)
@@ -149,34 +149,6 @@ typedef struct bits_image bits_image_t;
 typedef struct circle circle_t;
 typedef struct point point_t;
 
-typedef void (* CompositeFunc) (pixman_op_t,
-                               pixman_image_t *, pixman_image_t *, pixman_image_t *,
-                               int16_t, int16_t, int16_t, int16_t, int16_t, int16_t,
-                               uint16_t, uint16_t);
-
-
-/* These "formats" both have depth 0, so they
- * will never clash with any real ones
- */
-#define PIXMAN_null            PIXMAN_FORMAT(0,0,0,0,0,0)
-#define PIXMAN_solid           PIXMAN_FORMAT(0,1,0,0,0,0)
-
-#define NEED_COMPONENT_ALPHA           (1 << 0)
-#define NEED_PIXBUF                    (1 << 1)
-#define NEED_SOLID_MASK                        (1 << 2)
-
-typedef struct
-{
-    pixman_op_t                        op;
-    pixman_format_code_t       src_format;
-    pixman_format_code_t       mask_format;
-    pixman_format_code_t       dest_format;
-    CompositeFunc              func;
-    uint32_t                   flags;
-} FastPathInfo;
-
-extern const FastPathInfo *const c_fast_paths;
-
 /* FIXME - the types and structures below should be give proper names
  */
 
@@ -924,6 +896,28 @@ typedef void (* pixman_composite_func_t)  (pixman_implementation_t *       imp,
                                           int32_t                      width,
                                           int32_t                      height);
 
+/* These "formats" both have depth 0, so they
+ * will never clash with any real ones
+ */
+#define PIXMAN_null            PIXMAN_FORMAT(0,0,0,0,0,0)
+#define PIXMAN_solid           PIXMAN_FORMAT(0,1,0,0,0,0)
+
+#define NEED_COMPONENT_ALPHA           (1 << 0)
+#define NEED_PIXBUF                    (1 << 1)
+#define NEED_SOLID_MASK                        (1 << 2)
+
+typedef struct
+{
+    pixman_op_t                        op;
+    pixman_format_code_t       src_format;
+    pixman_format_code_t       mask_format;
+    pixman_format_code_t       dest_format;
+    pixman_composite_func_t    func;
+    uint32_t                   flags;
+} FastPathInfo;
+
+extern const FastPathInfo *const c_fast_paths;
+
 struct pixman_implementation_t
 {
     pixman_implementation_t *  toplevel;
index af458dc..d3524f4 100644 (file)
@@ -2538,18 +2538,19 @@ fbComposeSetupSSE2(void)
  */
 
 static void
-fbCompositeSolid_nx8888sse2 (pixman_op_t op,
+fbCompositeSolid_nx8888sse2 (pixman_implementation_t *imp,
+                            pixman_op_t op,
                            pixman_image_t * pSrc,
                            pixman_image_t * pMask,
                            pixman_image_t * pDst,
-                           int16_t     xSrc,
-                           int16_t     ySrc,
-                           int16_t     xMask,
-                           int16_t     yMask,
-                           int16_t     xDst,
-                           int16_t     yDst,
-                           uint16_t    width,
-                           uint16_t    height)
+                           int32_t     xSrc,
+                           int32_t     ySrc,
+                           int32_t     xMask,
+                           int32_t     yMask,
+                           int32_t     xDst,
+                           int32_t     yDst,
+                           int32_t     width,
+                           int32_t     height)
 {
     uint32_t   src;
     uint32_t   *dstLine, *dst, d;
@@ -2624,18 +2625,19 @@ fbCompositeSolid_nx8888sse2 (pixman_op_t op,
  * fbCompositeSolid_nx0565
  */
 static void
-fbCompositeSolid_nx0565sse2 (pixman_op_t op,
+fbCompositeSolid_nx0565sse2 (pixman_implementation_t *imp,
+                            pixman_op_t op,
                            pixman_image_t * pSrc,
                            pixman_image_t * pMask,
                            pixman_image_t * pDst,
-                           int16_t     xSrc,
-                           int16_t     ySrc,
-                           int16_t     xMask,
-                           int16_t     yMask,
-                           int16_t     xDst,
-                           int16_t     yDst,
-                           uint16_t    width,
-                           uint16_t    height)
+                           int32_t     xSrc,
+                           int32_t     ySrc,
+                           int32_t     xMask,
+                           int32_t     yMask,
+                           int32_t     xDst,
+                           int32_t     yDst,
+                           int32_t     width,
+                           int32_t     height)
 {
     uint32_t   src;
     uint16_t   *dstLine, *dst, d;
@@ -2713,18 +2715,19 @@ fbCompositeSolid_nx0565sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSolidMask_nx8888x8888Csse2 (pixman_op_t op,
+fbCompositeSolidMask_nx8888x8888Csse2 (pixman_implementation_t *imp,
+                                      pixman_op_t op,
                                      pixman_image_t * pSrc,
                                      pixman_image_t * pMask,
                                      pixman_image_t * pDst,
-                                     int16_t   xSrc,
-                                     int16_t   ySrc,
-                                     int16_t   xMask,
-                                     int16_t   yMask,
-                                     int16_t   xDst,
-                                     int16_t   yDst,
-                                     uint16_t  width,
-                                     uint16_t  height)
+                                     int32_t   xSrc,
+                                     int32_t   ySrc,
+                                     int32_t   xMask,
+                                     int32_t   yMask,
+                                     int32_t   xDst,
+                                     int32_t   yDst,
+                                     int32_t   width,
+                                     int32_t   height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, d;
@@ -2847,18 +2850,19 @@ fbCompositeSolidMask_nx8888x8888Csse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSrc_8888x8x8888sse2 (pixman_op_t op,
+fbCompositeSrc_8888x8x8888sse2 (pixman_implementation_t *imp,
+                               pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t  xSrc,
-                              int16_t  ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t  xSrc,
+                              int32_t  ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -2959,18 +2963,19 @@ fbCompositeSrc_8888x8x8888sse2 (pixman_op_t op,
  * fbCompositeSrc_x888xnx8888
  */
 static void
-fbCompositeSrc_x888xnx8888sse2 (pixman_op_t op,
+fbCompositeSrc_x888xnx8888sse2 (pixman_implementation_t *imp,
+                               pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t  xSrc,
-                              int16_t  ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t  xSrc,
+                              int32_t  ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -3071,18 +3076,19 @@ fbCompositeSrc_x888xnx8888sse2 (pixman_op_t op,
  * fbCompositeSrc_8888x8888
  */
 static void
-fbCompositeSrc_8888x8888sse2 (pixman_op_t op,
+fbCompositeSrc_8888x8888sse2 (pixman_implementation_t *imp,
+                             pixman_op_t op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t    xSrc,
-                            int16_t    ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t    xSrc,
+                            int32_t    ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     int                dstStride, srcStride;
     uint32_t   *dstLine, *dst;
@@ -3119,18 +3125,19 @@ fbCompositeSrc_8888x0565pixel (uint32_t src, uint16_t dst)
 }
 
 static void
-fbCompositeSrc_8888x0565sse2 (pixman_op_t op,
+fbCompositeSrc_8888x0565sse2 (pixman_implementation_t *imp,
+                             pixman_op_t op,
                             pixman_image_t * pSrc,
                             pixman_image_t * pMask,
                             pixman_image_t * pDst,
-                            int16_t      xSrc,
-                            int16_t      ySrc,
-                            int16_t      xMask,
-                            int16_t      yMask,
-                            int16_t      xDst,
-                            int16_t      yDst,
-                            uint16_t     width,
-                            uint16_t     height)
+                            int32_t      xSrc,
+                            int32_t      ySrc,
+                            int32_t      xMask,
+                            int32_t      yMask,
+                            int32_t      xDst,
+                            int32_t      yDst,
+                            int32_t     width,
+                            int32_t     height)
 {
     uint16_t   *dstLine, *dst, d;
     uint32_t   *srcLine, *src, s;
@@ -3232,18 +3239,19 @@ fbCompositeSrc_8888x0565sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSolidMask_nx8x8888sse2 (pixman_op_t op,
+fbCompositeSolidMask_nx8x8888sse2 (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, *dst;
@@ -3509,18 +3517,19 @@ pixmanFillsse2 (uint32_t *bits,
 }
 
 static void
-fbCompositeSolidMaskSrc_nx8x8888sse2 (pixman_op_t op,
+fbCompositeSolidMaskSrc_nx8x8888sse2 (pixman_implementation_t *imp,
+                                     pixman_op_t op,
                                     pixman_image_t * pSrc,
                                     pixman_image_t * pMask,
                                     pixman_image_t * pDst,
-                                    int16_t      xSrc,
-                                    int16_t      ySrc,
-                                    int16_t      xMask,
-                                    int16_t      yMask,
-                                    int16_t      xDst,
-                                    int16_t      yDst,
-                                    uint16_t     width,
-                                    uint16_t     height)
+                                    int32_t      xSrc,
+                                    int32_t      ySrc,
+                                    int32_t      xMask,
+                                    int32_t      yMask,
+                                    int32_t      xDst,
+                                    int32_t      yDst,
+                                    int32_t     width,
+                                    int32_t     height)
 {
     uint32_t   src, srca;
     uint32_t   *dstLine, *dst;
@@ -3644,18 +3653,19 @@ fbCompositeSolidMaskSrc_nx8x8888sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSolidMask_nx8x0565sse2 (pixman_op_t op,
+fbCompositeSolidMask_nx8x0565sse2 (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   *dstLine, *dst, d;
@@ -3793,18 +3803,19 @@ fbCompositeSolidMask_nx8x0565sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSrc_8888RevNPx0565sse2 (pixman_op_t op,
+fbCompositeSrc_8888RevNPx0565sse2 (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint16_t   *dstLine, *dst, d;
     uint32_t   *srcLine, *src, s;
@@ -3926,18 +3937,19 @@ fbCompositeSrc_8888RevNPx0565sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSrc_8888RevNPx8888sse2 (pixman_op_t op,
+fbCompositeSrc_8888RevNPx8888sse2 (pixman_implementation_t *imp,
+                                  pixman_op_t op,
                                  pixman_image_t * pSrc,
                                  pixman_image_t * pMask,
                                  pixman_image_t * pDst,
-                                 int16_t      xSrc,
-                                 int16_t      ySrc,
-                                 int16_t      xMask,
-                                 int16_t      yMask,
-                                 int16_t      xDst,
-                                 int16_t      yDst,
-                                 uint16_t     width,
-                                 uint16_t     height)
+                                 int32_t      xSrc,
+                                 int32_t      ySrc,
+                                 int32_t      xMask,
+                                 int32_t      yMask,
+                                 int32_t      xDst,
+                                 int32_t      yDst,
+                                 int32_t     width,
+                                 int32_t     height)
 {
     uint32_t   *dstLine, *dst, d;
     uint32_t   *srcLine, *src, s;
@@ -4039,18 +4051,19 @@ fbCompositeSrc_8888RevNPx8888sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSolidMask_nx8888x0565Csse2 (pixman_op_t op,
+fbCompositeSolidMask_nx8888x0565Csse2 (pixman_implementation_t *imp,
+                                      pixman_op_t op,
                                      pixman_image_t * pSrc,
                                      pixman_image_t * pMask,
                                      pixman_image_t * pDst,
-                                     int16_t      xSrc,
-                                     int16_t      ySrc,
-                                     int16_t      xMask,
-                                     int16_t      yMask,
-                                     int16_t      xDst,
-                                     int16_t      yDst,
-                                     uint16_t     width,
-                                     uint16_t     height)
+                                     int32_t      xSrc,
+                                     int32_t      ySrc,
+                                     int32_t      xMask,
+                                     int32_t      yMask,
+                                     int32_t      xDst,
+                                     int32_t      yDst,
+                                     int32_t     width,
+                                     int32_t     height)
 {
     uint32_t   src, srca;
     uint16_t   *dstLine, *dst, d;
@@ -4187,18 +4200,19 @@ fbCompositeSolidMask_nx8888x0565Csse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeIn_nx8x8sse2 (pixman_op_t op,
+fbCompositeIn_nx8x8sse2 (pixman_implementation_t *imp,
+                        pixman_op_t op,
                        pixman_image_t * pSrc,
                        pixman_image_t * pMask,
                        pixman_image_t * pDst,
-                       int16_t      xSrc,
-                       int16_t      ySrc,
-                       int16_t      xMask,
-                       int16_t      yMask,
-                       int16_t      xDst,
-                       int16_t      yDst,
-                       uint16_t     width,
-                       uint16_t     height)
+                       int32_t      xSrc,
+                       int32_t      ySrc,
+                       int32_t      xMask,
+                       int32_t      yMask,
+                       int32_t      xDst,
+                       int32_t      yDst,
+                       int32_t     width,
+                       int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *maskLine, *mask;
@@ -4289,18 +4303,19 @@ fbCompositeIn_nx8x8sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeIn_8x8sse2 (pixman_op_t op,
+fbCompositeIn_8x8sse2 (pixman_implementation_t *imp,
+                      pixman_op_t op,
                      pixman_image_t * pSrc,
                      pixman_image_t * pMask,
                      pixman_image_t * pDst,
-                     int16_t      xSrc,
-                     int16_t      ySrc,
-                     int16_t      xMask,
-                     int16_t      yMask,
-                     int16_t      xDst,
-                     int16_t      yDst,
-                     uint16_t     width,
-                     uint16_t     height)
+                     int32_t      xSrc,
+                     int32_t      ySrc,
+                     int32_t      xMask,
+                     int32_t      yMask,
+                     int32_t      xDst,
+                     int32_t      yDst,
+                     int32_t     width,
+                     int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -4378,18 +4393,19 @@ fbCompositeIn_8x8sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSrcAdd_8888x8x8sse2 (pixman_op_t op,
+fbCompositeSrcAdd_8888x8x8sse2 (pixman_implementation_t *imp,
+                               pixman_op_t op,
                               pixman_image_t * pSrc,
                               pixman_image_t * pMask,
                               pixman_image_t * pDst,
-                              int16_t      xSrc,
-                              int16_t      ySrc,
-                              int16_t      xMask,
-                              int16_t      yMask,
-                              int16_t      xDst,
-                              int16_t      yDst,
-                              uint16_t     width,
-                              uint16_t     height)
+                              int32_t      xSrc,
+                              int32_t      ySrc,
+                              int32_t      xMask,
+                              int32_t      yMask,
+                              int32_t      xDst,
+                              int32_t      yDst,
+                              int32_t     width,
+                              int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *maskLine, *mask;
@@ -4483,18 +4499,19 @@ fbCompositeSrcAdd_8888x8x8sse2 (pixman_op_t op,
  */
 
 static void
-fbCompositeSrcAdd_8000x8000sse2 (pixman_op_t op,
+fbCompositeSrcAdd_8000x8000sse2 (pixman_implementation_t *imp,
+                                pixman_op_t op,
                                pixman_image_t * pSrc,
                                pixman_image_t * pMask,
                                pixman_image_t * pDst,
-                               int16_t      xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t      xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     uint8_t    *dstLine, *dst;
     uint8_t    *srcLine, *src;
@@ -4549,18 +4566,19 @@ fbCompositeSrcAdd_8000x8000sse2 (pixman_op_t op,
  * fbCompositeSrcAdd_8888x8888
  */
 static void
-fbCompositeSrcAdd_8888x8888sse2 (pixman_op_t   op,
+fbCompositeSrcAdd_8888x8888sse2 (pixman_implementation_t *imp,
+                                pixman_op_t    op,
                                pixman_image_t *        pSrc,
                                pixman_image_t *        pMask,
                                pixman_image_t *         pDst,
-                               int16_t          xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t          xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     uint32_t   *dstLine, *dst;
     uint32_t   *srcLine, *src;
@@ -4726,18 +4744,19 @@ pixmanBltsse2 (uint32_t *src_bits,
 }
 
 static void
-fbCompositeCopyAreasse2 (pixman_op_t       op,
+fbCompositeCopyAreasse2 (pixman_implementation_t *imp,
+                        pixman_op_t       op,
                        pixman_image_t *        pSrc,
                        pixman_image_t *        pMask,
                        pixman_image_t *        pDst,
-                       int16_t         xSrc,
-                       int16_t         ySrc,
-                       int16_t         xMask,
-                       int16_t         yMask,
-                       int16_t         xDst,
-                       int16_t         yDst,
-                       uint16_t                width,
-                       uint16_t                height)
+                       int32_t         xSrc,
+                       int32_t         ySrc,
+                       int32_t         xMask,
+                       int32_t         yMask,
+                       int32_t         xDst,
+                       int32_t         yDst,
+                       int32_t         width,
+                       int32_t         height)
 {
     pixmanBltsse2 (pSrc->bits.bits,
                    pDst->bits.bits,
@@ -4751,18 +4770,19 @@ fbCompositeCopyAreasse2 (pixman_op_t       op,
 #if 0
 /* This code are buggy in MMX version, now the bug was translated to SSE2 version */
 void
-fbCompositeOver_x888x8x8888sse2 (pixman_op_t      op,
+fbCompositeOver_x888x8x8888sse2 (pixman_implementation_t *imp,
+                                pixman_op_t      op,
                                pixman_image_t * pSrc,
                                pixman_image_t * pMask,
                                pixman_image_t * pDst,
-                               int16_t      xSrc,
-                               int16_t      ySrc,
-                               int16_t      xMask,
-                               int16_t      yMask,
-                               int16_t      xDst,
-                               int16_t      yDst,
-                               uint16_t     width,
-                               uint16_t     height)
+                               int32_t      xSrc,
+                               int32_t      ySrc,
+                               int32_t      xMask,
+                               int32_t      yMask,
+                               int32_t      xDst,
+                               int32_t      yDst,
+                               int32_t     width,
+                               int32_t     height)
 {
     uint32_t   *src, *srcLine, s;
     uint32_t    *dst, *dstLine, d;