[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] FreeType grayscale anti-aliasing
From: |
Werner LEMBERG |
Subject: |
Re: [ft-devel] FreeType grayscale anti-aliasing |
Date: |
Sat, 13 Oct 2018 07:41:27 +0200 (CEST) |
> I wrote to you previously back in August (actually to the developer
> email on FreeType) and your information was very helpful. I was
> hoping you can steer me in the right direction again, and I
> apologize if this is the wrong place to send the e-mail.
I'm directly forwarding this to the freetype-devel e-mail list
again :-)
> Anyway, I am trying to implement anti-aliasing on our font system
> and it is proving difficult, specifically for Bezier curves. I'm
> having a hard time finding where in the FreeType code the
> anti-aliasing is done so I can try to model our system after it, or
> at least learn what it's doing. Right now I've implemented a
> multi-sampling process where when I am breaking the Bezier curves
> down into segments that fall on a scanline I find the line
> intersections and then use those when performing the sampling.
>
> This kind of works, but it's not great and it has problems. I also
> read on the FAQ that you don't necessarily do it this way in
> FreeType. So, I'd really like to find out how FreeType is doing it.
The central function for computing the pixel coverage is
`gray_render_scanline' in file `src/smooth/ftgrays.c'. The bisecting
functions `gray_render_conic' and `gray_render_cubic' eventually call
it.
Note that Raph Levien has meanwhile implemented a renderer that is
reportedly faster than FreeType, cf.
https://medium.com/@raphlinus/inside-the-fastest-font-renderer-in-the-world-75ae5270c445
This renderer is written in Rust, however. Maybe you are interested
to convert this code to C, then contributing it to FreeType :-)
Werner
- Re: [ft-devel] FreeType grayscale anti-aliasing,
Werner LEMBERG <=