Closed Bug 1131264 Opened 6 years ago Closed 5 years ago
SVG circle not display
User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36 Steps to reproduce: When a circle in svh have a a large viewBox, a circle does not display ! I use firefox 35.0.1 with Windows 8.1 64b in french. For example : http://jsfiddle.net/3NXbL/136/ <svg viewBox="100 100 10 10" height="100" width="100" xmlns="http://www.w3.org/2000/svg"> <circle stroke-width="0.05" stroke="#ff0000" fill="none" r="1" cx="104" cy="104"/> <rect height="2" width="2" y="107" x="107" /> </svg> <br> <svg viewBox="10000 10000 10 10" height="100" width="100" xmlns="http://www.w3.org/2000/svg"> <circle stroke-width="0.05" stroke="#ff0000" fill="none" r="1" cx="10004" cy="10004"/> <rect height="2" width="2" y="10007" x="10007" /> </svg> Actual results: On the second SVG (with extanded viewbox) , I only see the rectangle, the circle do not display Expected results: This 2 SVG shoud display the same circle and rectangle.
I try to restart firefox in safe mode and SVG display correctly . Even if i disable all module svg fail in normal mode !
If i disable "acceleration matérielle graphique" (in french) SVG display correctly!
Regression window(m-i) Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/bbb12d0bcf49 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/15.0 Firefox/15.0a1 ID:20120521220651 Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/abbf642df562 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/15.0 Firefox/15.0a1 ID:20120521222950 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=bbb12d0bcf49&tochange=abbf642df562 Regressed by: Bug Regression window(m-i) with force gfx.content.azure.enabled = true Good: http://hg.mozilla.org/integration/mozilla-inbound/rev/c87c1aedefd4 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0a1) Gecko/20120104 Firefox/12.0a1 ID:20120104212324 Bad: http://hg.mozilla.org/integration/mozilla-inbound/rev/590333161e6f Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0a1) Gecko/20120104 Firefox/12.0a1 ID:20120104231823 Pushlog: http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=c87c1aedefd4&tochange=590333161e6f Regressed by: Bug 711063
This is a variation on bug 1143303 (unfortunately I didn't know about it when I wrote the patch for that bug!). In both cases the issue is with the workaround for trying to draw a circle using D2D's ArcSegment, and in both cases what goes wrong is that startPoint and endPoint wind up too close together for D2D to handle. In this bug that happens because the large aOrigin coordinates in the computation of startPoint and endPoint drown out the tiny adjustment introduced into endAngle (or startAngle) to try to work around this issue. A note on the kEpsilon value this time: if I draw a circle with radius .0063 (about the largest radius circle that fails using the original workaround) and let diff = abs(startPoint.x - endPoint.x) + abs(startPoint.y - endPoint.y), and then vary endAngle (or startAngle, I forget which) by adjusting the 1.9999 factor in the original workaround, I get that D2D works with a diff of 2.1773e-6 but fails with a diff of 1.979e-6. So I chose kEpsilon = 1e-5. With that kEpsilon, the draw-two-half-arcs path gets taken for circles with a radius < ~0.032.
Assignee: nobody → twointofive
Attachment #8631268 - Flags: review?(bas)
It would be nice if the reftests had a stroked circle with a dasharray that would prove that dashing started from the right point on the circle and went in the right direction. We have some existing tests for larger circles in bug 944704 could you add some small circles to those testcases?
Attachment #8631858 - Flags: review?(longsonr) → review+
Attachment #8631268 - Flags: review?(bas) → review+
Bitrot update (diff context changed), carrying bas: review+.
Attachment #8631268 - Attachment is obsolete: true
https://hg.mozilla.org/integration/mozilla-inbound/rev/3df173f3761d4dc2bd77ba43ffa503545456b80c Bug 1131264 - Extend the workaround for drawing D2D circles. r=bas https://hg.mozilla.org/integration/mozilla-inbound/rev/367d328e4cd7ad407a2cff21b2b09d2dee51781b Bug 1131264, part 2 - Add small circle reftest to stroke-dasharray-02.svg. r=longsonr
You need to log in before you can comment on or make changes to this bug.