GNOME Bugzilla – Bug 476507
SVG rendering is wildly different between eog and Inkscape
Last modified: 2015-07-03 00:34:43 UTC
Please describe the problem: The quickest way to see the problem is to poke through the following blog entries, including screenshots of eog and Inkscape rendering the same SVG files. http://wordpress.com/tag/svg-rendering-mysteries/ Inkscape seems to agree with Firefox. Steps to reproduce: 1. Open the SVG files as given above. 2. 3. Actual results: SVG rendering looks faulty in eog. Either that or Inkscape, I'm not sure. Expected results: I would expect the SVG to be rendered in the same way on both eog and Inkscape. Does this happen every time? Yes. Other information: If you want the SVG files to reproduce the bugs, email me.
eog doesn't have it's own SVG rendering engine (in contrast to Inkscape). SVG support is provided by the librsvg library which is used by many apps throughout GNOME but doesn't support some SVG features (I think). So, I can only direct you there. Btw, I guess you choose version 2.8.1 by accident (the blog indicates Ubuntu), but if you are still using GNOME 2.8 (and thus a similar old librsvg) you should update to a more recent version.
I am using version 2.18.1 of gnome.
Created attachment 233577 [details] Arrow that shows differently with librsvg
Created attachment 302729 [details] [review] Fixes bug 476507 with marker issue This patch fixes Gnome Bugzilla bug #476507 where start and end markers have wrong orientation for specific curved lines. This fix is only for start and end markers and not for middle markers and some special cases since they are of minor importance. The issue arises if a curved path segment is defined as cubic bezier curve requiering four points but two of the points share the same location. In cases where two points are at the same location it is impossible to calculate an angle between an imaginary line joining both points and the coordinate system. As thus the orientation angle of a marker related to that imaginary line cannot be defined. This Patch introduces detection of cases when two points of a cubic bezier curve are at the same location and switches to the next point describing the bezier curve.
The Wikimedia community is interested in seeing this fixed, see https://phabricator.wikimedia.org/T97758
Another awesome patch; thanks! Pushed to master as commit 99805d95a0459190d60339540f0fa6824d266435. This will appear in librsvg-2.40.10.