summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorKim Woelders <kim@woelders.dk>2021-11-30 16:24:04 +0100
committerKim Woelders <kim@woelders.dk>2021-12-04 06:55:21 +0100
commitb1208a13337cc8a942ae9b35f3ab5764edfba7f8 (patch)
treea8b6459e01c1edc9eed3653ae847fd33c8a07598 /src/lib
parent1411f6ac6990ac8e64f01cee42d9939704cac665 (diff)
downloadimlib2-b1208a13337cc8a942ae9b35f3ab5764edfba7f8.tar.gz
Refactoring around mmx and scaling function calls
Move call to __imlib_Scale_mmx_AARGBA() into __imlib_ScaleAARGBA() and __imlib_ScaleAARGB(). Similar to mmx/rotation handling.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/blend.c13
-rw-r--r--src/lib/scale.c42
-rw-r--r--src/lib/scale.h4
-rw-r--r--src/lib/x11_rend.c15
4 files changed, 38 insertions, 36 deletions
diff --git a/src/lib/blend.c b/src/lib/blend.c
index 648caea..92521ab 100644
--- a/src/lib/blend.c
+++ b/src/lib/blend.c
@@ -1847,10 +1847,6 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst,
int psx, psy, psw, psh;
int y, h, hh;
-#ifdef DO_MMX_ASM
- int do_mmx;
-#endif
-
sx = ssx;
sy = ssy;
sw = ssw;
@@ -1939,9 +1935,6 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst,
blend = 1;
}
/* scale in LINESIZE Y chunks and convert to depth */
-#ifdef DO_MMX_ASM
- do_mmx = __imlib_get_cpuid() & CPUID_MMX;
-#endif
for (y = 0; y < dh; y += LINESIZE)
{
hh = LINESIZE;
@@ -1950,12 +1943,6 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst,
/* scale the imagedata for this LINESIZE lines chunk of image */
if (aa)
{
-#ifdef DO_MMX_ASM
- if (do_mmx)
- __imlib_Scale_mmx_AARGBA(scaleinfo, buf, dxx, dyy + y,
- 0, 0, dw, hh, dw, im_src->w);
- else
-#endif
if (IMAGE_HAS_ALPHA(im_src))
__imlib_ScaleAARGBA(scaleinfo, buf, dxx, dyy + y,
0, 0, dw, hh, dw, im_src->w);
diff --git a/src/lib/scale.c b/src/lib/scale.c
index a94f13c..c6b6bd0 100644
--- a/src/lib/scale.c
+++ b/src/lib/scale.c
@@ -312,10 +312,23 @@ __imlib_ScaleAARGBA(ImlibScaleInfo * isi, DATA32 * dest, int dxx, int dyy,
{
DATA32 *sptr, *dptr;
int x, y, end;
- DATA32 **ypoints = isi->ypoints;
- int *xpoints = isi->xpoints;
- int *xapoints = isi->xapoints;
- int *yapoints = isi->yapoints;
+ DATA32 **ypoints;
+ int *xpoints;
+ int *xapoints;
+ int *yapoints;
+
+#ifdef DO_MMX_ASM
+ if (__imlib_get_cpuid() & CPUID_MMX)
+ {
+ __imlib_Scale_mmx_AARGBA(isi, dest, dxx, dyy, dx, dy, dw, dh, dow, sow);
+ return;
+ }
+#endif
+
+ ypoints = isi->ypoints;
+ xpoints = isi->xpoints;
+ xapoints = isi->xapoints;
+ yapoints = isi->yapoints;
end = dxx + dw;
/* scaling up both ways */
@@ -960,10 +973,23 @@ __imlib_ScaleAARGB(ImlibScaleInfo * isi, DATA32 * dest, int dxx, int dyy,
{
DATA32 *sptr, *dptr;
int x, y, end;
- DATA32 **ypoints = isi->ypoints;
- int *xpoints = isi->xpoints;
- int *xapoints = isi->xapoints;
- int *yapoints = isi->yapoints;
+ DATA32 **ypoints;
+ int *xpoints;
+ int *xapoints;
+ int *yapoints;
+
+#ifdef DO_MMX_ASM
+ if (__imlib_get_cpuid() & CPUID_MMX)
+ {
+ __imlib_Scale_mmx_AARGBA(isi, dest, dxx, dyy, dx, dy, dw, dh, dow, sow);
+ return;
+ }
+#endif
+
+ ypoints = isi->ypoints;
+ xpoints = isi->xpoints;
+ xapoints = isi->xapoints;
+ yapoints = isi->yapoints;
end = dxx + dw;
/* scaling up both ways */
diff --git a/src/lib/scale.h b/src/lib/scale.h
index e15a4dd..1ebd845 100644
--- a/src/lib/scale.h
+++ b/src/lib/scale.h
@@ -18,8 +18,12 @@ void __imlib_ScaleAARGBA(ImlibScaleInfo * isi, DATA32 * dest,
void __imlib_ScaleAARGB(ImlibScaleInfo * isi, DATA32 * dest,
int dxx, int dyy, int dx, int dy,
int dw, int dh, int dow, int sow);
+
+#ifdef DO_MMX_ASM
void __imlib_Scale_mmx_AARGBA(ImlibScaleInfo * isi,
DATA32 * dest,
int dxx, int dyy, int dx, int dy,
int dw, int dh, int dow, int sow);
#endif
+
+#endif
diff --git a/src/lib/x11_rend.c b/src/lib/x11_rend.c
index b9e3402..22ea2c8 100644
--- a/src/lib/x11_rend.c
+++ b/src/lib/x11_rend.c
@@ -265,10 +265,6 @@ __imlib_RenderImage(Display * d, ImlibImage * im,
ImlibMaskFunction masker = NULL;
ImlibBlendFunction blender = NULL;
-#ifdef DO_MMX_ASM
- int do_mmx;
-#endif
-
blender = __imlib_GetBlendFunction(op, 1, 0,
(!(im->flags & F_HAS_ALPHA)), NULL);
@@ -372,9 +368,6 @@ __imlib_RenderImage(Display * d, ImlibImage * im,
hiq, ct->palette_type);
if (m)
masker = __imlib_GetMaskFunction(dither_mask);
-#ifdef DO_MMX_ASM
- do_mmx = __imlib_get_cpuid() & CPUID_MMX;
-#endif
for (y = 0; y < dh; y += LINESIZE)
{
hh = LINESIZE;
@@ -386,14 +379,6 @@ __imlib_RenderImage(Display * d, ImlibImage * im,
/* scale the imagedata for this LINESIZE lines chunk of image data */
if (antialias)
{
-#ifdef DO_MMX_ASM
- if (do_mmx)
- __imlib_Scale_mmx_AARGBA(scaleinfo, buf,
- ((sx * dw) / sw),
- ((sy * dh) / sh) + y,
- 0, 0, dw, hh, dw, im->w);
- else
-#endif
if (IMAGE_HAS_ALPHA(im))
__imlib_ScaleAARGBA(scaleinfo, buf, ((sx * dw) / sw),
((sy * dh) / sh) + y,