haikuwebkit/LayoutTests/svg/gradients/spreadMethodDiagonal4.svg

29 lines
1.4 KiB
XML
Raw Permalink Normal View History

Add support for spreadMethod=reflect and repeat on SVG gradients (for CoreGraphics platforms) https://bugs.webkit.org/show_bug.cgi?id=5968 Source/WebCore: Add support for spreadMethod=repeat and reflect. Also, the opacity of a gradient is now the result of multiplying stop-opacity with the opacity of the color. Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-14 Reviewed by Simon Fraser. Tests: svg/gradients/spreadMethod-expected.svg svg/gradients/spreadMethod.svg svg/gradients/spreadMethodAlpha-expected.svg svg/gradients/spreadMethodAlpha.svg svg/gradients/spreadMethodClose0-expected-mismatch.svg svg/gradients/spreadMethodClose0.svg svg/gradients/spreadMethodClose1-expected-mismatch.svg svg/gradients/spreadMethodClose1.svg svg/gradients/spreadMethodClose2-expected.svg svg/gradients/spreadMethodClose2.svg svg/gradients/spreadMethodDiagonal-expected.svg svg/gradients/spreadMethodDiagonal.svg svg/gradients/spreadMethodDiagonal2-expected.svg svg/gradients/spreadMethodDiagonal2.svg svg/gradients/spreadMethodDuplicateStop-expected.svg svg/gradients/spreadMethodDuplicateStop.svg svg/gradients/spreadMethodReversed-expected.svg svg/gradients/spreadMethodReversed.svg svg/gradients/stopAlpha-expected.svg svg/gradients/stopAlpha.svg * platform/graphics/cg/GradientCG.cpp: (WebCore::Gradient::paint): * svg/SVGStopElement.cpp: (WebCore::SVGStopElement::stopColorIncludingOpacity const): LayoutTests: Add new svg tests for linear gradients with spreadMethod, and alpha values specified in both stop-opacity and color. Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-14 Reviewed by Simon Fraser. * platform/mac/svg/W3C-SVG-1.1/pservers-grad-10-b-expected.png: * svg/gradients/spreadMethod-expected.svg: Added. * svg/gradients/spreadMethod.svg: Added. * svg/gradients/spreadMethodAlpha-expected.svg: Added. * svg/gradients/spreadMethodAlpha.svg: Added. * svg/gradients/spreadMethodClose0-expected-mismatch.svg: Added. * svg/gradients/spreadMethodClose0.svg: Added. * svg/gradients/spreadMethodClose1-expected-mismatch.svg: Added. * svg/gradients/spreadMethodClose1.svg: Added. * svg/gradients/spreadMethodClose2-expected.svg: Added. * svg/gradients/spreadMethodClose2.svg: Added. * svg/gradients/spreadMethodDiagonal-expected.svg: Added. * svg/gradients/spreadMethodDiagonal.svg: Added. * svg/gradients/spreadMethodDiagonal2-expected.svg: Added. * svg/gradients/spreadMethodDiagonal2.svg: Added. * svg/gradients/spreadMethodDuplicateStop-expected.svg: Added. * svg/gradients/spreadMethodDuplicateStop.svg: Added. * svg/gradients/spreadMethodReversed-expected.svg: Added. * svg/gradients/spreadMethodReversed.svg: Added. * svg/gradients/stopAlpha-expected.svg: Added. * svg/gradients/stopAlpha.svg: Added. Canonical link: https://commits.webkit.org/204604@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@236024 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2018-09-14 23:55:37 +00:00
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="2000px" height="2000px">
<linearGradient id="base-grad" x1="0" y1="0" x2="50%" y2="50%">
<stop stop-color="green" offset="0"/>
<stop stop-color="green" offset="0.5"/>
<stop stop-color="blue" offset="0.5"/>
<stop stop-color="blue" offset="1"/>
</linearGradient>
<linearGradient id="pad-grad" xlink:href="#base-grad" spreadMethod="pad" />
<linearGradient id="pad-reflect" xlink:href="#base-grad" spreadMethod="reflect" />
<linearGradient id="pad-repeat" xlink:href="#base-grad" spreadMethod="repeat" />
<g transform="translate(200 0) rotate(7) scale(2)">
<rect x="10" y="35" width="460" height="55" fill="url(#pad-grad)"/>
<rect x="10" y="120" width="460" height="55" fill="url(#pad-reflect)"/>
<rect x="10" y="205" width="460" height="55" fill="url(#pad-repeat)"/>
</g>
<rect x="180" y="65" width="50" height="55" fill="grey" />
<rect x="100" y="120" width="1100" height="10" fill="grey" />
<rect x="100" y="295" width="1100" height="10" fill="grey" />
<rect x="100" y="400" width="1100" height="10" fill="grey" />
<rect x="100" y="460" width="1100" height="10" fill="grey" />
<rect x="100" y="517" width="1100" height="10" fill="grey" />
<rect x="100" y="570" width="1100" height="10" fill="grey" />
</svg>