summaryrefslogtreecommitdiffstats
path: root/basegfx
diff options
context:
space:
mode:
Diffstat (limited to 'basegfx')
-rw-r--r--basegfx/source/polygon/b2dpolypolygoncutter.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/basegfx/source/polygon/b2dpolypolygoncutter.cxx b/basegfx/source/polygon/b2dpolypolygoncutter.cxx
index e5094c7dd30d..f314fcb716cc 100644
--- a/basegfx/source/polygon/b2dpolypolygoncutter.cxx
+++ b/basegfx/source/polygon/b2dpolypolygoncutter.cxx
@@ -27,6 +27,7 @@
#include <basegfx/range/b2drange.hxx>
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <basegfx/curve/b2dcubicbezier.hxx>
+#include <sal/log.hxx>
#include <vector>
#include <algorithm>
@@ -721,6 +722,12 @@ namespace basegfx::utils
B2DPolyPolygon createNonzeroConform(const B2DPolyPolygon& rCandidate)
{
+ if (rCandidate.count() > 1000)
+ {
+ SAL_WARN("basegfx", "this poly is too large, " << rCandidate.count() << " elements, to be able to process timeously, falling back to ignoring the winding rule, which is likely to cause rendering artifacts");
+ return rCandidate;
+ }
+
B2DPolyPolygon aCandidate;
// remove all self-intersections and intersections