vcl/source/gdi/print2.cxx | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-)
New commits: commit 93649784ddbb7d9ca779d14fd60fb97385325d17 Author: Chris Sherlock <chris.sherloc...@gmail.com> AuthorDate: Tue May 12 23:53:24 2020 +1000 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Sat May 23 20:10:30 2020 +0200 vcl: move stage 1 functionality into DetectBackground() Change-Id: I7a1785683868ca48156208bb08a80298b332fee2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94563 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/vcl/source/gdi/print2.cxx b/vcl/source/gdi/print2.cxx index 8e4884a05a4d..1da4393c170a 100644 --- a/vcl/source/gdi/print2.cxx +++ b/vcl/source/gdi/print2.cxx @@ -752,6 +752,23 @@ void SetBackgroundColorAndBounds(ConnectedComponents& rBackgroundComponent, Colo } } +int DetectBackground(ConnectedComponents& rBackgroundComponent, MetaAction* pCurrAct, + Color const & rBackgroundColor, tools::Rectangle const& rRectBounds, + GDIMetaFile const & rMtf, VirtualDevice* pMapModeVDev, + sal_uInt32 nDPIX, sal_uInt32 nDPIY) +{ + RecordMapModeChanges(pMapModeVDev, nDPIX, nDPIY); + + // weed out page-filling background objects (if they are + // uniformly coloured). Keeping them outside the other + // connected components often prevents whole-page bitmap + // generation. + SetBackgroundColorAndBounds(rBackgroundComponent, rBackgroundColor, rRectBounds); + int nLastBgAction = FindIncompletelyOccludedBackground(rBackgroundComponent, rMtf, pMapModeVDev); + int nActionNum = GetActionAfterBackgroundAction(rBackgroundComponent, pCurrAct, rMtf, nLastBgAction, pMapModeVDev); + return nActionNum; +} + } // end anon namespace bool OutputDevice::RemoveTransparenciesFromMetaFile( const GDIMetaFile& rInMtf, GDIMetaFile& rOutMtf, @@ -807,19 +824,15 @@ bool OutputDevice::RemoveTransparenciesFromMetaFile( const GDIMetaFile& rInMtf, // create an OutputDevice to record mapmode changes and the like ScopedVclPtrInstance< VirtualDevice > aMapModeVDev; - RecordMapModeChanges(aMapModeVDev.get(), mnDPIX, mnDPIY); // Receives uniform background content, and is _not_ merged // nor checked for intersection against other aCCList elements ConnectedComponents aBackgroundComponent; - // weed out page-filling background objects (if they are - // uniformly coloured). Keeping them outside the other - // connected components often prevents whole-page bitmap - // generation. - SetBackgroundColorAndBounds(aBackgroundComponent, rBackground, GetBackgroundComponentBounds()); - int nLastBgAction = FindIncompletelyOccludedBackground(aBackgroundComponent, rInMtf, aMapModeVDev.get()); - int nActionNum = GetActionAfterBackgroundAction(aBackgroundComponent, pCurrAct, rInMtf, nLastBgAction, aMapModeVDev.get()); + int nActionNum = DetectBackground(aBackgroundComponent, pCurrAct, + rBackground, GetBackgroundComponentBounds(), + rInMtf, aMapModeVDev.get(), + mnDPIX, mnDPIY); // STAGE 2: Generate connected components list _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits