From 796b2d6b20e3e9d6ca7f095a49d9b3a54f58645f Mon Sep 17 00:00:00 2001
From: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Date: Thu, 3 Sep 2015 11:30:52 +0900
Subject: opengl: let OutputDevice do the bezier subdivision

Change-Id: I0620cd29695d792320c6e3209dff84822485d883
---
 vcl/opengl/gdiimpl.cxx | 30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

(limited to 'vcl/opengl')

diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index a1508f37cd9b..9a2d72e447b2 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -1424,33 +1424,19 @@ bool OpenGLSalGraphicsImpl::drawPolyLine(
         return false;
     }
 
-    // #i11575#desc5#b adjust B2D tesselation result to raster positions
-    basegfx::B2DPolygon aPolygon = rPolygon;
-    const double fHalfWidth = 0.5 * rLineWidth.getX();
-
     // shortcut for hairline drawing to improve performance
     if (bIsHairline)
     {
-        PreDraw();
-        if (UseSolidAA(mnLineColor, fTransparency))
-        {
-            tools::Polygon aToolsPolygon(aPolygon);
-            sal_uInt32 nPoints = aToolsPolygon.GetSize();
-            if (aToolsPolygon.HasFlags())
-            {
-                aToolsPolygon = tools::Polygon::SubdivideBezier(aToolsPolygon);
-                nPoints = aToolsPolygon.GetSize();
-            }
-            for (sal_uInt32 i = 0; i < nPoints - 1; ++i)
-            {
-                DrawLineAA(aToolsPolygon[i].X(),     aToolsPolygon[i].Y(),
-                           aToolsPolygon[i + 1].X(), aToolsPolygon[i + 1].Y());
-            }
-        }
-        PostDraw();
-        return true;
+        // Let's just leave it to OutputDevice to do the bezier subdivision,
+        // drawPolyLine(sal_uInt32 nPoints, const SalPoint* pPtAry) will be
+        // called with the result.
+        return false;
     }
 
+    // #i11575#desc5#b adjust B2D tesselation result to raster positions
+    basegfx::B2DPolygon aPolygon = rPolygon;
+    const double fHalfWidth = 0.5 * rLineWidth.getX();
+
     // get the area polygon for the line polygon
     if( (rLineWidth.getX() != rLineWidth.getY())
     && !basegfx::fTools::equalZero( rLineWidth.getY() ) )
-- 
cgit