community icon indicating copy to clipboard operation
community copied to clipboard

Add an `SVG` parser + renderer core provider

Open misl6 opened this issue 1 year ago • 2 comments
trafficstars

Our current SVG implementation is lightweight and does not need any extra dependency, but is buggy and incomplete. That's the pain point of trying to maintain a custom implementation.

For Kivy3.0.0 the proposal is to move the SVG parser+renderer to the "core provider" concept, to open the opportunity of having multiple implementations available, and ease the integration with external tools.

Having a fully working SVG parser+renderer means that our users can start using SVG icons in their apps, but also that we can abandon .png files for icons in our default theme (and themes?)

Related issues to consider:

  • https://github.com/kivy/kivy/issues/8333
  • https://github.com/kivy/kivy/issues/6102
  • https://github.com/kivy/kivy/issues/5024
  • https://github.com/kivy/kivy/issues/4285
  • https://github.com/kivy/kivy/issues/3693
  • https://github.com/kivy/kivy/issues/2752
  • https://github.com/kivy/kivy/issues/2736
  • https://github.com/kivy/kivy/issues/2584

misl6 avatar Jan 20 '24 12:01 misl6

Is this up for discussion?

Technically we have 2 options

  1. Using skia to render svg
  2. Using usvg to render svg.

Since kivy has shown interest in skia i think maybe that's the better way forward

baseplate-admin avatar Jan 20 '24 15:01 baseplate-admin

When referring to the "core provider", we're talking about an abstraction that uses one of the available implementations to achieve the result.

So, we can have both, but certainly, most of the time investment made in Skia for text layouting will also help here.

misl6 avatar Jan 20 '24 16:01 misl6