diff options
authorMiklos Vajna <>2018-07-03 17:17:42 +0200
committerMiklos Vajna <>2018-07-03 19:42:05 +0200
commitd4b49841090c70cc31000fb30de9b5ddc07b0c42 (patch)
parent457acbfa304ac8bda0755c9ca8f1e1e22e490ac8 (diff)
tdf#115671 vcl opengl: fix drawing of polylines with duplicate points
The bugdoc had a custom shape, the interesting part of it was a triangle with miter line join, where the last segment was missing. In that case RenderList::addDrawPolyLine() mishandled the polyline, as it does not expect duplicate points in it. Change-Id: I06d5c2d191bb6269a87da1f006f27a94205f5145 Reviewed-on: Reviewed-by: Miklos Vajna <> Tested-by: Jenkins
1 files changed, 6 insertions, 1 deletions
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index bc29e6be7255..bad495bdb1b6 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -1601,7 +1601,12 @@ bool OpenGLSalGraphicsImpl::drawPolyLine(const basegfx::B2DPolygon& rPolygon, do
VCL_GL_INFO("::drawPolyLine " << rPolygon.getB2DRange());
- mpRenderList->addDrawPolyLine(rPolygon, fTransparency, rLineWidth, eLineJoin, eLineCap,
+ // addDrawPolyLine() assumes that there are no duplicate points in the
+ // polygon.
+ basegfx::B2DPolygon aPolygon(rPolygon);
+ aPolygon.removeDoublePoints();
+ mpRenderList->addDrawPolyLine(aPolygon, fTransparency, rLineWidth, eLineJoin, eLineCap,
fMiterMinimumAngle, mnLineColor, mrParent.getAntiAliasB2DDraw());
return true;