Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/engines/common


Modified Files:
        evas_convert_main.c evas_convert_rgb_16.c 
        evas_convert_rgb_32.c 


Log Message:


rotation patches for 180 degrees - thankyoooo! :)

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_convert_main.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- evas_convert_main.c 10 Feb 2007 17:23:06 -0000      1.7
+++ evas_convert_main.c 2 Mar 2007 14:51:16 -0000       1.8
@@ -208,6 +208,15 @@
                         return evas_common_convert_rgba_to_16bpp_rgb_565_dith;
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -240,6 +249,15 @@
                         return evas_common_convert_rgba_to_16bpp_bgr_565_dith;
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -272,6 +290,15 @@
                         return evas_common_convert_rgba_to_16bpp_rgb_555_dith;
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -304,6 +331,15 @@
                         return evas_common_convert_rgba_to_16bpp_rgb_444_dith;
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -337,6 +373,15 @@
 
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -370,6 +415,15 @@
 
                    }
 #endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+                 if (rotation == 180)
+                   {
+                      if ((!(w & 0x1)) && (!((int)dest & 0x3)))
+                        return 
evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180;
+                      else
+                        return 
evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180;
+                   }
+#endif
 #ifdef BUILD_CONVERT_16_RGB_ROT270
                  if (rotation == 270)
                    {
@@ -400,6 +454,10 @@
                  if (rotation == 0)
                    return evas_common_convert_rgba_to_32bpp_rgb_8888;
 #endif
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+                 if (rotation == 180)
+                   return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180;
+#endif
 #ifdef BUILD_CONVERT_32_RGB_ROT270
                  if (rotation == 270)
                    return evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270;
@@ -417,6 +475,10 @@
                  if (rotation == 0)
                    return evas_common_convert_rgba_to_32bpp_rgbx_8888;
 #endif
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+                 if (rotation == 180)
+                   return evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_180;
+#endif
 #ifdef BUILD_CONVERT_32_RGB_ROT270
                  if (rotation == 270)
                    return evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_270;
@@ -434,6 +496,10 @@
                  if (rotation == 0)
                    return evas_common_convert_rgba_to_32bpp_bgr_8888;
 #endif
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+                 if (rotation == 180)
+                   return evas_common_convert_rgba_to_32bpp_bgr_8888_rot_180;
+#endif
 #ifdef BUILD_CONVERT_32_RGB_ROT270
                  if (rotation == 270)
                    return evas_common_convert_rgba_to_32bpp_bgr_8888_rot_270;
@@ -450,6 +516,10 @@
 #ifdef BUILD_CONVERT_32_RGB_ROT0
                  if (rotation == 0)
                    return evas_common_convert_rgba_to_32bpp_bgrx_8888;
+#endif
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+                 if (rotation == 180)
+                   return evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_180;
 #endif
 #ifdef BUILD_CONVERT_32_RGB_ROT270
                  if (rotation == 270)
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_convert_rgb_16.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_convert_rgb_16.c       10 Feb 2007 17:23:06 -0000      1.5
+++ evas_convert_rgb_16.c       2 Mar 2007 14:51:16 -0000       1.6
@@ -93,6 +93,92 @@
 #endif
 
 #ifdef BUILD_CONVERT_16_RGB_565
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r1, g1, b1;
+   DATA8 r2, g2, b2;
+   DATA8 dith, dith2;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP2_START_ROT_180();
+
+   r1 = (R_VAL(src_ptr)) >> 3;
+   g1 = (G_VAL(src_ptr)) >> 2;
+   b1 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++;
+   if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++;
+   if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++;
+
+   CONVERT_LOOP2_INC_ROT_180();
+
+   r2 = (R_VAL(src_ptr)) >> 3;
+   g2 = (G_VAL(src_ptr)) >> 2;
+   b2 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++;
+   if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++;
+   if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++;
+
+#ifndef WORDS_BIGENDIAN
+   *((DATA32 *)dst_ptr) =
+     (r2 << 27) | (g2 << 21) | (b2 << 16) |
+     (r1 << 11) | (g1 << 5 ) | (b1      );
+#else
+   *((DATA32 *)dst_ptr) =
+     (r1 << 27) | (g1 << 21) | (b1 << 16) |
+     (r2 << 11) | (g2 << 5 ) | (b2      );
+#endif
+
+   CONVERT_LOOP2_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_565
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r, g, b;
+   DATA8 dith, dith2;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   r = (R_VAL(src_ptr)) >> 3;
+   g = (G_VAL(src_ptr)) >> 2;
+   b = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++;
+   if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++;
+   if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++;
+
+   *dst_ptr = (r << 11) | (g << 5) | (b);
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_565
 #ifdef BUILD_CONVERT_16_RGB_ROT270
 void
 evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_270 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
@@ -288,6 +374,7 @@
    if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++;
    if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++;
    if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++;
+
    CONVERT_LOOP2_INC_ROT_0();
 
    r2 = (R_VAL(src_ptr)) >> 3;
@@ -350,6 +437,94 @@
 #endif
 
 #ifdef BUILD_CONVERT_16_BGR_565
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r1, g1, b1;
+   DATA8 r2, g2, b2;
+   DATA8 dith, dith2;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP2_START_ROT_180();
+
+   r1 = (R_VAL(src_ptr)) >> 3;
+   g1 = (G_VAL(src_ptr)) >> 2;
+   b1 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r1 << 3)) >= dith ) && (r1 < 0x1f)) r1++;
+   if (((G_VAL(src_ptr) - (g1 << 2)) >= dith2) && (g1 < 0x3f)) g1++;
+   if (((B_VAL(src_ptr) - (b1 << 3)) >= dith ) && (b1 < 0x1f)) b1++;
+
+   CONVERT_LOOP2_INC_ROT_180();
+
+   r2 = (R_VAL(src_ptr)) >> 3;
+   g2 = (G_VAL(src_ptr)) >> 2;
+   b2 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r2 << 3)) >= dith ) && (r2 < 0x1f)) r2++;
+   if (((G_VAL(src_ptr) - (g2 << 2)) >= dith2) && (g2 < 0x3f)) g2++;
+   if (((B_VAL(src_ptr) - (b2 << 3)) >= dith ) && (b2 < 0x1f)) b2++;
+
+#ifndef WORDS_BIGENDIAN
+   *((DATA32 *)dst_ptr) =
+     (b2 << 27) | (g2 << 21) | (r2 << 16) |
+     (b1 << 11) | (g1 << 5 ) | (r1      );
+#else
+   *((DATA32 *)dst_ptr) =
+     (b1 << 27) | (g1 << 21) | (r1 << 16) |
+     (b2 << 11) | (g2 << 5 ) | (r2      );
+#endif
+
+   CONVERT_LOOP2_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_BGR_565
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r, g, b;
+   DATA8 dith, dith2;
+
+   dst_ptr = (DATA16 *)dst;
+
+   fprintf(stderr, "evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180\n");
+
+   CONVERT_LOOP_START_ROT_180();
+
+   r = (R_VAL(src_ptr)) >> 3;
+   g = (G_VAL(src_ptr)) >> 2;
+   b = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   dith2 = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(6);
+   if (((R_VAL(src_ptr) - (r << 3)) >= dith ) && (r < 0x1f)) r++;
+   if (((G_VAL(src_ptr) - (g << 2)) >= dith2) && (g < 0x3f)) g++;
+   if (((B_VAL(src_ptr) - (b << 3)) >= dith ) && (b < 0x1f)) b++;
+
+   *dst_ptr = (b << 11) | (g << 5) | (r);
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_BGR_565
 #ifdef BUILD_CONVERT_16_RGB_ROT270
 void
 evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_270 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
