Bug 657862 - Relative SVG arc path segments are broken. r=longsonr.

--HG--
extra : rebase_source : 8897f5f5358f67708f92f50e1061d1947ae011a1
This commit is contained in:
Jonathan Watt 2011-05-20 21:00:35 +01:00
Родитель f45568d0bc
Коммит 613c76643d
3 изменённых файлов: 28 добавлений и 1 удалений

Просмотреть файл

@ -404,7 +404,7 @@ SVGPathData::ConstructPath(gfxContext *aCtx) const
case nsIDOMSVGPathSeg::PATHSEG_ARC_REL:
{
gfxPoint radii(mData[i], mData[i+1]);
gfxPoint segEnd = gfxPoint(mData[i+5], mData[i+6]);
segEnd = gfxPoint(mData[i+5], mData[i+6]);
if (segType == nsIDOMSVGPathSeg::PATHSEG_ARC_REL) {
segEnd += segStart;
}

Просмотреть файл

@ -0,0 +1,26 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/licenses/publicdomain/
-->
<svg xmlns="http://www.w3.org/2000/svg"
shape-rendering="crispEdges">
<title>Testcase for path arc handling</title>
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=657862 -->
<rect width="100%" height="100%" fill="lime"/>
<!-- Check that arc paints over entire circle: -->
<circle cx="100" cy="100" r="79" fill="red"/>
<path d="M20,100 A80,80 0,0,1 180,100 A80,80 0,0,1 20,100" fill="lime"/>
<!-- Check that arc does not paint outside circle: -->
<g transform="translate(200,0)">
<path d="M20,100 A80,80 0,0,1 180,100 A80,80 0,0,1 20,100" fill="red"/>
<circle cx="100" cy="100" r="81" fill="lime"/>
</g>
</svg>

После

Ширина:  |  Высота:  |  Размер: 775 B

Просмотреть файл

@ -152,6 +152,7 @@ random-if(gtk2Widget) == objectBoundingBox-and-fePointLight-01.svg objectBoundin
== path-02.svg pass.svg
== path-03.svg pass.svg
== path-04.svg pass.svg
== path-05.svg pass.svg
== pathLength-01.svg pass.svg
== pathLength-02.svg pass.svg
== pattern-invalid-01.svg pattern-invalid-01-ref.svg