I am applying to GSoC this year as well and I am particularly interested
in the project "Port the font-rs/fontdue rendering engine to FreeType".
Firstly, I saw that the project obviously requires knowing Rust. While I
am not a Rust programmer, I do know many of the basics due to my
experience with `resvg' last year. I'm able to easily read and understand
Rust code. I'm also going to be improving my knowledge of Rust as I
further prepare the proposal. I guess this should be sufficient?
Taking a quick look at the code of font-rs, I saw that a huge part of the
code was just parsing of font files, reading and managing the glyphs
and their outlines. The actual raster part is mostly in `src/raster.rs
which is quite small. Also, creating a C wrapper for Rust code is an easy
process (compared to other programming languages). Given the small
size of the rendering engine it seems that implementing it from scratch
in C inside FreeType isn't too hard either. Though I don't know if there
is any advantage to doing that? The dependency issue maybe?
Another thing I saw was that this engine can't handle Cubic Bezier curves,
only Quadratic. FreeType does support font formats which use Cubic
Bezier curves. So maybe I can add this functionality to it as part of this
project. (unless there is something in the algorithm that can't be applied
on Cubic curves or other font formats in general)
I think that porting can be done by:
1. Creating a C wrapper for font-rs (for the rendering part at least).
2. Creating a new rendering module in FreeType that can provide the
necessary "glue" code.
Please correct me if I have got anything wrong and provide any feedback
you might have. Also let me know if there is anything you want me to take
care of while writing the proposal.