@@ -605,6 +780,89 @@
 #endif
 
 #ifdef BUILD_CONVERT_16_RGB_444
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r1, g1, b1;
+   DATA8 r2, g2, b2;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP2_START_ROT_180();
+
+   r1 = (R_VAL(src_ptr)) >> 4;
+   g1 = (G_VAL(src_ptr)) >> 4;
+   b1 = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++;
+   if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++;
+   if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++;
+
+   CONVERT_LOOP2_INC_ROT_180();
+
+   r2 = (R_VAL(src_ptr)) >> 4;
+   g2 = (G_VAL(src_ptr)) >> 4;
+   b2 = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++;
+   if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++;
+   if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++;
+
+#ifndef WORDS_BIGENDIAN
+   *((DATA32 *)dst_ptr) =
+     (r2 << 24) | (g2 << 20) | (b2 << 16) |
+     (r1 << 8 ) | (g1 << 4 ) | (b1      );
+#else
+   *((DATA32 *)dst_ptr) =
+     (r1 << 24) | (g1 << 20) | (b1 << 16) |
+     (r2 << 8 ) | (g2 << 4 ) | (b2      );
+#endif
+
+   CONVERT_LOOP2_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_444
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba_to_16bpp_rgb_444_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r, g, b;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   r = (R_VAL(src_ptr)) >> 4;
+   g = (G_VAL(src_ptr)) >> 4;
+   b = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++;
+   if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++;
+   if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++;
+
+   *dst_ptr = (r << 8) | (g << 4) | (b);
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_444
 #ifdef BUILD_CONVERT_16_RGB_ROT270
 void
 evas_common_convert_rgba2_to_16bpp_rgb_444_dith_rot_270 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
