tdf#89119: SVG - accelerated import of huge paths without fill
the sample attached to the bug can be rendered within seconds instead of minutes Change-Id: I64671e9619f78931da2c11461a6884f2a1c8d66f Reviewed-on: https://gerrit.libreoffice.org/14883 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Christina Roßmanith <ChrRossmanith@web.de>
This commit is contained in:
committed by
Christina Roßmanith
parent
413f7c3642
commit
48916c9b8c
@@ -1088,8 +1088,12 @@ namespace svgio
|
|||||||
|
|
||||||
if(bClipPathIsNonzero || bFillRuleIsNonzero)
|
if(bClipPathIsNonzero || bFillRuleIsNonzero)
|
||||||
{
|
{
|
||||||
// nonzero is wanted, solve geometrically (see description on basegfx)
|
if(getFill() || getSvgGradientNodeFill() || getSvgPatternNodeFill()) {
|
||||||
aPath = basegfx::tools::createNonzeroConform(aPath);
|
// nonzero is wanted, solve geometrically (see description on basegfx)
|
||||||
|
// basegfx::tools::createNonzeroConform() is expensive for huge paths
|
||||||
|
// and is only needed if path will be filled later on
|
||||||
|
aPath = basegfx::tools::createNonzeroConform(aPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
add_fill(aPath, rTarget, aGeoRange);
|
add_fill(aPath, rTarget, aGeoRange);
|
||||||
|
Reference in New Issue
Block a user