summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/opengl/gdiimpl.cxx16
1 files changed, 15 insertions, 1 deletions
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index 60f5a455c5f7..95840567c699 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -1189,7 +1189,7 @@ void OpenGLSalGraphicsImpl::drawPolyPolygon( sal_uInt32 nPoly, const sal_uInt32*
}
}
- if( UseSolidAA( mnLineColor ) )
+ if( mnLineColor != mnFillColor && UseSolidAA( mnLineColor ) )
{
// TODO Use glMultiDrawElements or primitive restart
for( sal_uInt32 i = 0; i < nPoly; i++ )
@@ -1210,6 +1210,20 @@ bool OpenGLSalGraphicsImpl::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rP
if( UseSolid( mnFillColor, fTransparency ) )
DrawPolyPolygon( rPolyPolygon );
+ if( mnLineColor != mnFillColor && UseSolidAA( mnLineColor ) )
+ {
+ for( sal_uInt32 i = 0; i < rPolyPolygon.count(); i++ )
+ {
+ const basegfx::B2DPolygon& polygon = rPolyPolygon.getB2DPolygon( i );
+ for( sal_uInt32 j = 0; j < polygon.count(); ++j )
+ {
+ const basegfx::B2DPoint& rPt1 = polygon.getB2DPoint( j );
+ const basegfx::B2DPoint& rPt2 = polygon.getB2DPoint(( j + 1 ) % polygon.count());
+ DrawLineAA( rPt1.getX(), rPt1.getY(), rPt2.getX(), rPt2.getY());
+ }
+ }
+ }
+
PostDraw();
return true;