Get rid of separate combineU and combineC types
authorSøren Sandmann Pedersen <sandmann@redhat.com>
Thu, 30 Apr 2009 21:53:48 +0000 (17:53 -0400)
committerSøren Sandmann Pedersen <sandmann@redhat.com>
Mon, 4 May 2009 22:55:06 +0000 (18:55 -0400)
pixman/combine.inc
pixman/combine.pl
pixman/pixman-compose.c
pixman/pixman-private.h
test/composite-test.c

index 5a72ec4..8c0955a 100644 (file)
@@ -635,8 +635,6 @@ fbCombineMaskAlphaC (const comp4_t *src, comp4_t *mask)
     *(mask) = a;
 }
 
-
-
 FASTCALL static void
 fbCombineClearC (comp4_t *dest, const comp4_t *src, const comp4_t *mask, int width)
 {
@@ -1192,7 +1190,7 @@ fbCombineConjointXorC (comp4_t *dest, const comp4_t *src, const comp4_t *mask, i
     fbCombineConjointGeneralC (dest, src, mask, width, CombineXor);
 }
 
-static CombineFuncU pixman_fbCombineFuncU[] = {
+static CombineFunc pixman_fbCombineFuncU[] = {
     fbCombineClear,
     fbCombineSrcU,
     NULL, /* CombineDst */
@@ -1239,7 +1237,7 @@ static CombineFuncU pixman_fbCombineFuncU[] = {
     fbCombineConjointXorU,
 };
 
-static CombineFuncC pixman_fbCombineFuncC[] = {
+static CombineFunc pixman_fbCombineFuncC[] = {
     fbCombineClearC,
     fbCombineSrcC,
     NULL, /* Dest */
index 6d27423..d50c480 100644 (file)
@@ -60,9 +60,7 @@ while (<STDIN>) {
     s/#define RB_MASK_PLUS_ONE\b/$& $rb_mask_plus_one/;
 
     # Add 32/64 suffix to combining function types.
-    s/\bCombineFuncC\b/CombineFuncC$pixel_size/;
-    s/\bCombineFuncU\b/CombineFuncU$pixel_size/;
-    s/\bCombineMaskU\b/CombineMaskU$pixel_size/;
+    s/\bCombineFunc\b/CombineFunc$pixel_size/;
     s/\bFbComposeFunctions\b/FbComposeFunctions$pixel_size/;
 
     # Convert comp*_t values into the appropriate real types.
index 5f99c3e..9533b5f 100644 (file)
@@ -108,13 +108,17 @@ pixman_composite_rect_general_internal (const FbComposeData *data,
        data->mask->common.component_alpha &&
        PIXMAN_FORMAT_RGB (data->mask->bits.format))
     {
-       CombineFuncC32 compose =
-           wide ? (CombineFuncC32)pixman_composeFunctions64.combineC[data->op] :
+       CombineFunc32 compose =
+           wide ? (CombineFunc32)pixman_composeFunctions64.combineC[data->op] :
                   pixman_composeFunctions.combineC[data->op];
        if (!compose)
            return;
 
-       for (i = 0; i < data->height; ++i) {
+       if (!fetchMask)
+           mask_buffer = NULL;
+       
+       for (i = 0; i < data->height; ++i)
+       {
            /* fill first half of scanline with source */
            if (fetchSrc)
            {
@@ -175,8 +179,8 @@ pixman_composite_rect_general_internal (const FbComposeData *data,
     {
        void *src_mask_buffer = 0;
        const int useMask = (fetchMask != NULL);
-       CombineFuncU32 compose =
-           wide ? (CombineFuncU32)pixman_composeFunctions64.combineU[data->op] :
+       CombineFunc32 compose =
+           wide ? (CombineFunc32)pixman_composeFunctions64.combineU[data->op] :
                   pixman_composeFunctions.combineU[data->op];
        if (!compose)
            return;
index d9b5579..db57467 100644 (file)
@@ -152,9 +152,8 @@ typedef struct point point_t;
  */
 
 #define FASTCALL
-typedef FASTCALL void (*CombineMaskU32) (uint32_t *src, const uint32_t *mask, int width);
-typedef FASTCALL void (*CombineFuncU32) (uint32_t *dest, const uint32_t *src, const uint32_t *mask, int width);
-typedef FASTCALL void (*CombineFuncC32) (uint32_t *dest, const uint32_t *src, const uint32_t *mask, int width);
+typedef FASTCALL void (*CombineMask32) (uint32_t *src, const uint32_t *mask, int width);
+typedef FASTCALL void (*CombineFunc32) (uint32_t *dest, const uint32_t *src, const uint32_t *mask, int width);
 typedef FASTCALL void (*fetchProc32)(bits_image_t *pict, int x, int y, int width,
                                      uint32_t *buffer);
 typedef FASTCALL uint32_t (*fetchPixelProc32)(bits_image_t *pict, int offset, int line);
@@ -162,9 +161,8 @@ typedef FASTCALL void (*storeProc32)(pixman_image_t *, uint32_t *bits,
                                      const uint32_t *values, int x, int width,
                                      const pixman_indexed_t *);
 
-typedef FASTCALL void (*CombineMaskU64) (uint64_t *src, const uint64_t *mask, int width);
-typedef FASTCALL void (*CombineFuncU64) (uint64_t *dest, const uint64_t *src, const uint64_t *mask, int width);
-typedef FASTCALL void (*CombineFuncC64) (uint64_t *dest, const uint64_t *src, const uint64_t *mask, int width);
+typedef FASTCALL void (*CombineMask64) (uint64_t *src, const uint64_t *mask, int width);
+typedef FASTCALL void (*CombineFunc64) (uint64_t *dest, const uint64_t *src, const uint64_t *mask, int width);
 typedef FASTCALL void (*fetchProc64)(bits_image_t *pict, int x, int y, int width,
                                      uint64_t *buffer);
 typedef FASTCALL uint64_t (*fetchPixelProc64)(bits_image_t *pict, int offset, int line);
@@ -188,15 +186,15 @@ typedef struct _FbComposeData {
 } FbComposeData;
 
 typedef struct _FbComposeFunctions32 {
-    CombineFuncU32 *combineU;
-    CombineFuncC32 *combineC;
-    CombineMaskU32 combineMaskU;
+    CombineFunc32 *combineU;
+    CombineFunc32 *combineC;
+    CombineMask32 combineMaskU;
 } FbComposeFunctions32;
 
 typedef struct _FbComposeFunctions64 {
-    CombineFuncU64 *combineU;
-    CombineFuncC64 *combineC;
-    CombineMaskU64 combineMaskU;
+    CombineFunc64 *combineU;
+    CombineFunc64 *combineC;
+    CombineMask64 combineMaskU;
 } FbComposeFunctions64;
 
 extern FbComposeFunctions32 pixman_composeFunctions;
index eaa8820..393e15d 100644 (file)
@@ -54,7 +54,7 @@ main (int argc, char **argv)
        src[i] = 0x7f7f0000; /* red */
 
     for (i = 0; i < WIDTH * HEIGHT; ++i)
-       dest[i] = 0x7f0000ff; /* blue */
+       dest[i] = 0x7f00007f; /* blue */
     
     src_img = pixman_image_create_bits (PIXMAN_a8r8g8b8,
                                        WIDTH, HEIGHT,