From 94d92d00fa756ecb1865e56110ceca920fbaa8ac Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 2 Jun 2015 15:57:32 +0200 Subject: convert basegfx::FillRule to scoped enum and drop unused NONZERO_WINDING_NUMBER value Change-Id: If2a8f01934796eaf9a343113387b775fd169ccb9 --- include/basebmp/polypolygonrenderer.hxx | 9 ++------- include/basegfx/polygon/b2dpolypolygonfillrule.hxx | 12 ++---------- 2 files changed, 4 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/basebmp/polypolygonrenderer.hxx b/include/basebmp/polypolygonrenderer.hxx index 88963ae0be9f..05860da2d63e 100644 --- a/include/basebmp/polypolygonrenderer.hxx +++ b/include/basebmp/polypolygonrenderer.hxx @@ -227,7 +227,6 @@ namespace basebmp detail::VectorOfVertexPtr::iterator currVertex( pAET->begin() ); detail::VectorOfVertexPtr::iterator const lastVertex( pAET->end()-1 ); sal_uInt32 nCrossedEdges(0); - sal_Int32 nWindingNumber(0); while( currVertex != lastVertex ) { // TODO(P1): might be worth a try to extend the @@ -236,17 +235,13 @@ namespace basebmp detail::Vertex& rV1( **currVertex ); detail::Vertex const& rV2( **++currVertex ); - nWindingNumber += -1 + 2*int(rV1.mbDownwards); - // calc fill status for both rules. might save a // few percent runtime to specialize here... const bool bEvenOddFill( - eFillRule == basegfx::FillRule_EVEN_ODD && !(nCrossedEdges & 0x01) ); - const bool bNonZeroWindingFill( - eFillRule == basegfx::FillRule_NONZERO_WINDING_NUMBER && nWindingNumber != 0 ); + eFillRule == basegfx::FillRule::EvenOdd && !(nCrossedEdges & 0x01) ); // is span visible? - if( (bEvenOddFill || bNonZeroWindingFill) && + if( bEvenOddFill && y >= nClipY1 && rV1.mnX < nClipX2_frac && rV2.mnX > nClipX1_frac ) diff --git a/include/basegfx/polygon/b2dpolypolygonfillrule.hxx b/include/basegfx/polygon/b2dpolypolygonfillrule.hxx index fb7d1ab4f676..1c9a23b56252 100644 --- a/include/basegfx/polygon/b2dpolypolygonfillrule.hxx +++ b/include/basegfx/polygon/b2dpolypolygonfillrule.hxx @@ -31,21 +31,13 @@ namespace basegfx The fill rule determines which areas are inside, and which are outside the poly-polygon. */ - enum FillRule + enum class FillRule { /** Areas, for which a scanline has crossed an odd number of vertices, are regarded 'inside', the remainder 'outside' of the poly-polygon. */ - FillRule_EVEN_ODD, - - /** For each edge a scanline crosses, a current winding number - is updated. Downward edges count +1, upward edges count - -1. If the total accumulated winding number for one area - is not zero, this area is regarded 'inside', otherwise, - 'outside'. - */ - FillRule_NONZERO_WINDING_NUMBER + EvenOdd }; } -- cgit