2004-01-29 21:46:57 -08:00
|
|
|
{
|
2005-12-03 01:27:53 -08:00
|
|
|
DATA32 *ptr;
|
2006-05-02 00:28:49 -07:00
|
|
|
RGBA_Gfx_Func func;
|
2011-04-05 22:38:38 -07:00
|
|
|
RGBA_Image *maskobj;
|
|
|
|
DATA8 *mask = NULL;
|
2008-07-19 10:40:52 -07:00
|
|
|
|
2008-04-11 17:32:30 -07:00
|
|
|
ptr = src->image.data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x;
|
2011-04-05 22:38:38 -07:00
|
|
|
if (dc->mask.mask)
|
|
|
|
{
|
|
|
|
func = evas_common_gfx_func_composite_pixel_mask_span_get(NULL, NULL, dst_clip_w, dc->render_op);
|
|
|
|
maskobj = dc->mask.mask;
|
|
|
|
mask = maskobj->mask.mask;
|
|
|
|
}
|
|
|
|
else if (dc->mul.use)
|
2006-05-02 00:28:49 -07:00
|
|
|
func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op);
|
2004-01-29 21:46:57 -08:00
|
|
|
else
|
2006-05-02 00:28:49 -07:00
|
|
|
func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op);
|
2011-04-05 22:38:38 -07:00
|
|
|
|
|
|
|
if (mask)
|
|
|
|
{
|
2011-04-18 22:47:47 -07:00
|
|
|
// mask += dst_clip_x - dc->mask.x;
|
|
|
|
// mask += (dst_clip_y - dc->mask.y) * maskobj->cache_entry.w;
|
2011-04-05 22:38:38 -07:00
|
|
|
while (dst_clip_h--)
|
|
|
|
{
|
2012-04-26 01:41:39 -07:00
|
|
|
func(ptr, mask, dc->mul.col, dst_ptr, dst_clip_w);
|
2011-04-05 22:38:38 -07:00
|
|
|
|
2012-04-26 01:41:39 -07:00
|
|
|
ptr += src_w;
|
|
|
|
dst_ptr += dst_w;
|
|
|
|
mask += maskobj->cache_entry.w;
|
2011-04-05 22:38:38 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
2004-01-29 21:46:57 -08:00
|
|
|
{
|
2011-04-05 23:43:33 -07:00
|
|
|
while (dst_clip_h--)
|
|
|
|
{
|
2012-04-26 01:41:39 -07:00
|
|
|
func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w);
|
|
|
|
|
|
|
|
ptr += src_w;
|
|
|
|
dst_ptr += dst_w;
|
2011-04-05 23:43:33 -07:00
|
|
|
}
|
2004-01-29 21:46:57 -08:00
|
|
|
}
|
|
|
|
}
|
2011-04-05 23:43:33 -07:00
|
|
|
|
|
|
|
/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
|