@@ -854,6 +1112,90 @@
 #endif
 
 #ifdef BUILD_CONVERT_16_RGB_454645
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r1, g1, b1;
+   DATA8 r2, g2, b2;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP2_START_ROT_180();
+
+   r1 = (R_VAL(src_ptr)) >> 4;
+   g1 = (G_VAL(src_ptr)) >> 4;
+   b1 = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r1 << 4)) >= dith ) && (r1 < 0x0f)) r1++;
+   if (((G_VAL(src_ptr) - (g1 << 4)) >= dith ) && (g1 < 0x0f)) g1++;
+   if (((B_VAL(src_ptr) - (b1 << 4)) >= dith ) && (b1 < 0x0f)) b1++;
+
+   CONVERT_LOOP2_INC_ROT_180();
+
+   r2 = (R_VAL(src_ptr)) >> 4;
+   g2 = (G_VAL(src_ptr)) >> 4;
+   b2 = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r2 << 4)) >= dith ) && (r2 < 0x0f)) r2++;
+   if (((G_VAL(src_ptr) - (g2 << 4)) >= dith ) && (g2 < 0x0f)) g2++;
+   if (((B_VAL(src_ptr) - (b2 << 4)) >= dith ) && (b2 < 0x0f)) b2++;
+
+#ifndef WORDS_BIGENDIAN
+   *((DATA32 *)dst_ptr) =
+     (r2 << 28) | (g2 << 23) | (b2 << 17) |
+     (r1 << 12) | (g1 << 7 ) | (b1 << 1 );
+#else
+   *((DATA32 *)dst_ptr) =
+     (r1 << 28) | (g1 << 23) | (b1 << 17) |
+     (r2 << 12) | (g2 << 7 ) | (b2 << 1 );
+#endif
+
+   CONVERT_LOOP2_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_454645
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba_to_16bpp_rgb_454645_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r, g, b;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   r = (R_VAL(src_ptr)) >> 4;
+   g = (G_VAL(src_ptr)) >> 4;
+   b = (B_VAL(src_ptr)) >> 4;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(4);
+   if (((R_VAL(src_ptr) - (r << 4)) >= dith ) && (r < 0x0f)) r++;
+   if (((G_VAL(src_ptr) - (g << 4)) >= dith ) && (g < 0x0f)) g++;
+   if (((B_VAL(src_ptr) - (b << 4)) >= dith ) && (b < 0x0f)) b++;
+
+   *dst_ptr = (r << 12) | (g << 7) | (b << 1);
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+
+#ifdef BUILD_CONVERT_16_RGB_454645
 #ifdef BUILD_CONVERT_16_RGB_ROT270
 void
 evas_common_convert_rgba2_to_16bpp_rgb_454645_dith_rot_270 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
