diff options
author | Kim Woelders <kim@woelders.dk> | 2021-11-30 08:04:49 +0100 |
---|---|---|
committer | Kim Woelders <kim@woelders.dk> | 2021-12-04 06:55:21 +0100 |
commit | 1411f6ac6990ac8e64f01cee42d9939704cac665 (patch) | |
tree | d2e7f83c968aa8c2c1cf0bc6bcd0aeb2093cfb6f /src/lib | |
parent | 9b292496198fc666e655aa9878368d1273e3cc3f (diff) | |
download | imlib2-1411f6ac6990ac8e64f01cee42d9939704cac665.tar.gz |
Refactoring around mmx and rotate function calls
Move call to __imlib_mmx_RotateAA() into __imlib_RotateAA().
Avoids some code duplication.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/api.c | 22 | ||||
-rw-r--r-- | src/lib/rotate.c | 28 |
2 files changed, 17 insertions, 33 deletions
diff --git a/src/lib/api.c b/src/lib/api.c index 190b5e6..9bf16df 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -4679,15 +4679,8 @@ imlib_create_rotated_image(double angle) if (ctx->anti_alias) { -#ifdef DO_MMX_ASM - if (__imlib_get_cpuid() & CPUID_MMX) - __imlib_mmx_RotateAA(im_old->data, im->data, im_old->w, im_old->w, - im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, - dx); - else -#endif - __imlib_RotateAA(im_old->data, im->data, im_old->w, im_old->w, - im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); + __imlib_RotateAA(im_old->data, im->data, im_old->w, im_old->w, + im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); } else { @@ -4747,15 +4740,8 @@ imlib_rotate_image_from_buffer(double angle, Imlib_Image source_image) if (ctx->anti_alias) { -#ifdef DO_MMX_ASM - if (__imlib_get_cpuid() & CPUID_MMX) - __imlib_mmx_RotateAA(im_old->data, im->data, im_old->w, im_old->w, - im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, - dx); - else -#endif - __imlib_RotateAA(im_old->data, im->data, im_old->w, im_old->w, - im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); + __imlib_RotateAA(im_old->data, im->data, im_old->w, im_old->w, + im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); } else { diff --git a/src/lib/rotate.c b/src/lib/rotate.c index 4b9b7b9..968a5a1 100644 --- a/src/lib/rotate.c +++ b/src/lib/rotate.c @@ -210,6 +210,15 @@ __imlib_RotateAA(DATA32 * src, DATA32 * dest, int sow, int sw, int sh, if ((dw < 1) || (dh < 1)) return; +#ifdef DO_MMX_ASM + if (__imlib_get_cpuid() & CPUID_MMX) + { + __imlib_mmx_RotateAA(src, dest, sow, sw, sh, dow, dw, dh, x, y, + dxh, dyh, dxv, dyv); + return; + } +#endif + if (__check_inside_coords(x, y, dxh, dyh, dxv, dyv, dw, dh, sw - 1, sh - 1)) { __imlib_RotateAAInside(src, dest, sow, dow, dw, dh, x, y, @@ -344,10 +353,6 @@ __imlib_BlendImageToImageSkewed(ImlibImage * im_src, ImlibImage * im_dst, double xy2; DATA32 *data, *src; -#ifdef DO_MMX_ASM - int do_mmx; -#endif - if ((ssw < 0) || (ssh < 0)) return; @@ -405,15 +410,14 @@ __imlib_BlendImageToImageSkewed(ImlibImage * im_src, ImlibImage * im_dst, data = malloc(im_dst->w * LINESIZE * sizeof(DATA32)); if (!data) return; + if (aa) { /*\ Account for virtual transparent border \ */ x += _ROTATE_PREC_MAX; y += _ROTATE_PREC_MAX; } -#ifdef DO_MMX_ASM - do_mmx = __imlib_get_cpuid() & CPUID_MMX; -#endif + for (i = 0; i < im_dst->h; i += LINESIZE) { int x2, y2, w, h, l, r; @@ -519,14 +523,8 @@ __imlib_BlendImageToImageSkewed(ImlibImage * im_src, ImlibImage * im_dst, { x -= _ROTATE_PREC_MAX; y -= _ROTATE_PREC_MAX; -#ifdef DO_MMX_ASM - if (do_mmx) - __imlib_mmx_RotateAA(src, data, im_src->w, ssw, ssh, w, w, h, - x, y, dxh, dyh, dxv, dyv); - else -#endif - __imlib_RotateAA(src, data, im_src->w, ssw, ssh, w, w, h, - x, y, dxh, dyh, dxv, dyv); + __imlib_RotateAA(src, data, im_src->w, ssw, ssh, w, w, h, + x, y, dxh, dyh, dxv, dyv); } else |