Antoine Beyeler

Results 303 comments of Antoine Beyeler

I think your summary matches our experience. The workaround I mentioned in OP provides us with an escape hatch for (C), and, as a dev, for the odd time you...

Thank for the useful feedback! > It stands out to me, but I bet it's invisible to many others! I'm pretty sure many, if not all, could be bothered by...

After thinking—and [discussing](https://discord.com/channels/499297341472505858/1077532925236613141/1079697569162219600)—about this, I'm strongly leaning towards forgoing entirely a hierarchical metadata organisation: > I'm still trying to figure out a good strategy for metadata handling, and it occurs...

My current plan is as follows: - Each hierarchy level has its own metadata structure with relevant information: `DocumentMetadata` (e.g. page size), `LayerMetadata` (e.g. name), `PathMetadata` (e.g. stroke width &...

For (3), `kurbo::BezPath::from_svg()` implements SVG path parsing, simplify arcs into cubic bezier. It does keep quad bezier, but they would easily be converted to cubic and/or accepted in the data...

Full migration to `svg` (option 3) feels daunting. This basically is the output of that lib for `resources/fixtures/multilayer.svg`: ``` Instruction: "" Tag svg: Start {"xmlns:sodipodi": Value("http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"), "xmlns:ev": Value("http://www.w3.org/2001/xml-events"), "version": Value("1.2"),...

The problem with option (4) is that it requires double parsing (once with `svg`, once with `roxlmtree` (behind `usvg`). A better approach might be to use `roxmltree` instead of `svg`...

Option (4) implemented in 3f13cd7190b44fdee0d74e1bf2634745fc6a16d5

Discussions in the resvg issue linked above indicate that there is no path forward were usvg would properly support Inkscape layers. A permanent fork would be needed to pursue something...

For the time being, the way forward is to for `usvg` and `rosvgtree` to support Inkscape layers. Initial implementation is here: https://github.com/abey79/resvg/pull/1. I'll maintain the `vsvg` branch on my `resvg`...