Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/engines/common
Modified Files:
evas_blend_alpha_color_pixel.c evas_blend_color_pixel.c
evas_blend_pixel_cmod_pixel.c evas_blend_pixel_mul_pixel.c
evas_blend_pixel_pixel.c
Log Message:
a good 20% speedup on my p4 and minor speedup on this p3. no difference on my
ipaq...
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_alpha_color_pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_blend_alpha_color_pixel.c 12 May 2003 02:26:26 -0000 1.3
+++ evas_blend_alpha_color_pixel.c 16 Mar 2004 08:03:00 -0000 1.4
@@ -17,22 +17,34 @@
src_ptr = src;
dst_ptr = dst;
dst_end_ptr = dst + len;
-
+
+ if (A_VAL(&col) == 0) return;
+
while (dst_ptr < dst_end_ptr)
{
DATA32 tmp;
DATA8 aa;
aa = (((*src_ptr) +1) * A_VAL(&col)) >> 8;
- BLEND_COLOR(aa, R_VAL(dst_ptr),
- R_VAL(&col), R_VAL(dst_ptr),
- tmp);
- BLEND_COLOR(aa, G_VAL(dst_ptr),
- G_VAL(&col), G_VAL(dst_ptr),
- tmp);
- BLEND_COLOR(aa, B_VAL(dst_ptr),
- B_VAL(&col), B_VAL(dst_ptr),
- tmp);
+ switch (aa)
+ {
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = col;
+ break;
+ default:
+ BLEND_COLOR(aa, R_VAL(dst_ptr),
+ R_VAL(&col), R_VAL(dst_ptr),
+ tmp);
+ BLEND_COLOR(aa, G_VAL(dst_ptr),
+ G_VAL(&col), G_VAL(dst_ptr),
+ tmp);
+ BLEND_COLOR(aa, B_VAL(dst_ptr),
+ B_VAL(&col), B_VAL(dst_ptr),
+ tmp);
+ break;
+ }
src_ptr++;
dst_ptr++;
}
@@ -46,6 +58,8 @@
DATA8 *src_ptr;
DATA32 *dst_ptr, *dst_end_ptr;
+ if (A_VAL(&col) == 0) return;
+
src_ptr = src;
dst_ptr = dst;
dst_end_ptr = dst + len;
@@ -62,45 +76,56 @@
while (dst_ptr < dst_end_ptr)
{
DATA32 tmp;
-
- tmp = 0xffffff;
- A_VAL(&tmp) = *src_ptr;
-
- movd_m2r(tmp, mm1);
-
- /* this could be more optimial.. but it beats the c code by almost */
- /* double */
- pxor_r2r(mm7, mm7);
- punpcklbw_r2r(mm1, mm7);
- psrlw_i2r(8, mm7);
- pmullw_r2r(mm6, mm7);
- psrlw_i2r(8, mm7);
- packuswb_r2r(mm7, mm7);
- movq_r2r(mm7, mm1);
- /* and back to our normal programming... */
- movd_m2r(dst_ptr[0], mm2);
-
- movq_r2r(mm1, mm3);
-
- punpcklbw_r2r(mm3, mm3);
- punpckhwd_r2r(mm3, mm3);
- punpckhdq_r2r(mm3, mm3);
- psrlw_i2r(1, mm3);
-
- psrlq_i2r(16, mm3);
-
- punpcklbw_r2r(mm4, mm1);
- punpcklbw_r2r(mm4, mm2);
-
- psubw_r2r(mm2, mm1);
- psllw_i2r(1, mm1);
- paddw_r2r(mm5, mm1);
- pmulhw_r2r(mm3, mm1);
- paddw_r2r(mm1, mm2);
-
- packuswb_r2r(mm4, mm2);
- movd_r2m(mm2, dst_ptr[0]);
+ DATA8 aa;
+ aa = (((*src_ptr) +1) * A_VAL(&col)) >> 8;
+ switch (aa)
+ {
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = col;
+ break;
+ default:
+ tmp = 0xffffff;
+ A_VAL(&tmp) = *src_ptr;
+
+ movd_m2r(tmp, mm1);
+
+ /* this could be more optimial.. but it beats the c code by almost */
+ /* double */
+ pxor_r2r(mm7, mm7);
+ punpcklbw_r2r(mm1, mm7);
+ psrlw_i2r(8, mm7);
+ pmullw_r2r(mm6, mm7);
+ psrlw_i2r(8, mm7);
+ packuswb_r2r(mm7, mm7);
+ movq_r2r(mm7, mm1);
+ /* and back to our normal programming... */
+ movd_m2r(dst_ptr[0], mm2);
+
+ movq_r2r(mm1, mm3);
+
+ punpcklbw_r2r(mm3, mm3);
+ punpckhwd_r2r(mm3, mm3);
+ punpckhdq_r2r(mm3, mm3);
+ psrlw_i2r(1, mm3);
+
+ psrlq_i2r(16, mm3);
+
+ punpcklbw_r2r(mm4, mm1);
+ punpcklbw_r2r(mm4, mm2);
+
+ psubw_r2r(mm2, mm1);
+ psllw_i2r(1, mm1);
+ paddw_r2r(mm5, mm1);
+ pmulhw_r2r(mm3, mm1);
+ paddw_r2r(mm1, mm2);
+
+ packuswb_r2r(mm4, mm2);
+ movd_r2m(mm2, dst_ptr[0]);
+ break;
+ }
src_ptr++;
dst_ptr++;
}
@@ -113,6 +138,8 @@
DATA8 *src_ptr;
DATA32 *dst_ptr, *dst_end_ptr;
+ if (A_VAL(&col) == 0) return;
+
src_ptr = src;
dst_ptr = dst;
dst_end_ptr = dst + len;
@@ -125,17 +152,27 @@
aa = (((*src_ptr) + 1) * A_VAL(&col)) >> 8;
a = _evas_pow_lut[aa][A_VAL(dst_ptr)];
-
- BLEND_COLOR(a, R_VAL(dst_ptr),
- R_VAL(&col), R_VAL(dst_ptr),
- tmp);
- BLEND_COLOR(a, G_VAL(dst_ptr),
- G_VAL(&col), G_VAL(dst_ptr),
- tmp);
- BLEND_COLOR(a, B_VAL(dst_ptr),
- B_VAL(&col), B_VAL(dst_ptr),
- tmp);
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) / 255);
+ switch (a)
+ {
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = col;
+ break;
+ default:
+ BLEND_COLOR(a, R_VAL(dst_ptr),
+ R_VAL(&col), R_VAL(dst_ptr),
+ tmp);
+ BLEND_COLOR(a, G_VAL(dst_ptr),
+ G_VAL(&col), G_VAL(dst_ptr),
+ tmp);
+ BLEND_COLOR(a, B_VAL(dst_ptr),
+ B_VAL(&col), B_VAL(dst_ptr),
+ tmp);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp);
+/* A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) / 255);*/
+ break;
+ }
src_ptr++;
dst_ptr++;
}
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_color_pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_blend_color_pixel.c 12 May 2003 02:26:26 -0000 1.3
+++ evas_blend_color_pixel.c 16 Mar 2004 08:03:00 -0000 1.4
@@ -105,7 +105,8 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
B_VAL(&src), B_VAL(dst_ptr),
tmp);
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(&src) * (255 - A_VAL(dst_ptr))) /
255);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp);
+/* A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(&src) * (255 - A_VAL(dst_ptr))) /
255);*/
dst_ptr++;
}
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_blend_pixel_cmod_pixel.c 12 May 2003 02:26:26 -0000 1.3
+++ evas_blend_pixel_cmod_pixel.c 16 Mar 2004 08:03:00 -0000 1.4
@@ -22,8 +22,14 @@
DATA8 a;
a = amod[A_VAL(src_ptr)];
- if (a) /* hmmm - do we need this? */
+ switch (a)
{
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
BLEND_COLOR(a, R_VAL(dst_ptr),
rmod[R_VAL(src_ptr)], R_VAL(dst_ptr),
tmp);
@@ -33,6 +39,7 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
bmod[B_VAL(src_ptr)], B_VAL(dst_ptr),
tmp);
+ break;
}
src_ptr++;
dst_ptr++;
@@ -56,8 +63,14 @@
DATA8 a;
a = _evas_pow_lut[amod[A_VAL(src_ptr)]][A_VAL(dst_ptr)];
- if (a) /* hmmm - do we need this? */
+ switch (a)
{
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
BLEND_COLOR(a, R_VAL(dst_ptr),
rmod[R_VAL(src_ptr)], R_VAL(dst_ptr),
tmp);
@@ -67,7 +80,9 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
bmod[B_VAL(src_ptr)], B_VAL(dst_ptr),
tmp);
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((amod[A_VAL(src_ptr)] * (255 -
A_VAL(dst_ptr))) / 255);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp);
+/* A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((amod[A_VAL(src_ptr)] * (255 -
A_VAL(dst_ptr))) / 255);*/
+ break;
}
src_ptr++;
dst_ptr++;
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_mul_pixel.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- evas_blend_pixel_mul_pixel.c 12 May 2003 02:26:26 -0000 1.3
+++ evas_blend_pixel_mul_pixel.c 16 Mar 2004 08:03:00 -0000 1.4
@@ -27,8 +27,14 @@
DATA8 a;
a = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8;
- if (a) /* hmmm - do we need this? */
+ switch (a)
{
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
BLEND_COLOR(a, R_VAL(dst_ptr),
R_VAL(src_ptr), R_VAL(dst_ptr),
tmp);
@@ -38,6 +44,7 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
B_VAL(src_ptr), B_VAL(dst_ptr),
tmp);
+ break;
}
src_ptr++;
dst_ptr++;
@@ -51,8 +58,16 @@
DATA8 a;
a = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8;
- if (a) /* hmmm - do we need this? */
+ switch (a)
{
+ case 0:
+ break;
+ case 255:
+ R_VAL(dst_ptr) = ((R_VAL(src_ptr) * (R_VAL(&mul_color) + 1)) >> 8);
+ G_VAL(dst_ptr) = ((G_VAL(src_ptr) * (G_VAL(&mul_color) + 1)) >> 8);
+ B_VAL(dst_ptr) = ((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8);
+ break;
+ default:
BLEND_COLOR(a, R_VAL(dst_ptr),
((R_VAL(src_ptr) * (R_VAL(&mul_color) + 1)) >> 8),
R_VAL(dst_ptr),
tmp);
@@ -62,6 +77,7 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8),
B_VAL(dst_ptr),
tmp);
+ break;
}
src_ptr++;
dst_ptr++;
@@ -91,41 +107,64 @@
while (dst_ptr < dst_end_ptr)
{
- movd_m2r(src_ptr[0], mm1);
-
- /* this could be more optimial.. but it beats the c code by almost */
- /* double */
- pxor_r2r(mm7, mm7);
- punpcklbw_r2r(mm1, mm7);
- psrlw_i2r(8, mm7);
- pmullw_r2r(mm6, mm7);
- psrlw_i2r(8, mm7);
- packuswb_r2r(mm7, mm7);
- movq_r2r(mm7, mm1);
- /* and back to our normal programming... */
- movd_m2r(dst_ptr[0], mm2);
-
- movq_r2r(mm1, mm3);
-
- punpcklbw_r2r(mm3, mm3);
- punpckhwd_r2r(mm3, mm3);
- punpckhdq_r2r(mm3, mm3);
- psrlw_i2r(1, mm3);
-
- psrlq_i2r(16, mm3);
-
- punpcklbw_r2r(mm4, mm1);
- punpcklbw_r2r(mm4, mm2);
-
- psubw_r2r(mm2, mm1);
- psllw_i2r(1, mm1);
- paddw_r2r(mm5, mm1);
- pmulhw_r2r(mm3, mm1);
- paddw_r2r(mm1, mm2);
-
- packuswb_r2r(mm4, mm2);
- movd_r2m(mm2, dst_ptr[0]);
+ DATA8 a;
+ a = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8;
+ switch (a)
+ {
+ case 0:
+ break;
+ case 255:
+ movd_m2r(src_ptr[0], mm1);
+
+ /* this could be more optimial.. but it beats the c code by almost */
+ /* double */
+ pxor_r2r(mm7, mm7);
+ punpcklbw_r2r(mm1, mm7);
+ psrlw_i2r(8, mm7);
+ pmullw_r2r(mm6, mm7);
+ psrlw_i2r(8, mm7);
+ packuswb_r2r(mm7, mm7);
+ movq_r2r(mm7, mm1);
+ movd_r2m(mm1, dst_ptr[0]);
+ break;
+ default:
+ movd_m2r(src_ptr[0], mm1);
+
+ /* this could be more optimial.. but it beats the c code by almost */
+ /* double */
+ pxor_r2r(mm7, mm7);
+ punpcklbw_r2r(mm1, mm7);
+ psrlw_i2r(8, mm7);
+ pmullw_r2r(mm6, mm7);
+ psrlw_i2r(8, mm7);
+ packuswb_r2r(mm7, mm7);
+ movq_r2r(mm7, mm1);
+ /* and back to our normal programming... */
+ movd_m2r(dst_ptr[0], mm2);
+
+ movq_r2r(mm1, mm3);
+
+ punpcklbw_r2r(mm3, mm3);
+ punpckhwd_r2r(mm3, mm3);
+ punpckhdq_r2r(mm3, mm3);
+ psrlw_i2r(1, mm3);
+
+ psrlq_i2r(16, mm3);
+
+ punpcklbw_r2r(mm4, mm1);
+ punpcklbw_r2r(mm4, mm2);
+
+ psubw_r2r(mm2, mm1);
+ psllw_i2r(1, mm1);
+ paddw_r2r(mm5, mm1);
+ pmulhw_r2r(mm3, mm1);
+ paddw_r2r(mm1, mm2);
+
+ packuswb_r2r(mm4, mm2);
+ movd_r2m(mm2, dst_ptr[0]);
+ break;
+ }
src_ptr++;
dst_ptr++;
}
@@ -153,8 +192,14 @@
DATA8 a, aa;
aa = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8;
- if (aa) /* hmmm - do we need this? */
+ switch (aa)
{
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
a = _evas_pow_lut[aa][A_VAL(dst_ptr)];
BLEND_COLOR(a, R_VAL(dst_ptr),
@@ -166,11 +211,13 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
B_VAL(src_ptr), B_VAL(dst_ptr),
tmp);
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) /
255);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp);
+/* A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) /
255);*/
+ break;
}
src_ptr++;
dst_ptr++;
- }
+ }
}
else
{
@@ -180,8 +227,17 @@
DATA8 a, aa;
aa = (A_VAL(src_ptr) * (A_VAL(&mul_color) + 1)) >> 8;
- if (aa) /* hmmm - do we need this? */
+ switch (aa)
{
+ case 0:
+ break;
+ case 255:
+ R_VAL(dst_ptr) = ((R_VAL(src_ptr) * (R_VAL(&mul_color) + 1)) >> 8);
+ G_VAL(dst_ptr) = ((G_VAL(src_ptr) * (G_VAL(&mul_color) + 1)) >> 8);
+ B_VAL(dst_ptr) = ((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8);
+ A_VAL(dst_ptr) = 255;
+ break;
+ default:
a = _evas_pow_lut[aa][A_VAL(dst_ptr)];
BLEND_COLOR(a, R_VAL(dst_ptr),
@@ -193,7 +249,9 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
((B_VAL(src_ptr) * (B_VAL(&mul_color) + 1)) >> 8),
B_VAL(dst_ptr),
tmp);
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) /
255);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp);
+/* A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((aa * (255 - A_VAL(dst_ptr))) /
255);*/
+ break;
}
src_ptr++;
dst_ptr++;
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_pixel.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- evas_blend_pixel_pixel.c 16 Mar 2004 04:13:05 -0000 1.6
+++ evas_blend_pixel_pixel.c 16 Mar 2004 08:03:00 -0000 1.7
@@ -4,6 +4,8 @@
#include "evas_mmx.h"
#endif
+#define CONDITIONAL_BLEND 1
+
extern DATA8 _evas_pow_lut[256][256];
extern const DATA16 _evas_const_c1[4];
@@ -21,7 +23,28 @@
{
DATA32 tmp;
- if (A_VAL(src_ptr)) /* hmmm - do we need this? */
+#ifdef CONDITIONAL_BLEND
+ switch (A_VAL(src_ptr))
+ {
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
+ 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);
+ break;
+ }
+#else
+ if (A_VAL(src_ptr))
{
BLEND_COLOR(A_VAL(src_ptr), R_VAL(dst_ptr),
R_VAL(src_ptr), R_VAL(dst_ptr),
@@ -33,6 +56,7 @@
B_VAL(src_ptr), B_VAL(dst_ptr),
tmp);
}
+#endif
src_ptr++;
dst_ptr++;
}
@@ -54,29 +78,38 @@
while (dst_ptr < dst_end_ptr)
{
- movd_m2r(src_ptr[0], mm1);
- movd_m2r(dst_ptr[0], mm2);
-
- movq_r2r(mm1, mm3);
- punpcklbw_r2r(mm3, mm3);
- punpckhwd_r2r(mm3, mm3);
- punpckhdq_r2r(mm3, mm3);
- psrlw_i2r(1, mm3);
-
- psrlq_i2r(16, mm3);
-
- punpcklbw_r2r(mm4, mm1);
- punpcklbw_r2r(mm4, mm2);
-
- psubw_r2r(mm2, mm1);
- psllw_i2r(1, mm1);
- paddw_r2r(mm5, mm1);
- pmulhw_r2r(mm3, mm1);
- paddw_r2r(mm1, mm2);
-
- packuswb_r2r(mm4, mm2);
- movd_r2m(mm2, dst_ptr[0]);
-
+ switch (A_VAL(src_ptr))
+ {
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
+ movd_m2r(src_ptr[0], mm1);
+ movd_m2r(dst_ptr[0], mm2);
+
+ movq_r2r(mm1, mm3);
+ punpcklbw_r2r(mm3, mm3);
+ punpckhwd_r2r(mm3, mm3);
+ punpckhdq_r2r(mm3, mm3);
+ psrlw_i2r(1, mm3);
+
+ psrlq_i2r(16, mm3);
+
+ punpcklbw_r2r(mm4, mm1);
+ punpcklbw_r2r(mm4, mm2);
+
+ psubw_r2r(mm2, mm1);
+ psllw_i2r(1, mm1);
+ paddw_r2r(mm5, mm1);
+ pmulhw_r2r(mm3, mm1);
+ paddw_r2r(mm1, mm2);
+
+ packuswb_r2r(mm4, mm2);
+ movd_r2m(mm2, dst_ptr[0]);
+ break;
+ }
src_ptr++;
dst_ptr++;
}
@@ -97,8 +130,14 @@
DATA32 tmp;
DATA8 a;
- if (A_VAL(src_ptr)) /* hmmm - do we need this? */
+ switch (A_VAL(src_ptr))
{
+ case 0:
+ break;
+ case 255:
+ *dst_ptr = *src_ptr;
+ break;
+ default:
a = _evas_pow_lut[A_VAL(src_ptr)][A_VAL(dst_ptr)];
BLEND_COLOR(a, R_VAL(dst_ptr),
@@ -110,9 +149,8 @@
BLEND_COLOR(a, B_VAL(dst_ptr),
B_VAL(src_ptr), B_VAL(dst_ptr),
tmp);
-/* FIXME: Maybe this is faster and equivalent: ??? */
-/* BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),tmp) */
- A_VAL(dst_ptr) = A_VAL(dst_ptr) + ((A_VAL(src_ptr) * (255 -
A_VAL(dst_ptr))) / 255);
+ BLEND_COLOR(A_VAL(src),A_VAL(dst),255,A_VAL(dst),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-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs