[go: up one dir, main page]

Page MenuHomePhabricator

librsvg filter using FillPaint referencing a gradient fill does not work.
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

The relevant SVG is

<defs>
   <!-- paint the background with the fill -->
   <linearGradient id="lgback" gradientUnits="userSpaceOnUse" x1="0%" x2="100%" y1="0%" y2="0%">
     <stop offset="0%" stop-color="white" />
     <stop offset="100%" stop-color="red" />
   </linearGradient>

   <filter id="pb1" x="-5%" width="110%">
     <feMerge>
       <feMergeNode in="FillPaint"/>
       <feMergeNode in="SourceAlpha"/>
     </feMerge>
   </filter>
 </defs>

 <!-- filtered with paint -->
 <text class="note" x="75" y="345">filter paints fill over dimension line</text>
 <text class="note" x="75" y="362">✗ Chromium, ✓ Firefox, ✗ librsvg 2.40</text>
 <text class="note" x="75" y="374">Chromium does not paint the fill</text>
 <line class="dim" x1="50" y1="350" x2="750" y2="350" marker-start="url(#arrs)" marker-end="url(#arre)" />
 <text x="400" y="355" text-anchor="middle" filter="url(#pb1)" fill="url(#lgback)">Short Text</text>

 <line class="dim" x1="50" y1="380" x2="750" y2="380" marker-start="url(#arrs)" marker-end="url(#arre)" />
 <text x="400" y="385" text-anchor="middle" filter="url(#pb1)" fill="url(#lgback)">Long Dimension Line Text</text>

What happens?:
In the fourth set ("filter paints fill over dimension line"). the dimension lines run through the text.

What should have happened instead?:
painting FillPaint should have covered up the dimension line underneath the text so the text displays without the strikethrough.
See https://www.w3.org/TR/SVG11/filters.html#CommonAttributes for in=.
https://www.w3.org/TR/SVG11/filters.html#FillPaint says FillPaint may have a gradient.

Software version (skip for WMF-hosted wikis like Wikipedia):

Other information (browser name/version, screenshots, etc.):
SVG fails in Chrome.
SVG works in Firefox.