Hi,
I wanted to give a brief update on the work done this week.
Most of it was discussed in the mailing list however, just for
completeness sake, I would briefly describe it in this email.
I wrote the rendering ports for `librsvg' as well as `svgnative'.
and
svgnative. Note that some of these may not work with
the tip of `GSoC-2019-moazin' branch, because I am trying
out different ideas and can't update every port to work with
the tip of `GSoC-2019-moazin'.
Meanwhile, Toshiya wrote a thin C-API for `svgnative' and
I updated my `svgnative' port to use that instead. Note that
`svgnative', at the moment, doesn't have a `render_by_id'
feature, so I am waiting for it to be implemented, once that's
done, I'll update the port to support SVG docs which contain
multiple glyphs. At the moment, both `resvg' and `librsvg'
ports have this support. :)
There were some clipping issues with the `resvg' port, which
were only because I was making a mistake with the function
call, I solved
that. A little part of the glyph was getting clipped,
this was because I wasn't performing any rounding in the
bounding box, but instead just chopping the fractional parts.
Apart from these, I spent some time finding memory leaks
and ultimately solving them. This has been giving me some
trouble, but I think I am near the right solution now. All of the
leaks that I knew off are fixed now, I have checked using FT
Memory debugger as well as valgrind.
At the moment, I am trying out the idea given by Alexei
about removing the whole hooks mechanism and creating a
separate module for each SVG rendering library. Once, It
reaches a good state, we can have a look at both attempts
and discuss them. :)
Best,
Moazin