From: Enlightenment C. <no...@cv...> - 2007-12-02 23:29:16
|
Enlightenment CVS committal Author : turran Project : e17 Module : proto/enesim Dir : e17/proto/enesim/src/lib/raster/surface/rop/blend Modified Files: argb8888_color_c.c Log Message: + Anti Alias Polygon rasterizer (kiia8, 16 and 32) + Move scanline definitions to the API (first step for a new scanline approach) + Blending with a relative alpha + New data types (extender, etc) =================================================================== RCS file: /cvs/e/e17/proto/enesim/src/lib/raster/surface/rop/blend/argb8888_color_c.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- argb8888_color_c.c 14 Oct 2007 17:49:28 -0000 1.2 +++ argb8888_color_c.c 2 Dec 2007 23:28:43 -0000 1.3 @@ -18,6 +18,41 @@ } } +void argb8888_c_color_mask(Enesim_Surface_Data *data, int off, DATA32 c, int len, DATA8 *mask) +{ + DATA32 *d, *e; + + d = data->argb8888.data + off; + e = d + len; + len = 256 - (c >> 24); + while (d < e) + { + DATA32 a = *mask; + switch(a) + { + case 0: + break; + + case 255: + *d = c + mul_256(len, *d); + break; + + default: + { + DATA32 mc = mul_sym(a, c); + a = 256 - (mc >> 24); + *d = mc + mul_256(a, *d); + } + break; + } + d++; + mask++; + } + +} + + +#if 0 void argb8888_c_color_gradient(Enesim_Surface_Data *data, int off, DATA32 c, DATA8 a0, DATA8 a1, int w) { @@ -34,3 +69,4 @@ { } +#endif |