diff options
-rw-r--r-- | basebmp/source/bitmapdevice.cxx | 2 | ||||
-rw-r--r-- | include/basebmp/polypolygonrenderer.hxx | 9 | ||||
-rw-r--r-- | include/basegfx/polygon/b2dpolypolygonfillrule.hxx | 12 |
3 files changed, 5 insertions, 18 deletions
diff --git a/basebmp/source/bitmapdevice.cxx b/basebmp/source/bitmapdevice.cxx index 1fa27edae0fa..c31cd579c089 100644 --- a/basebmp/source/bitmapdevice.cxx +++ b/basebmp/source/bitmapdevice.cxx @@ -669,7 +669,7 @@ namespace col), rBounds, aPoly, - basegfx::FillRule_EVEN_ODD ); + basegfx::FillRule::EvenOdd ); if( mpDamage ) { 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 }; } |