To support colored glyphs in OpenType fonts, several formats currently exist, namely SBIX, CBDT and COLR. These are used widely with varying degree of support across different platforms. SVG is a recent addition that uses a subset of SVG1.1 features to represent glyphs. It is growing in popularity and will be supported across most devices very soon. FreeType is a very powerful font rendering library that is being used across billions of devices. It already supports SBIX, CBDT and COLR formats. The goal of this project is to add support for SVG glyphs to FreeType. I plan to accomplish this by:
- Writing code that reads SVG documents from SVG font tables and decode it if it's in gzip encoded format.
- Creating a callback API that would allow users of FreeType to plug any external SVG Renderer to be used for SVG rendering.
- Choose one SVG Renderer as the default one so that SVG support comes out of the box with FreeType, while making the callback API generic enough to support other renderers too.
- Testing and documenting everything.