Bug 26231 - <marker> clipped when opacity < 1
Summary: <marker> clipped when opacity < 1
Status: RESOLVED DUPLICATE of bug 33012
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Windows Vista
: P2 Normal
Assignee: Nobody
URL: http://www.barhams.info/webkit/opacit...
Keywords:
Depends on: 32815
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-05 21:16 PDT by Tim Barham
Modified: 2010-01-02 13:12 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Barham 2009-06-05 21:16:10 PDT
A marker attached to a path is clipped if the opacity of the path's container is less than one. Repro can be seen at the referenced URL (http://www.barhams.info/webkit/opacity.xml), which shows three paths with a marker attached to each end.

The first path is within a <g> with opacity set to 0.25, showing clipping of the markers.

The second path is within a <g> with opacity set to 1, showing no clipping.

The third path shows the best, but less than ideal, work-around I have been able to come up with, which is applying the opacity to each component (the path and each marker). However, this looks poor in areas where the marker overlaps the path.

I found bugs reported regarding clipping of various elements when opacity is less than 1, but none specifically dealt with markers that I could find. This may be an additional repro case for those bugs, or a separate problem.
Comment 1 Dirk Schulze 2009-12-25 15:08:43 PST
We calculate the clipping rect for TransparencyLayer with repaintRectInLocalCoordinates() right before calling paint() (see SVGRenderBase::prepareToRenderSVGContent in SVGRenderSupport.cpp as well as RenderPath::paint). The problem is, that paint() creates the markers and the marker size. That is too late.
Comment 2 Dirk Schulze 2009-12-30 01:04:16 PST
Thanks for reportting this bug.  This will be fixed, once the patch on bug 33012 is landed.
Comment 3 Nikolas Zimmermann 2010-01-02 13:12:21 PST
Marking as duplicate of 33012, instead of depending on it, as the patch attached to 33012, will fix this problem as well. Adding the attached opacity.xml as new testcase. Thanks for that!

*** This bug has been marked as a duplicate of bug 33012 ***