Hi all,
I'm free for a few months and I'd like to finalize the OT-SVG project. I'd be sending more emails to this list discussing things soon however there's one thing on which I want to hear your opinion first.
I'm relatively new to fonts, FreeType, and the whole font stack, so I don't know much about the "users" of FreeType and the way they "use" FreeType. I'd like to know how applications/libraries will be using the OT-SVG support of FreeType. Inkscape, for example, directly reads the SVG documents using Harfbuzz's APIs and renders them by its own SVG renderer. I think Firefox does something similar. I don't think Chromium supports SVG glyphs right now. I'm wondering what approach would let applications/libraries benefit the most from FreeType's OT-SVG support.
Skia uses FreeType to render glyphs and I think once OT-SVG support is released in FreeType, with few additions to Skia code, it should be able to render OT-SVG glyphs directly. Perhaps Chromium and other applications that rely on Skia can benefit from this?
One more thing that I wanted to ask is, which graphics rendering engines (Skia, Cairo, QT, CoreGraphics, GDI+, etc) and SVG rendering libraries (librsvg, resvg, svg-native-viewer, etc) would be favored by what kind of users of FreeType?
Once the support is released, applications like Chromium (that have their own SVG renderers) will have the option to do it the way Inkscape does, or use FreeType for the rendering too. One advantage to letting FreeType render it would be that features that are not a part of SVG Native (or say the restricted subset of SVG that's used in OT-SVG glyphs) will be automatically restricted. Otherwise, they'd have to write code to handle that themselves (if restricting is important to them, of course). SVG Native Viewer already restricts such features and I'm grateful that Federico, the maintainer of librsvg, is willing to incorporate SVG Native support to librsvg. He also mentioned that they'd be willing to provide a separate build option that can remove the whole font stack from the compilation process and lead to a small binary size.
Warm Regards,
Moazin