From 8b2e08d494c6da1512f44d0754b0f52a184cc6f3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Thu, 30 Apr 2009 17:53:48 -0400 Subject: [PATCH] Get rid of separate combineU and combineC types --- pixman/combine.inc | 6 ++---- pixman/combine.pl | 4 +--- pixman/pixman-compose.c | 14 +++++++++----- pixman/pixman-private.h | 22 ++++++++++------------ test/composite-test.c | 2 +- 5 files changed, 23 insertions(+), 25 deletions(-) diff --git a/pixman/combine.inc b/pixman/combine.inc index 5a72ec4..8c0955a 100644 --- a/pixman/combine.inc +++ b/pixman/combine.inc @@ -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 */ diff --git a/pixman/combine.pl b/pixman/combine.pl index 6d27423..d50c480 100644 --- a/pixman/combine.pl +++ b/pixman/combine.pl @@ -60,9 +60,7 @@ while () { 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. diff --git a/pixman/pixman-compose.c b/pixman/pixman-compose.c index 5f99c3e..9533b5f 100644 --- a/pixman/pixman-compose.c +++ b/pixman/pixman-compose.c @@ -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; diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index d9b5579..db57467 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -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; diff --git a/test/composite-test.c b/test/composite-test.c index eaa8820..393e15d 100644 --- a/test/composite-test.c +++ b/test/composite-test.c @@ -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, -- 2.7.4