From e0e5c4b72937728d0b36b1077d94ce92a2374c9a Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Mon, 31 Mar 2008 16:42:53 -0700 Subject: [PATCH] Tack 32 onto the ends of the combining function types. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Søren Sandmann --- pixman/combine.pl | 17 +++++++++++++++++ pixman/pixman-compose.c | 4 ++-- pixman/pixman-private.h | 28 +++++++++++++++++++--------- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/pixman/combine.pl b/pixman/combine.pl index e73a85a..126db6c 100644 --- a/pixman/combine.pl +++ b/pixman/combine.pl @@ -1,3 +1,20 @@ +$usage = "Usage: combine.pl { 8 | 16 } < combine.inc"; + +$#ARGV == 0 or die $usage; + +# Get the component size. +$size = int($ARGV[0]); +$size == 8 or $size == 16 or die $usage; + +$pixel_size = $size * 4; + +print "#line 1 \"combine.inc\"\n"; while () { + # 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/\bFbComposeFunctions\b/FbComposeFunctions$pixel_size/; + print $_; } diff --git a/pixman/pixman-compose.c b/pixman/pixman-compose.c index 4cb304d..81b7b1a 100644 --- a/pixman/pixman-compose.c +++ b/pixman/pixman-compose.c @@ -302,7 +302,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data, PIXMAN_FORMAT_RGB (data->mask->bits.format)) { uint32_t *mask_buffer = dest_buffer + data->width; - CombineFuncC compose = pixman_composeFunctions.combineC[data->op]; + CombineFuncC32 compose = pixman_composeFunctions.combineC[data->op]; if (!compose) return; @@ -366,7 +366,7 @@ PIXMAN_COMPOSITE_RECT_GENERAL (const FbComposeData *data, else { uint32_t *src_mask_buffer = 0, *mask_buffer = 0; - CombineFuncU compose = pixman_composeFunctions.combineU[data->op]; + CombineFuncU32 compose = pixman_composeFunctions.combineU[data->op]; if (!compose) return; diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index 714a6a5..e8c3f39 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -143,9 +143,9 @@ typedef struct point point_t; */ #define FASTCALL -typedef FASTCALL void (*CombineMaskU) (uint32_t *src, const uint32_t *mask, int width); -typedef FASTCALL void (*CombineFuncU) (uint32_t *dest, const uint32_t *src, int width); -typedef FASTCALL void (*CombineFuncC) (uint32_t *dest, uint32_t *src, uint32_t *mask, int width); +typedef FASTCALL void (*CombineMaskU32) (uint32_t *src, const uint32_t *mask, int width); +typedef FASTCALL void (*CombineFuncU32) (uint32_t *dest, const uint32_t *src, int width); +typedef FASTCALL void (*CombineFuncC32) (uint32_t *dest, uint32_t *src, uint32_t *mask, int width); typedef FASTCALL void (*fetchProc)(bits_image_t *pict, int x, int y, int width, uint32_t *buffer); typedef FASTCALL uint32_t (*fetchPixelProc)(bits_image_t *pict, int offset, int line); @@ -153,6 +153,10 @@ typedef FASTCALL void (*storeProc)(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, int width); +typedef FASTCALL void (*CombineFuncC64) (uint64_t *dest, uint64_t *src, uint64_t *mask, int width); + typedef struct _FbComposeData { uint8_t op; pixman_image_t *src; @@ -168,13 +172,19 @@ typedef struct _FbComposeData { uint16_t height; } FbComposeData; -typedef struct _FbComposeFunctions { - CombineFuncU *combineU; - CombineFuncC *combineC; - CombineMaskU combineMaskU; -} FbComposeFunctions; +typedef struct _FbComposeFunctions32 { + CombineFuncU32 *combineU; + CombineFuncC32 *combineC; + CombineMaskU32 combineMaskU; +} FbComposeFunctions32; + +typedef struct _FbComposeFunctions64 { + CombineFuncU64 *combineU; + CombineFuncC64 *combineC; + CombineMaskU64 combineMaskU; +} FbComposeFunctions64; -extern FbComposeFunctions pixman_composeFunctions; +extern FbComposeFunctions32 pixman_composeFunctions; void pixman_composite_rect_general_accessors (const FbComposeData *data, uint32_t *scanline_buffer); -- 2.7.4