diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-09-03 11:30:52 +0900 |
---|---|---|
committer | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-09-03 11:38:26 +0900 |
commit | 796b2d6b20e3e9d6ca7f095a49d9b3a54f58645f (patch) | |
tree | 59e3efaa68f9092a96560ae3d9fecfe8a65e5111 /vcl/opengl | |
parent | 1249262e97c1c3b1c91720f7acebb29abeb77b67 (diff) |
opengl: let OutputDevice do the bezier subdivision
Change-Id: I0620cd29695d792320c6e3209dff84822485d883
Diffstat (limited to 'vcl/opengl')
-rw-r--r-- | vcl/opengl/gdiimpl.cxx | 30 |
1 files changed, 8 insertions, 22 deletions
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() ) ) |