Libsvg seems fine otherwise, so I think it'd be better to try to fix it than just cross over to something else... though, I'm ignorant of any licensing problems or whatever that might be kicked up by modifying library code.
Speaking of radial gradients, I tried to work out how to do them "manually" in Cairo. It seems pretty easy to understand, apart from one thing - this is the line in the "gradient.bmx" example code:
The third and sixth parameters are the radius of the "start" and "end" circles, respectively. I don't understand how these are calculated - where do "6" and "30" come from, given this is applying to...
...a circle that has a radius of 0.3?! Surely the "start" circle would be well outside the edge of the actual circle? I've been messing with this for ages, trying to find some kind of logic to it, but no luck.
Speaking of radial gradients, I tried to work out how to do them "manually" in Cairo. It seems pretty easy to understand, apart from one thing - this is the line in the "gradient.bmx" example code:
pat = TCairoPattern.CreateRadial (0.45, 0.4, 6, 0.4, 0.4, 30)
The third and sixth parameters are the radius of the "start" and "end" circles, respectively. I don't understand how these are calculated - where do "6" and "30" come from, given this is applying to...
cairo.Arc(0.5, 0.5, 0.3, 0, 360)
...a circle that has a radius of 0.3?! Surely the "start" circle would be well outside the edge of the actual circle? I've been messing with this for ages, trying to find some kind of logic to it, but no luck.