Revert "Upstream merge"
[framework/uifw/evas.git] / src / lib / engines / common / evas_scale_smooth_scaler_downx.c
index 544b8c2..a443c85 100644 (file)
@@ -5,6 +5,9 @@
    int *xp, xap, yap, pos;
    //int dyy, dxx;
    int w = dst_clip_w;
+#ifdef EVAS_SLI
+   int ysli = dst_clip_y;
+#endif
 
    dptr = dst_ptr;
    pos = (src_region_y * src_w) + src_region_x;
      {
        while (dst_clip_h--)
          {
-           while (dst_clip_w--)
-             {
-               Cx = *xapp >> 16;
-               xap = *xapp & 0xffff;
-               pix = *yp + *xp + pos;
-
-               a = (A_VAL(pix) * xap) >> 10;
-               r = (R_VAL(pix) * xap) >> 10;
-               g = (G_VAL(pix) * xap) >> 10;
-               b = (B_VAL(pix) * xap) >> 10;
-               for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                 {
-                   pix++;
-                   a += (A_VAL(pix) * Cx) >> 10;
-                   r += (R_VAL(pix) * Cx) >> 10;
-                   g += (G_VAL(pix) * Cx) >> 10;
-                   b += (B_VAL(pix) * Cx) >> 10;
-                 }
-               if (j > 0)
-                 {
-                   pix++;
-                   a += (A_VAL(pix) * j) >> 10;
-                   r += (R_VAL(pix) * j) >> 10;
-                   g += (G_VAL(pix) * j) >> 10;
-                   b += (B_VAL(pix) * j) >> 10;
-                 }
-               if ((yap = *yapp) > 0)
-                 {
-                   pix = *yp + *xp + src_w + pos;
-                   aa = (A_VAL(pix) * xap) >> 10;
-                   rr = (R_VAL(pix) * xap) >> 10;
-                   gg = (G_VAL(pix) * xap) >> 10;
-                   bb = (B_VAL(pix) * xap) >> 10;
-                   for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                     {
-                       pix++;
-                       aa += (A_VAL(pix) * Cx) >> 10;
-                       rr += (R_VAL(pix) * Cx) >> 10;
-                       gg += (G_VAL(pix) * Cx) >> 10;
-                       bb += (B_VAL(pix) * Cx) >> 10;
-                     }
-                   if (j > 0)
-                     {
-                       pix++;
-                       aa += (A_VAL(pix) * j) >> 10;
-                       rr += (R_VAL(pix) * j) >> 10;
-                       gg += (G_VAL(pix) * j) >> 10;
-                       bb += (B_VAL(pix) * j) >> 10;
-                     }
-                   a += ((aa - a) * yap) >> 8;
-                   r += ((rr - r) * yap) >> 8;
-                   g += ((gg - g) * yap) >> 8;
-                   b += ((bb - b) * yap) >> 8;
-                 }
-               *pbuf++ = ARGB_JOIN(((a + (1 << 3)) >> 4),
-                                   ((r + (1 << 3)) >> 4),
-                                   ((g + (1 << 3)) >> 4),
-                                   ((b + (1 << 3)) >> 4));
-               xp++;  xapp++;
-             }
+#ifdef EVAS_SLI
+            if (((ysli) % dc->sli.h) == dc->sli.y)
+#endif
+              {
+                 while (dst_clip_w--)
+                   {
+                      Cx = *xapp >> 16;
+                      xap = *xapp & 0xffff;
+                      pix = *yp + *xp + pos;
 
-           func(buf, NULL, dc->mul.col, dptr, w);
+                      a = (A_VAL(pix) * xap) >> 10;
+                      r = (R_VAL(pix) * xap) >> 10;
+                      g = (G_VAL(pix) * xap) >> 10;
+                      b = (B_VAL(pix) * xap) >> 10;
+                      for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                        {
+                           pix++;
+                           a += (A_VAL(pix) * Cx) >> 10;
+                           r += (R_VAL(pix) * Cx) >> 10;
+                           g += (G_VAL(pix) * Cx) >> 10;
+                           b += (B_VAL(pix) * Cx) >> 10;
+                        }
+                      if (j > 0)
+                        {
+                           pix++;
+                           a += (A_VAL(pix) * j) >> 10;
+                           r += (R_VAL(pix) * j) >> 10;
+                           g += (G_VAL(pix) * j) >> 10;
+                           b += (B_VAL(pix) * j) >> 10;
+                        }
+                      if ((yap = *yapp) > 0)
+                        {
+                           pix = *yp + *xp + src_w + pos;
+                           aa = (A_VAL(pix) * xap) >> 10;
+                           rr = (R_VAL(pix) * xap) >> 10;
+                           gg = (G_VAL(pix) * xap) >> 10;
+                           bb = (B_VAL(pix) * xap) >> 10;
+                           for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                             {
+                                pix++;
+                                aa += (A_VAL(pix) * Cx) >> 10;
+                                rr += (R_VAL(pix) * Cx) >> 10;
+                                gg += (G_VAL(pix) * Cx) >> 10;
+                                bb += (B_VAL(pix) * Cx) >> 10;
+                             }
+                           if (j > 0)
+                             {
+                                pix++;
+                                aa += (A_VAL(pix) * j) >> 10;
+                                rr += (R_VAL(pix) * j) >> 10;
+                                gg += (G_VAL(pix) * j) >> 10;
+                                bb += (B_VAL(pix) * j) >> 10;
+                             }
+                           a += ((aa - a) * yap) >> 8;
+                           r += ((rr - r) * yap) >> 8;
+                           g += ((gg - g) * yap) >> 8;
+                           b += ((bb - b) * yap) >> 8;
+                        }
+                       *pbuf++ = ARGB_JOIN(((a + (1 << 3)) >> 4),
+                                           ((r + (1 << 3)) >> 4),
+                                           ((g + (1 << 3)) >> 4),
+                                           ((b + (1 << 3)) >> 4));
+                      xp++;  xapp++;
+                   }
 
-           pbuf = buf;
-           dptr += dst_w;  dst_clip_w = w;
-           yp++;  yapp++;
-           xp = xpoints;// + dxx;
-           xapp = xapoints;// + dxx;
+                 func(buf, NULL, dc->mul.col, dptr, w);
+              }
+#ifdef EVAS_SLI
+            ysli++;
+#endif
+            pbuf = buf;
+            dptr += dst_w;  dst_clip_w = w;
+            yp++;  yapp++;
+            xp = xpoints;// + dxx;
+            xapp = xapoints;// + dxx;
          }
      }
    else
             while (dst_clip_h--)
               {
                   pbuf = dptr;
-
-                 while (dst_clip_w--)
+#ifdef EVAS_SLI
+                 if (((ysli) % dc->sli.h) == dc->sli.y)
+#endif
                    {
-                     Cx = *xapp >> 16;
-                     xap = *xapp & 0xffff;
-                     pix = *yp + *xp + pos;
+                      while (dst_clip_w--)
+                        {
+                           Cx = *xapp >> 16;
+                           xap = *xapp & 0xffff;
+                           pix = *yp + *xp + pos;
 
-                     r = (R_VAL(pix) * xap) >> 10;
-                     g = (G_VAL(pix) * xap) >> 10;
-                     b = (B_VAL(pix) * xap) >> 10;
-                     for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                       {
-                         pix++;
-                         r += (R_VAL(pix) * Cx) >> 10;
-                         g += (G_VAL(pix) * Cx) >> 10;
-                         b += (B_VAL(pix) * Cx) >> 10;
-                       }
-                     if (j > 0)
-                       {
-                         pix++;
-                         r += (R_VAL(pix) * j) >> 10;
-                         g += (G_VAL(pix) * j) >> 10;
-                         b += (B_VAL(pix) * j) >> 10;
-                       }
-                     if ((yap = *yapp) > 0)
-                       {
-                         pix = *yp + *xp + src_w + pos;
-                         rr = (R_VAL(pix) * xap) >> 10;
-                         gg = (G_VAL(pix) * xap) >> 10;
-                         bb = (B_VAL(pix) * xap) >> 10;
-                         for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                           {
-                             pix++;
-                             rr += (R_VAL(pix) * Cx) >> 10;
-                             gg += (G_VAL(pix) * Cx) >> 10;
-                             bb += (B_VAL(pix) * Cx) >> 10;
-                           }
-                         if (j > 0)
-                           {
-                             pix++;
-                             rr += (R_VAL(pix) * j) >> 10;
-                             gg += (G_VAL(pix) * j) >> 10;
-                             bb += (B_VAL(pix) * j) >> 10;
-                           }
-                         r += ((rr - r) * yap) >> 8;
-                         g += ((gg - g) * yap) >> 8;
-                         b += ((bb - b) * yap) >> 8;
-                       }
-                     *pbuf++ = ARGB_JOIN(0xff,
-                                         ((r + (1 << 3)) >> 4),
-                                         ((g + (1 << 3)) >> 4),
-                                         ((b + (1 << 3)) >> 4));
-                     xp++;  xapp++;
+                           r = (R_VAL(pix) * xap) >> 10;
+                           g = (G_VAL(pix) * xap) >> 10;
+                           b = (B_VAL(pix) * xap) >> 10;
+                           for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                             {
+                                pix++;
+                                r += (R_VAL(pix) * Cx) >> 10;
+                                g += (G_VAL(pix) * Cx) >> 10;
+                                b += (B_VAL(pix) * Cx) >> 10;
+                             }
+                           if (j > 0)
+                             {
+                                pix++;
+                                r += (R_VAL(pix) * j) >> 10;
+                                g += (G_VAL(pix) * j) >> 10;
+                                b += (B_VAL(pix) * j) >> 10;
+                             }
+                           if ((yap = *yapp) > 0)
+                             {
+                                pix = *yp + *xp + src_w + pos;
+                                rr = (R_VAL(pix) * xap) >> 10;
+                                gg = (G_VAL(pix) * xap) >> 10;
+                                bb = (B_VAL(pix) * xap) >> 10;
+                                for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                                  {
+                                     pix++;
+                                     rr += (R_VAL(pix) * Cx) >> 10;
+                                     gg += (G_VAL(pix) * Cx) >> 10;
+                                     bb += (B_VAL(pix) * Cx) >> 10;
+                                  }
+                                if (j > 0)
+                                  {
+                                     pix++;
+                                     rr += (R_VAL(pix) * j) >> 10;
+                                     gg += (G_VAL(pix) * j) >> 10;
+                                     bb += (B_VAL(pix) * j) >> 10;
+                                  }
+                                r += ((rr - r) * yap) >> 8;
+                                g += ((gg - g) * yap) >> 8;
+                                b += ((bb - b) * yap) >> 8;
+                             }
+                            *pbuf++ = ARGB_JOIN(0xff,
+                                                ((r + (1 << 3)) >> 4),
+                                                ((g + (1 << 3)) >> 4),
+                                                ((b + (1 << 3)) >> 4));
+                           xp++;  xapp++;
+                        }
                    }
-                 
+#ifdef EVAS_SLI
+                 ysli++;
+#endif
+
                  dptr += dst_w;  dst_clip_w = w;
                  yp++;  yapp++;
                  xp = xpoints;// + dxx;
          {
             while (dst_clip_h--)
               {
-                while (dst_clip_w--)
-                  {
-                    Cx = *xapp >> 16;
-                    xap = *xapp & 0xffff;
-                    pix = *yp + *xp + pos;
+#ifdef EVAS_SLI
+                 if (((ysli) % dc->sli.h) == dc->sli.y)
+#endif
+                   {
+                      while (dst_clip_w--)
+                        {
+                           Cx = *xapp >> 16;
+                           xap = *xapp & 0xffff;
+                           pix = *yp + *xp + pos;
 
-                    r = (R_VAL(pix) * xap) >> 10;
-                    g = (G_VAL(pix) * xap) >> 10;
-                    b = (B_VAL(pix) * xap) >> 10;
-                    for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                      {
-                        pix++;
-                        r += (R_VAL(pix) * Cx) >> 10;
-                        g += (G_VAL(pix) * Cx) >> 10;
-                        b += (B_VAL(pix) * Cx) >> 10;
-                      }
-                    if (j > 0)
-                      {
-                        pix++;
-                        r += (R_VAL(pix) * j) >> 10;
-                        g += (G_VAL(pix) * j) >> 10;
-                        b += (B_VAL(pix) * j) >> 10;
-                      }
-                    if ((yap = *yapp) > 0)
-                      {
-                        pix = *yp + *xp + src_w + pos;
-                        rr = (R_VAL(pix) * xap) >> 10;
-                        gg = (G_VAL(pix) * xap) >> 10;
-                        bb = (B_VAL(pix) * xap) >> 10;
-                        for (j = (1 << 14) - xap; j > Cx; j -= Cx)
-                          {
-                            pix++;
-                            rr += (R_VAL(pix) * Cx) >> 10;
-                            gg += (G_VAL(pix) * Cx) >> 10;
-                            bb += (B_VAL(pix) * Cx) >> 10;
-                          }
-                        if (j > 0)
-                          {
-                            pix++;
-                            rr += (R_VAL(pix) * j) >> 10;
-                            gg += (G_VAL(pix) * j) >> 10;
-                            bb += (B_VAL(pix) * j) >> 10;
-                          }
-                        r += ((rr - r) * yap) >> 8;
-                        g += ((gg - g) * yap) >> 8;
-                        b += ((bb - b) * yap) >> 8;
-                      }
-                    *pbuf++ = ARGB_JOIN(0xff,
-                                        ((r + (1 << 3)) >> 4),
-                                        ((g + (1 << 3)) >> 4),
-                                        ((b + (1 << 3)) >> 4));
-                    xp++;  xapp++;
-                  }
-                
-                func(buf, NULL, dc->mul.col, dptr, w);
+                           r = (R_VAL(pix) * xap) >> 10;
+                           g = (G_VAL(pix) * xap) >> 10;
+                           b = (B_VAL(pix) * xap) >> 10;
+                           for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                             {
+                                pix++;
+                                r += (R_VAL(pix) * Cx) >> 10;
+                                g += (G_VAL(pix) * Cx) >> 10;
+                                b += (B_VAL(pix) * Cx) >> 10;
+                             }
+                           if (j > 0)
+                             {
+                                pix++;
+                                r += (R_VAL(pix) * j) >> 10;
+                                g += (G_VAL(pix) * j) >> 10;
+                                b += (B_VAL(pix) * j) >> 10;
+                             }
+                           if ((yap = *yapp) > 0)
+                             {
+                                pix = *yp + *xp + src_w + pos;
+                                rr = (R_VAL(pix) * xap) >> 10;
+                                gg = (G_VAL(pix) * xap) >> 10;
+                                bb = (B_VAL(pix) * xap) >> 10;
+                                for (j = (1 << 14) - xap; j > Cx; j -= Cx)
+                                  {
+                                     pix++;
+                                     rr += (R_VAL(pix) * Cx) >> 10;
+                                     gg += (G_VAL(pix) * Cx) >> 10;
+                                     bb += (B_VAL(pix) * Cx) >> 10;
+                                  }
+                                if (j > 0)
+                                  {
+                                     pix++;
+                                     rr += (R_VAL(pix) * j) >> 10;
+                                     gg += (G_VAL(pix) * j) >> 10;
+                                     bb += (B_VAL(pix) * j) >> 10;
+                                  }
+                                r += ((rr - r) * yap) >> 8;
+                                g += ((gg - g) * yap) >> 8;
+                                b += ((bb - b) * yap) >> 8;
+                             }
+                            *pbuf++ = ARGB_JOIN(0xff,
+                                                ((r + (1 << 3)) >> 4),
+                                                ((g + (1 << 3)) >> 4),
+                                                ((b + (1 << 3)) >> 4));
+                           xp++;  xapp++;
+                        }
 
-                pbuf = buf;
-                dptr += dst_w;  dst_clip_w = w;
-                yp++;  yapp++;
-                xp = xpoints;// + dxx;
-                xapp = xapoints;// + dxx;
+                      func(buf, NULL, dc->mul.col, dptr, w);
+                   }
+#ifdef EVAS_SLI
+                 ysli++;
+#endif
+
+                 pbuf = buf;
+                 dptr += dst_w;  dst_clip_w = w;
+                 yp++;  yapp++;
+                 xp = xpoints;// + dxx;
+                 xapp = xapoints;// + dxx;
               }
          }
      }