| Summary: | 'Break'ing loaded SVG example creates obstacles in form of missing parts in gradients | ||
|---|---|---|---|
| Product: | LibreOffice | Reporter: | Armin Le Grand <Armin.Le.Grand> |
| Component: | graphics stack | Assignee: | Armin Le Grand <Armin.Le.Grand> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | xiscofauli |
| Priority: | medium | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | target:6.2.0 target:6.1.0.1 | ||
| Crash report or crash signature: | Regression By: | ||
| Bug Depends on: | |||
| Bug Blocks: | 116979 | ||
| Attachments: | One foot of 'Tux' isolated showing the problem | ||
|
Description
Armin Le Grand
2018-06-01 08:40:16 UTC
Identified the clipping has a problem for extreme case. - SvgLinearAtomPrimitive2D gets decomposed - added to Metafile with - orig Ellipse as ClipRegion - single parts of SvgLinearAtomPrimitive2D as content - converion to SdrObects clips single content geometries - due to the SvgLinearAtomPrimitive2D optimally creating the content the content touches the ellipse - Identified a case where an edge point of content exactly hits ellipse border. That is detected, but still problematic - the ellipse horder is a Bezier-snippet. The preparation of clip works well - allpoints are identified The processing of clip - switching in points, extracting content - does make an error here One possibility to solve this is to create some 'overlap' in SvgLinearAtomPrimitive2D decomposition. Just do not use 0.0 and 1.0 for Y-Coordinates, but slight overlap. Despite that this would work this - should not be needed - may cause problems in other places - does not solve the error in the clipper -> may still happen in other places/conditions => try to solve in clipper 2nd step first. on it... Created attachment 142550 [details]
One foot of 'Tux' isolated showing the problem
Spent quite some time in checking/reorg/debugging (my own) clipping bezier stuff. Will need more time to solve. For now, fallback to simple solution (and mark it as temporary in the code) Added solution (see https://gerrit.libreoffice.org/#/c/55376/) Armin Le Grand committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=aa5d7477e8e1e4bcd0e56496e745c3dc3b05c369 tdf#117949 Use small overlap for SVG gradient representation It will be available in 6.2.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. Solution in master, done. Armin Le Grand committed a patch related to this issue. It has been pushed to "libreoffice-6-1": http://cgit.freedesktop.org/libreoffice/core/commit/?id=a3423a4efd016014158fdeec34e1f75960f8604a&h=libreoffice-6-1 tdf#117949 Use small overlap for SVG gradient representation It will be available in 6.1.0.1. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback. Back-ported to libreoffice-6-1 |