diff options
author | Søren Sandmann <sandmann@redhat.com> | 2007-05-19 17:19:39 -0400 |
---|---|---|
committer | Søren Sandmann <sandmann@redhat.com> | 2007-05-19 17:19:39 -0400 |
commit | 4df446bb73b1ab89e119d6714a3feae8a384e113 (patch) | |
tree | 02203d184843be608e2bc8770e6feb43db9c3e4c | |
parent | bcb4c8f02137178096473191a05c3b84e4ce5116 (diff) |
Move mod and div macros to pixman-private.h
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | pixman/pixman-compose.c | 6 | ||||
-rw-r--r-- | pixman/pixman-pict.c | 13 | ||||
-rw-r--r-- | pixman/pixman-private.h | 10 |
4 files changed, 15 insertions, 16 deletions
@@ -25,7 +25,7 @@ have to be kept uptodate every time something changes about the picture. - - Break the X server ABI and simply have the releveant parameter + - Break the X server ABI and simply have the relevant parameter stored in the pixman image. This would have the additional benefits that: diff --git a/pixman/pixman-compose.c b/pixman/pixman-compose.c index 50fa29e..ea153a4 100644 --- a/pixman/pixman-compose.c +++ b/pixman/pixman-compose.c @@ -109,8 +109,6 @@ SourcePictureClassify (source_image_t *pict, return pict->class; } -#define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b)) - #define SCANLINE_BUFFER_LENGTH 2048 typedef FASTCALL void (*fetchProc)(pixman_image_t *image, @@ -3036,10 +3034,6 @@ static void fbFetch(bits_image_t * pict, int x, int y, int width, uint32_t *buff fetch((pixman_image_t *)pict, bits, x, width, buffer, indexed); } -#define MOD(a,b) ((a) < 0 ? ((b) - ((-(a) - 1) % (b))) - 1 : (a) % (b)) -#define DIV(a,b) ((((a) < 0) == ((b) < 0)) ? (a) / (b) : \ - ((a) - (b) + 1 - (((b) < 0) << 1)) / (b)) - typedef struct { uint32_t left_ag; diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c index f5d3991..5c4fe7a 100644 --- a/pixman/pixman-pict.c +++ b/pixman/pixman-pict.c @@ -918,8 +918,6 @@ fbCompositeSolidMask_nx1xn (pixman_op_t op, #endif } -# define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b)) - /* * Apply a constant alpha value in an over computation */ @@ -1013,9 +1011,6 @@ compute_composite_region (pixman_region16_t *region, return TRUE; } - -#define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b)) - static void pixman_walk_composite_region (pixman_op_t op, pixman_image_t * pSrc, @@ -1059,13 +1054,13 @@ pixman_walk_composite_region (pixman_op_t op, x_dst = pbox->x1; if (maskRepeat) { - y_msk = mod (y_msk, pMask->bits.height); + y_msk = MOD (y_msk, pMask->bits.height); if (h_this > pMask->bits.height - y_msk) h_this = pMask->bits.height - y_msk; } if (srcRepeat) { - y_src = mod (y_src, pSrc->bits.height); + y_src = MOD (y_src, pSrc->bits.height); if (h_this > pSrc->bits.height - y_src) h_this = pSrc->bits.height - y_src; } @@ -1074,13 +1069,13 @@ pixman_walk_composite_region (pixman_op_t op, w_this = w; if (maskRepeat) { - x_msk = mod (x_msk, pMask->bits.width); + x_msk = MOD (x_msk, pMask->bits.width); if (w_this > pMask->bits.width - x_msk) w_this = pMask->bits.width - x_msk; } if (srcRepeat) { - x_src = mod (x_src, pSrc->bits.width); + x_src = MOD (x_src, pSrc->bits.width); if (w_this > pSrc->bits.width - x_src) w_this = pSrc->bits.width - x_src; } diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index fbb8cb7..8b42e62 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -490,6 +490,16 @@ void pixmanCompositeRect (const FbComposeData *data, #define div_255(x) (((x) + 0x80 + (((x) + 0x80) >> 8)) >> 8) +#define MOD(a,b) ((a) < 0 ? ((b) - ((-(a) - 1) % (b))) - 1 : (a) % (b)) + +#define DIV(a,b) ((((a) < 0) == ((b) < 0)) ? (a) / (b) : \ + ((a) - (b) + 1 - (((b) < 0) << 1)) / (b)) + +#if 0 +/* FIXME: the MOD macro above is equivalent, but faster I think */ +#define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b)) +#endif + /* FIXME: the (void)__read_func hides lots of warnings (which is what they * are supposed to do), but some of them are real. For example the one * where Fetch4 doesn't have a READ |