From: Jose O G. <jos...@ju...> - 2004-03-17 19:15:55
|
This patch, the fith in a series, involves the file "evas_blend_pixel_cmod_pixel.c" of the "engines/common" dir. jose. ----------------------------------------------------------------------- Index: cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/engines/common/evas_blend_pi xel_cmod_pixel.c,v retrieving revision 1.3 diff -u -r1.3 evas_blend_pixel_cmod_pixel.c --- cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c 12 May 2003 02:26:26 -0000 1.3 +++ cvs/e17/libs/evas/src/lib/engines/common/evas_blend_pixel_cmod_pixel.c 17 Mar 2004 18:52:31 -0000 @@ -22,18 +22,23 @@ DATA8 a; a = amod[A_VAL(src_ptr)]; - if (a) /* hmmm - do we need this? */ + if (!a) { src_ptr++; dst_ptr++; continue; } + if (a == 0xff) { - BLEND_COLOR(a, R_VAL(dst_ptr), - rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), - tmp); - BLEND_COLOR(a, G_VAL(dst_ptr), - gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), - tmp); - BLEND_COLOR(a, B_VAL(dst_ptr), - bmod[B_VAL(src_ptr)], B_VAL(dst_ptr), - tmp); + R_VAL(dst_ptr) = rmod[R_VAL(src_ptr)]; + G_VAL(dst_ptr) = gmod[G_VAL(src_ptr)]; + B_VAL(dst_ptr) = bmod[B_VAL(src_ptr)]; + src_ptr++; dst_ptr++; continue; } + BLEND_COLOR(a, R_VAL(dst_ptr), + rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + bmod[B_VAL(src_ptr)], B_VAL(dst_ptr), + tmp); src_ptr++; dst_ptr++; } @@ -53,22 +58,31 @@ while (dst_ptr < dst_end_ptr) { DATA32 tmp; - DATA8 a; + DATA8 a, aa; - a = _evas_pow_lut[amod[A_VAL(src_ptr)]][A_VAL(dst_ptr)]; - if (a) /* hmmm - do we need this? */ + aa = amod[A_VAL(src_ptr)]; + if (!aa) { src_ptr++; dst_ptr++; continue; } + if (aa == 0xff) { - BLEND_COLOR(a, R_VAL(dst_ptr), - rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), - tmp); - BLEND_COLOR(a, G_VAL(dst_ptr), - gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), - tmp); - 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); + A_VAL(dst_ptr) = 0xff; + R_VAL(dst_ptr) = rmod[R_VAL(src_ptr)]; + G_VAL(dst_ptr) = gmod[G_VAL(src_ptr)]; + B_VAL(dst_ptr) = bmod[B_VAL(src_ptr)]; + src_ptr++; dst_ptr++; continue; } + a = _evas_pow_lut[aa][A_VAL(dst_ptr)]; + BLEND_COLOR(aa, A_VAL(dst_ptr), + 255, A_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, R_VAL(dst_ptr), + rmod[R_VAL(src_ptr)], R_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, G_VAL(dst_ptr), + gmod[G_VAL(src_ptr)], G_VAL(dst_ptr), + tmp); + BLEND_COLOR(a, B_VAL(dst_ptr), + bmod[B_VAL(src_ptr)], B_VAL(dst_ptr), + tmp); src_ptr++; dst_ptr++; } |