summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorKim Woelders <kim@woelders.dk>2021-11-30 08:04:49 +0100
committerKim Woelders <kim@woelders.dk>2021-12-04 06:55:21 +0100
commit1411f6ac6990ac8e64f01cee42d9939704cac665 (patch)
treed2e7f83c968aa8c2c1cf0bc6bcd0aeb2093cfb6f /src/lib
parent9b292496198fc666e655aa9878368d1273e3cc3f (diff)
downloadimlib2-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.c22
-rw-r--r--src/lib/rotate.c28
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