kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=b1208a13337cc8a942ae9b35f3ab5764edfba7f8
commit b1208a13337cc8a942ae9b35f3ab5764edfba7f8 Author: Kim Woelders <k...@woelders.dk> Date: Tue Nov 30 16:24:04 2021 +0100 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. --- src/lib/blend.c | 13 ------------- src/lib/scale.c | 42 ++++++++++++++++++++++++++++++++++-------- src/lib/scale.h | 4 ++++ src/lib/x11_rend.c | 15 --------------- 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, --