This patch, the fourth in a series, involves the file
"evas_blend_pixel_pixel.c" of the "engines/common" dir.


                        jose.

-----------------------------------------------------------------------

Index: cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pi
xel_pixel.c,v
retrieving revision 1.5
diff -u -r1.5 evas_blend_pixel_pixel.c
--- cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c   10
Sep 2003 08:52:17 -0000 1.5
+++ cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c   17
Mar 2004 07:14:59 -0000
@@ -20,19 +20,25 @@
    while (dst_ptr < dst_end_ptr)
      {
        DATA32 tmp;
+       DATA8  a;
 
-       if (A_VAL(src_ptr)) /* hmmm - do we need this? */
+       a = A_VAL(src_ptr);
+       if (!a) { src_ptr++;  dst_ptr++;  continue; }
+       if (a == 0xff)
+         {
+            *dst_ptr = *src_ptr;
+            src_ptr++;  dst_ptr++;  continue; }
          {
-            BLEND_COLOR(A_VAL(src_ptr), R_VAL(dst_ptr), 
-                        R_VAL(src_ptr), R_VAL(dst_ptr), 
-                        tmp);
-            BLEND_COLOR(A_VAL(src_ptr), G_VAL(dst_ptr), 
-                        G_VAL(src_ptr), G_VAL(dst_ptr), 
-                        tmp);
-            BLEND_COLOR(A_VAL(src_ptr), B_VAL(dst_ptr), 
-                        B_VAL(src_ptr), B_VAL(dst_ptr), 
-                        tmp);
-         }
+       BLEND_COLOR(a, R_VAL(dst_ptr), 
+                 R_VAL(src_ptr), R_VAL(dst_ptr), 
+                 tmp);
+       BLEND_COLOR(a, G_VAL(dst_ptr), 
+                 G_VAL(src_ptr), G_VAL(dst_ptr), 
+                 tmp);
+       BLEND_COLOR(a, B_VAL(dst_ptr), 
+                 B_VAL(src_ptr), B_VAL(dst_ptr), 
+                 tmp);
+
        src_ptr++;
        dst_ptr++;
      }
@@ -97,21 +103,27 @@
        DATA32 tmp;
        DATA8  a;
        
-       if (A_VAL(src_ptr)) /* hmmm - do we need this? */
+       a = A_VAL(src_ptr);
+       if (!a) { src_ptr++;  dst_ptr++;  continue; }
+       if (a == 0xff)
+         {
+            *dst_ptr = *src_ptr;
+            src_ptr++;  dst_ptr++;  continue; }
          {
-            a = _evas_pow_lut[A_VAL(src_ptr)][A_VAL(dst_ptr)];
+       a = _evas_pow_lut[a][A_VAL(dst_ptr)];
+       BLEND_COLOR(A_VAL(src_ptr), A_VAL(dst_ptr), 
+                 255, A_VAL(dst_ptr), 
+                 tmp);
+       BLEND_COLOR(a, R_VAL(dst_ptr), 
+                 R_VAL(src_ptr), R_VAL(dst_ptr), 
+                 tmp);
+       BLEND_COLOR(a, G_VAL(dst_ptr), 
+                 G_VAL(src_ptr), G_VAL(dst_ptr), 
+                 tmp);
+       BLEND_COLOR(a, B_VAL(dst_ptr), 
+                 B_VAL(src_ptr), B_VAL(dst_ptr), 
+                 tmp);
             
-            BLEND_COLOR(a, R_VAL(dst_ptr), 
-                        R_VAL(src_ptr), R_VAL(dst_ptr), 
-                        tmp);
-            BLEND_COLOR(a, G_VAL(dst_ptr), 
-                        G_VAL(src_ptr), G_VAL(dst_ptr), 
-                        tmp);
-            BLEND_COLOR(a, B_VAL(dst_ptr), 
-                        B_VAL(src_ptr), B_VAL(dst_ptr), 
-                        tmp);  
-            A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(src_ptr) * (255 -
A_VAL(dst_ptr))) / 255);
-         }
        src_ptr++;
        dst_ptr++;
      }




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
enlightenment-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to