[Libreoffice-commits] core.git: drawinglayer/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Fri Mar 29 19:19:53 UTC 2019
drawinglayer/source/processor2d/vclprocessor2d.cxx | 45 +++++++++++----------
1 file changed, 24 insertions(+), 21 deletions(-)
New commits:
commit b1f961e3a459d2772f12da556ab74fa635d6a46a
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Mar 29 14:32:20 2019 +0000
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Mar 29 20:19:28 2019 +0100
tdf#115843 avoid using transparent virtualdevice when 100% opaque
which for the common case avoids the narrowing of hidpi outputdevices
through non-hidpi bitmaps
Change-Id: Ibdc004a0946e8cb118818e58a01e5791c869353a
Reviewed-on: https://gerrit.libreoffice.org/69930
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 64f73b135efc..361f7a5bd5a3 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -729,29 +729,32 @@ namespace drawinglayer
// back to old OutDev
mpOutputDevice = pLastOutputDevice;
- // draw mask
- if(getOptionsDrawinglayer().IsAntiAliasing())
+ // if the mask fills the whole area we can skip
+ // creating a transparent vd and filling it.
+ if (!basegfx::utils::isRectangle(aMask))
{
- // with AA, use 8bit AlphaMask to get nice borders
- VirtualDevice& rTransparence = aBufferDevice.getTransparence();
- rTransparence.SetLineColor();
- rTransparence.SetFillColor(COL_BLACK);
- rTransparence.DrawPolyPolygon(aMask);
-
- // dump buffer to outdev
- aBufferDevice.paint();
- }
- else
- {
- // No AA, use 1bit mask
- VirtualDevice& rMask = aBufferDevice.getMask();
- rMask.SetLineColor();
- rMask.SetFillColor(COL_BLACK);
- rMask.DrawPolyPolygon(aMask);
-
- // dump buffer to outdev
- aBufferDevice.paint();
+ // draw mask
+ if(getOptionsDrawinglayer().IsAntiAliasing())
+ {
+ // with AA, use 8bit AlphaMask to get nice borders
+ VirtualDevice& rTransparence = aBufferDevice.getTransparence();
+ rTransparence.SetLineColor();
+ rTransparence.SetFillColor(COL_BLACK);
+ rTransparence.DrawPolyPolygon(aMask);
+ }
+ else
+ {
+ // No AA, use 1bit mask
+ VirtualDevice& rMask = aBufferDevice.getMask();
+ rMask.SetLineColor();
+ rMask.SetFillColor(COL_BLACK);
+ rMask.DrawPolyPolygon(aMask);
+ }
}
+
+ // dump buffer to outdev
+ aBufferDevice.paint();
+
}
}
}
More information about the Libreoffice-commits
mailing list