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,

-- 


Reply via email to