diff options
author | Kim Woelders <kim@woelders.dk> | 2021-11-30 16:24:04 +0100 |
---|---|---|
committer | Kim Woelders <kim@woelders.dk> | 2021-12-04 06:55:21 +0100 |
commit | b1208a13337cc8a942ae9b35f3ab5764edfba7f8 (patch) | |
tree | a8b6459e01c1edc9eed3653ae847fd33c8a07598 /src/lib | |
parent | 1411f6ac6990ac8e64f01cee42d9939704cac665 (diff) | |
download | imlib2-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.c | 13 | ||||
-rw-r--r-- | src/lib/scale.c | 42 | ||||
-rw-r--r-- | src/lib/scale.h | 4 | ||||
-rw-r--r-- | 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, |