@@ -1096,6 +1438,89 @@
    *dst_ptr = (r << 10) | (g << 5) | (b);
 
    CONVERT_LOOP_END_ROT_0();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_555
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba2_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r1, g1, b1;
+   DATA8 r2, g2, b2;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP2_START_ROT_180();
+
+   r1 = (R_VAL(src_ptr)) >> 3;
+   g1 = (G_VAL(src_ptr)) >> 3;
+   b1 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   if (((R_VAL(src_ptr) - (r1 << 3)) >= dith) && (r1 < 0x1f)) r1++;
+   if (((G_VAL(src_ptr) - (g1 << 3)) >= dith) && (g1 < 0x1f)) g1++;
+   if (((B_VAL(src_ptr) - (b1 << 3)) >= dith) && (b1 < 0x1f)) b1++;
+
+   CONVERT_LOOP2_INC_ROT_180();
+
+   r2 = (R_VAL(src_ptr)) >> 3;
+   g2 = (G_VAL(src_ptr)) >> 3;
+   b2 = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   if (((R_VAL(src_ptr) - (r2 << 3)) >= dith) && (r2 < 0x1f)) r2++;
+   if (((G_VAL(src_ptr) - (g2 << 3)) >= dith) && (g2 < 0x1f)) g2++;
+   if (((B_VAL(src_ptr) - (b2 << 3)) >= dith) && (b2 < 0x1f)) b2++;
+
+#ifndef WORDS_BIGENDIAN
+   *((DATA32 *)dst_ptr) =
+     (r2 << 26) | (g2 << 21) | (b2 << 16) |
+     (r1 << 10) | (g1 << 5 ) | (b1      );
+#else
+   *((DATA32 *)dst_ptr) =
+     (r1 << 26) | (g1 << 21) | (b1 << 16) |
+     (r2 << 10) | (g2 << 5 ) | (b2      );
+#endif
+
+   CONVERT_LOOP2_END_ROT_180();
+   return;
+   pal = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_16_RGB_555
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+void
+evas_common_convert_rgba_to_16bpp_rgb_555_dith_rot_180 (DATA32 *src, DATA8 
*dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 
*pal)
+{
+   DATA32 *src_ptr;
+   DATA16 *dst_ptr;
+   int x, y;
+   DATA8 r, g, b;
+   DATA8 dith;
+
+   dst_ptr = (DATA16 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   r = (R_VAL(src_ptr)) >> 3;
+   g = (G_VAL(src_ptr)) >> 3;
+   b = (B_VAL(src_ptr)) >> 3;
+   dith = DM_TABLE[(x + dith_x) & DM_MSK][(y + dith_y) & DM_MSK] >> DM_SHF(5);
+   if (((R_VAL(src_ptr) - (r << 3)) >= dith) && (r < 0x1f)) r++;
+   if (((G_VAL(src_ptr) - (g << 3)) >= dith) && (g < 0x1f)) g++;
+   if (((B_VAL(src_ptr) - (b << 3)) >= dith) && (b < 0x1f)) b++;
+
+   *dst_ptr = (r << 10) | (g << 5) | (b);
+
+   CONVERT_LOOP_END_ROT_180();
    return;
    pal = 0;
 }
===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_convert_rgb_32.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_convert_rgb_32.c       30 Sep 2006 10:18:32 -0000      1.5
+++ evas_convert_rgb_32.c       2 Mar 2007 14:51:16 -0000       1.6
@@ -30,6 +30,30 @@
 #endif
 
 #ifdef BUILD_CONVERT_32_RGB_8888
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+void
+evas_common_convert_rgba_to_32bpp_rgb_8888_rot_180 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
+{
+   DATA32 *src_ptr;
+   DATA32 *dst_ptr;
+   int x, y;
+
+   dst_ptr = (DATA32 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   *dst_ptr = *src_ptr;
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+   dith_x = 0;
+   dith_y = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_32_RGB_8888
 #ifdef BUILD_CONVERT_32_RGB_ROT270
 void
 evas_common_convert_rgba_to_32bpp_rgb_8888_rot_270 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
@@ -103,6 +127,31 @@
 #endif
 
 #ifdef BUILD_CONVERT_32_RGBX_8888
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+void
+evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_180 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
+{
+   DATA32 *src_ptr;
+   DATA32 *dst_ptr;
+   int x, y;
+
+   dst_ptr = (DATA32 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+//   *dst_ptr = (R_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | 
(B_VAL(src_ptr) << 8);
+   *dst_ptr = (*src_ptr << 8);
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+   dith_x = 0;
+   dith_y = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_32_RGBX_8888
 #ifdef BUILD_CONVERT_32_RGB_ROT270
 void
 evas_common_convert_rgba_to_32bpp_rgbx_8888_rot_270 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
@@ -177,6 +226,30 @@
 #endif
 
 #ifdef BUILD_CONVERT_32_BGR_8888
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+void
+evas_common_convert_rgba_to_32bpp_bgr_8888_rot_180 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
+{
+   DATA32 *src_ptr;
+   DATA32 *dst_ptr;
+   int x, y;
+
+   dst_ptr = (DATA32 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   *dst_ptr = (B_VAL(src_ptr) << 16) | (G_VAL(src_ptr) << 8) | 
(R_VAL(src_ptr));
+
+   CONVERT_LOOP_END_ROT_180();
+   return;
+   pal = 0;
+   dith_x = 0;
+   dith_y = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_32_BGR_8888
 #ifdef BUILD_CONVERT_32_RGB_ROT270
 void
 evas_common_convert_rgba_to_32bpp_bgr_8888_rot_270 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
@@ -240,6 +313,30 @@
    *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | 
(R_VAL(src_ptr) << 8);
 
    CONVERT_LOOP_END_ROT_0();
+   return;
+   pal = 0;
+   dith_x = 0;
+   dith_y = 0;
+}
+#endif
+#endif
+
+#ifdef BUILD_CONVERT_32_BGRX_8888
+#ifdef BUILD_CONVERT_32_RGB_ROT180
+void
+evas_common_convert_rgba_to_32bpp_bgrx_8888_rot_180 (DATA32 *src, DATA8 *dst, 
int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 *pal)
+{
+   DATA32 *src_ptr;
+   DATA32 *dst_ptr;
+   int x, y;
+
+   dst_ptr = (DATA32 *)dst;
+
+   CONVERT_LOOP_START_ROT_180();
+
+   *dst_ptr = (B_VAL(src_ptr) << 24) | (G_VAL(src_ptr) << 16) | 
(R_VAL(src_ptr) << 8);
+
+   CONVERT_LOOP_END_ROT_180();
    return;
    pal = 0;
    dith_x = 0;



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to