summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drawinglayer/source/processor2d/vclprocessor2d.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 38cb499163fa..cf1ea90aa228 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -785,6 +785,17 @@ void VclProcessor2D::RenderPolyPolygonGraphicPrimitive2D(
}
}
+namespace
+{
+bool isRectangles(const basegfx::B2DPolyPolygon& rPolyPoly)
+{
+ for (sal_uInt32 i = 0, nCount = rPolyPoly.count(); i < nCount; ++i)
+ if (!basegfx::utils::isRectangle(rPolyPoly.getB2DPolygon(i)))
+ return false;
+ return true;
+}
+}
+
// mask group
void VclProcessor2D::RenderMaskPrimitive2DPixel(const primitive2d::MaskPrimitive2D& rMaskCandidate)
{
@@ -799,7 +810,7 @@ void VclProcessor2D::RenderMaskPrimitive2DPixel(const primitive2d::MaskPrimitive
aMask.transform(maCurrentTransformation);
// Unless smooth edges are needed, simply use clipping.
- if (basegfx::utils::isRectangle(aMask) || !SvtOptionsDrawinglayer::IsAntiAliasing())
+ if (isRectangles(aMask) || !SvtOptionsDrawinglayer::IsAntiAliasing())
{
mpOutputDevice->Push(vcl::PushFlags::CLIPREGION);
mpOutputDevice->IntersectClipRegion(vcl::Region(aMask));