freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Another bug in grayscale renderer


From: Boris Letocha
Subject: Another bug in grayscale renderer
Date: Wed, 31 May 2000 15:53:34 +0200

Hello again!

When I render some selfintersecting polygons with ft_outline_even_odd_fill flag one half of sides of polygons wasn't antialiased!

And I found the bug and fix :-)

I fix it on these lines in ftgrays.c:

lines 1070 to 1082 (more lines for better context):
old:
    if ( ras.outline.flags & ft_outline_even_odd_fill )
    {
      if (coverage < 0)
        coverage = -coverage;

      while (coverage >= 512)
        coverage -= 512;

      if (coverage > 256)
        coverage = 0;
      else if (coverage == 256)
        coverage = 255;
    }
new:
    if ( ras.outline.flags & ft_outline_even_odd_fill )
    {
      if (coverage < 0)
        coverage = -coverage;

      while (coverage >= 512)
        coverage -= 512;

      if (coverage > 256)
        coverage = 512-coverage;    // <--------- here is only change
      else if (coverage == 256)
        coverage = 255;
    }

description:
function was:
 /|   /|   /|   /| 
/ |__/ |__/ |__/ |__

and I change it to be "more" symetrical:
 /\  /\  /\  /\
/  \/  \/  \/  \

now it look very good ...

Boris Letocha


reply via email to

[Prev in Thread] Current Thread [Next in Thread]