[MPEG-OTSPEC] Any prebuilt binary of Skia is widely distributed? (Re: Skia-based ot-svg renderer hook to freetype (Re: Scheduling Zoom meeting to discuss new proposals and AHG recommendations)

suzuki toshiya mpsuzuki at hiroshima-u.ac.jp
Thu Jul 6 07:34:21 CEST 2023

Hi Hin-Tak,

Are there any stable distributions of the
prebuilt Skia binary, especially for Linux?
The skia-python package has its own Skia
binary (plus libbz2, libfreetype, libfontconfig,
libpng, and libuuid).

Once, I was involved in developing SVG Native
Viewer, which has the backend to Skia.
Checking the availability and compatibility
of the Skia was a difficult problem. To test
the features, I had to build the Skia binary
by myself for testing, and it was too hard to
incorporate into the CI testing because I don't
believe in the reliability of a huge homegrown
binary, and building the Skia binary consumes
so long time for the CI platforms.

In addition, even if there is an individual
Skia package in some Linux distributions,
maybe the Chromium browser would not use it
- Chromium binary may merge the Skia into
its binary, and there is no separate library.

The skin-python can wrap up such issues, but
I wonder whether the API of the prebuilt Skia
binary in the PIP package is stable. And even
if it is stable, I'm still wondering whether
it is a good idea to link the binary content
of the PIP package from the external (non-PIP)
binaries. Are there any applications providing
the Skia library as an individual component?


On 2023/07/05 3:14, Hin-Tak Leung wrote:
> (Cross-posted to freetype-devel)
> It seems that skia itself has all the rsvg equivalent to implement the ot-svg renderer callback hooks in freetype, but skia-python is missing the python equivalent of SKSVGDOM::renderNode() . This means that if I re-write the rsvg-based python svgrender hooks with skia-python, it would only work with Adobe/Mozilla OT-SVG fonts, but not Google OT-SVG fonts (until skia-python improves).
> I think I'll give it a go and try to put an example out under freetype-py/examples (probably will call it "ot-svg-example-skia.py", after the other "ot-svg-example.py") . If the Freetype folks want to port to freetype2-demos, and add the missing renderNode() to support all OT-SVG (I mean Google OT-SVG fonts...) with a different svg rendering engine than rsvg, they can fish it out of freetype-py/examples ... :-).
> On Tuesday, 4 July 2023 at 21:58:10 GMT+8, Hin-Tak Leung <htl10 at users.sourceforge.net> wrote:
> On Tuesday, 4 July 2023 at 21:30:56 GMT+8, Dominik Röttsches <drott at google.com> wrote:
>> ... I don't think it would be the right architectural choice to redundantly repeat these concepts inside FreeType itself. Even more so, as fast compositing and gradient implementations require time and effort to make them reasonably fast.
> It isn't repeating these concepts in Freetype. Currently, in one (actually two, c and python) implementation, Freetype farms off rendering of OT-SVG glyphs to rsvg, which in turn is cairo-based, to do the actual rendering. FreeType just provides a plug-in system which allows an external library to do the rendering. Basically Freetype gives out the glyph svg outlines etc, and the external library fill in the extent and the actual buffer of a rendered bitmap. This allows any freetype-based applications to use OT-SVG fonts.
> _______________________________________________
> mpeg-otspec mailing list
> mpeg-otspec at lists.aau.at<mailto:mpeg-otspec at lists.aau.at>
> https://lists.aau.at/mailman/listinfo/mpeg-otspec

More information about the mpeg-otspec mailing list