tdf#154957 Revert "use OutputDevice clipping if its just a set of rectangles"

it was an attempt at an optimization, but if it doesn't work just revert it.

The non-antialias case also doesn't work so the reverted commit
wasn't itself the problem but the existing path has some flaw I'm not
going to invest in figuring out.

This reverts commit ee0d5e7bb8.

Change-Id: I8d4f126e3bfe135d39a085f28cea6708ae8f833f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150773
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara
2023-04-21 20:22:12 +01:00
parent a17ec91d42
commit 0ad8d64472

View File

@@ -845,17 +845,6 @@ 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)
{
@@ -870,7 +859,7 @@ void VclProcessor2D::RenderMaskPrimitive2DPixel(const primitive2d::MaskPrimitive
aMask.transform(maCurrentTransformation);
// Unless smooth edges are needed, simply use clipping.
if (isRectangles(aMask) || !getViewInformation2D().getUseAntiAliasing())
if (basegfx::utils::isRectangle(aMask) || !getViewInformation2D().getUseAntiAliasing())
{
mpOutputDevice->Push(vcl::PushFlags::CLIPREGION);
mpOutputDevice->IntersectClipRegion(vcl::Region(aMask));