[Libreoffice-commits] core.git: include/vcl vcl/source
Adrien Ollier (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jul 1 00:05:18 UTC 2019
include/vcl/outdev.hxx | 1 +
include/vcl/print.hxx | 1 +
vcl/source/gdi/pdfwriter_impl.hxx | 1 +
vcl/source/gdi/pdfwriter_impl2.cxx | 2 ++
vcl/source/gdi/print.cxx | 2 ++
vcl/source/outdev/clipping.cxx | 24 ++++++++++++------------
6 files changed, 19 insertions(+), 12 deletions(-)
New commits:
commit 3a99d7f6210363cef47641481b82bae6fb1e997c
Author: Adrien Ollier <adr.ollier at hotmail.fr>
AuthorDate: Tue May 14 19:51:24 2019 +0200
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Mon Jul 1 02:03:55 2019 +0200
tdf#74702: cleans OutputDevice::InitClipRegion up
Change-Id: I2d6e35c68d1ab99a19b5b2256b1f8fae4d614720
Signed-off-by: Adrien Ollier <adr.ollier at hotmail.fr>
Reviewed-on: https://gerrit.libreoffice.org/72327
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
Tested-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 52b5602d69b0..e23e3552fe0c 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -666,6 +666,7 @@ public:
protected:
virtual void InitClipRegion();
+ virtual void ClipRegionIntersectRectangle(vcl::Region&);
virtual void ClipToPaintRegion ( tools::Rectangle& rDstRect );
private:
diff --git a/include/vcl/print.hxx b/include/vcl/print.hxx
index be077d8017f9..6210acb5bac1 100644
--- a/include/vcl/print.hxx
+++ b/include/vcl/print.hxx
@@ -233,6 +233,7 @@ protected:
const tools::PolyPolygon &rPolyPoly ) override;
void ScaleBitmap ( Bitmap&, SalTwoRect& ) override { };
+ void ClipRegionIntersectRectangle(vcl::Region&) override;
public:
void DrawGradientEx( OutputDevice* pOut, const tools::Rectangle& rRect,
diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index b5a0f5ff87e1..b615ac24feb9 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -595,6 +595,7 @@ public:
protected:
void ImplClearFontData(bool bNewFontLists) override;
+ void ClipRegionIntersectRectangle(vcl::Region&) override;
private:
MapMode m_aMapMode; // PDFWriterImpl scaled units
diff --git a/vcl/source/gdi/pdfwriter_impl2.cxx b/vcl/source/gdi/pdfwriter_impl2.cxx
index 5db8a6b1677c..a1bc6472fbfd 100644
--- a/vcl/source/gdi/pdfwriter_impl2.cxx
+++ b/vcl/source/gdi/pdfwriter_impl2.cxx
@@ -2025,4 +2025,6 @@ void PDFWriterImpl::ImplClearFontData(bool bNewFontLists)
}
}
+void PDFWriterImpl::ClipRegionIntersectRectangle(vcl::Region&) {}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/gdi/print.cxx b/vcl/source/gdi/print.cxx
index ed6be53ecd87..8678dc1986b2 100644
--- a/vcl/source/gdi/print.cxx
+++ b/vcl/source/gdi/print.cxx
@@ -1669,6 +1669,8 @@ void Printer::SetFontOrientation( LogicalFontInstance* const pFontEntry ) const
pFontEntry->mnOrientation = pFontEntry->mxFontMetric->GetOrientation();
}
+void Printer::ClipRegionIntersectRectangle(vcl::Region&) {}
+
Bitmap Printer::GetBitmap( const Point& rSrcPt, const Size& rSize ) const
{
SAL_WARN("vcl.gdi", "GetBitmap(): This should never be called on by a Printer instance");
diff --git a/vcl/source/outdev/clipping.cxx b/vcl/source/outdev/clipping.cxx
index 3503b9555970..6e3fa877bc4b 100644
--- a/vcl/source/outdev/clipping.cxx
+++ b/vcl/source/outdev/clipping.cxx
@@ -154,18 +154,7 @@ void OutputDevice::InitClipRegion()
// #102532# Respect output offset also for clip region
vcl::Region aRegion( ImplPixelToDevicePixel( maRegion ) );
- const bool bClipDeviceBounds((OUTDEV_PDF != GetOutDevType())
- && (OUTDEV_PRINTER != GetOutDevType()));
- if( bClipDeviceBounds )
- {
- // Perform actual rect clip against outdev
- // dimensions, to generate empty clips whenever one of the
- // values is completely off the device.
- tools::Rectangle aDeviceBounds( mnOutOffX, mnOutOffY,
- mnOutOffX+GetOutputWidthPixel()-1,
- mnOutOffY+GetOutputHeightPixel()-1 );
- aRegion.Intersect( aDeviceBounds );
- }
+ ClipRegionIntersectRectangle(aRegion);
if ( aRegion.IsEmpty() )
{
@@ -194,6 +183,17 @@ void OutputDevice::InitClipRegion()
mbInitClipRegion = false;
}
+void OutputDevice::ClipRegionIntersectRectangle(vcl::Region& rRegion)
+{
+ // Perform actual rect clip against outdev dimensions,
+ // to generate empty clips whenever one of the values is completely off the device.
+ rRegion.Intersect(tools::Rectangle{mnOutOffX,
+ mnOutOffY,
+ mnOutOffX + GetOutputWidthPixel() - 1,
+ mnOutOffY + GetOutputHeightPixel() - 1
+ });
+}
+
vcl::Region OutputDevice::GetActiveClipRegion() const
{
return GetClipRegion();
More information about the Libreoffice-commits
mailing list