Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

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


Modified Files:
        evas_blend_pixel_pixel.c 


Log Message:


alignment...
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_blend_pixel_pixel.c    14 Nov 2002 05:38:10 -0000      1.2
+++ evas_blend_pixel_pixel.c    27 Feb 2003 00:07:46 -0000      1.3
@@ -143,12 +143,32 @@
 evas_common_copy_pixels_rgba_to_rgba_mmx(DATA32 *src, DATA32 *dst, int len)
 {
    DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre;
-   
+   int src_align;
+   int dst_align;
+
+   src_align = (int)src & 0x7; /* 8 byte alignment */
+   dst_align = (int)dst & 0x7; /* 8 byte alignment */
+   if ((!src_align) && (!dst_align))
+     /* both not aligned. do fixup */
+     {
+       *dst = *src;
+       dst++;
+       src++;
+       len--;
+     }
+   else if ((!src_align) || (!dst_align))
+     /* one isnt aligned. we can't do fixup. do it the slow way */
+     {
+#ifdef BUILD_C
+       evas_common_copy_pixels_rgba_to_rgba_c(src, dst, len);
+#endif
+       return;
+     }
    src_ptr = src;
    dst_ptr = dst;
    dst_end_ptr = dst + len;
    dst_end_ptr_pre = dst + ((len / 10) * 10);
-
+   
    while (dst_ptr < dst_end_ptr_pre)
      {
        MOVE_10DWORDS_MMX(src_ptr, dst_ptr);
@@ -169,6 +189,27 @@
 evas_common_copy_pixels_rgba_to_rgba_sse(DATA32 *src, DATA32 *dst, int len)
 {
    DATA32 *src_ptr, *dst_ptr, *dst_end_ptr, *dst_end_ptr_pre;
+   int src_align;
+   int dst_align;
+
+   src_align = (int)src & 0x7; /* 8 byte alignment */
+   dst_align = (int)dst & 0x7; /* 8 byte alignment */
+   if ((!src_align) && (!dst_align))
+     /* both not aligned. do fixup */
+     {
+       *dst = *src;
+       dst++;
+       src++;
+       len--;
+     }
+   else if ((!src_align) || (!dst_align))
+     /* one isnt aligned. we can't do fixup. do it the slow way */
+     {
+#ifdef BUILD_C
+       evas_common_copy_pixels_rgba_to_rgba_c(src, dst, len);
+#endif
+       return;
+     }
    
    src_ptr = src;
    dst_ptr = dst;




-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to