diff options
author | Michael Jaumann <meta_dev@yahoo.com> | 2015-01-21 09:15:59 +0000 |
---|---|---|
committer | Michael Jaumann <meta_dev@yahoo.com> | 2015-03-02 12:42:52 +0000 |
commit | 464673f22b810097eabf9d329afab9335ab09bb4 (patch) | |
tree | 4a3a38bcc32d3659ca907703bf5fdcf26f50327c | |
parent | 686472e1a000f0cd0ff15aabe8c86436639723f9 (diff) |
draw strokes correct
dont connect single polygons from createAreaGeometry
draw each polygone for itself
Change-Id: Iff10fc7a221453d48ca042dd556f86b4342b60ef
-rw-r--r-- | canvas/source/opengl/ogl_canvashelper.cxx | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/canvas/source/opengl/ogl_canvashelper.cxx b/canvas/source/opengl/ogl_canvashelper.cxx index 6397f4f0e763..7cdc7e67c4d8 100644 --- a/canvas/source/opengl/ogl_canvashelper.cxx +++ b/canvas/source/opengl/ogl_canvashelper.cxx @@ -659,10 +659,22 @@ namespace oglcanvas unoCapeFromCap(strokeAttributes.StartCapType) )); } - rAct.maPolyPolys.push_back(aStrokedPolyPoly); - rAct.maPolyPolys.back().makeUnique(); // own copy, for thread safety + // Note: the generated stroke poly-polygon is NOT free of + // self-intersections. Therefore, if we would render it + // via OutDev::DrawPolyPolygon(), on/off fill would + // generate off areas on those self-intersections. - rAct.maFunction = &lcl_fillPolyPolygon; + for(sal_uInt32 i=0;i<nSize; ++i) + { + ::basegfx::B2DPolyPolygon tempStrokedPoly; + tempStrokedPoly.append(aStrokedPolyPoly.getB2DPolygon(i)); + + rAct.maPolyPolys.push_back(tempStrokedPoly); + rAct.maPolyPolys.back().makeUnique(); // own copy, for thread safety + + rAct.maFunction = &lcl_fillPolyPolygon; + + } } } |