public calculate_alpha ( int area, int master_alpha ) : int | ||
area | int | |
master_alpha | int | |
return | int |
public int calculate_alpha(int area, int master_alpha)
{
int cover = area >> (poly_subpixel_shift * 2 + 1 - aa_shift);
if (cover < 0) cover = -cover;
if (m_filling_rule == agg_basics.filling_rule_e.fill_even_odd)
{
cover &= aa_mask2;
if (cover > aa_scale)
{
cover = aa_scale2 - cover;
}
}
if (cover > aa_mask) cover = aa_mask;
return (int)((cover * master_alpha + aa_mask) >> aa_shift);
}