Rebased ref, commits from common ancestor: commit 5a2f3fff0524a879df453c080933876d33ab9a17 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Thu Aug 13 08:49:30 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:24 2020 +0200
remove constructor with plain Bitmap from Graphic, use BitmapEx Change-Id: Ie429a10a8f54c6779d437ee4bc75a5ea0c427848 diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 89ba081348c2..cc60076b58a6 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -4309,7 +4309,8 @@ void SbRtl_LoadPicture(StarBASIC *, SbxArray & rPar, bool) { Bitmap aBmp; ReadDIB(aBmp, *pStream, true); - Graphic aGraphic(aBmp); + BitmapEx aBitmapEx(aBmp); + Graphic aGraphic(aBitmapEx); SbxObjectRef xRef = new SbStdPicture; static_cast<SbStdPicture*>(xRef.get())->SetGraphic( aGraphic ); diff --git a/emfio/source/reader/mtftools.cxx b/emfio/source/reader/mtftools.cxx index 535c49184dae..a903bf99aa99 100644 --- a/emfio/source/reader/mtftools.cxx +++ b/emfio/source/reader/mtftools.cxx @@ -1310,7 +1310,7 @@ namespace emfio Color(), Color(), 0, - Graphic (maLatestFillStyle.aBmp) ); + Graphic (BitmapEx(maLatestFillStyle.aBmp))); SvMemoryStream aMemStm; diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx index 57f034e38870..ea37cbe45b47 100644 --- a/filter/source/msfilter/msdffimp.cxx +++ b/filter/source/msfilter/msdffimp.cxx @@ -6555,7 +6555,7 @@ bool SvxMSDffManager::GetBLIPDirect( SvStream& rBLIPStream, Graphic& rData, tool Bitmap aNew; if( ReadDIB(aNew, *pGrStream, false) ) { - rData = Graphic( aNew ); + rData = Graphic(BitmapEx(aNew)); nRes = ERRCODE_NONE; } } diff --git a/include/vcl/graph.hxx b/include/vcl/graph.hxx index f6a47e43b8ec..1880041b4ba5 100644 --- a/include/vcl/graph.hxx +++ b/include/vcl/graph.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_VCL_GRAPH_HXX -#define INCLUDED_VCL_GRAPH_HXX +#pragma once #include <memory> #include <vcl/dllapi.h> @@ -93,7 +92,6 @@ public: Graphic( const GraphicExternalLink& rGraphicLink ); Graphic( const Graphic& rGraphic ); Graphic( Graphic&& rGraphic ) noexcept; - Graphic( const Bitmap& rBmp ); Graphic( const Image& rImage ); Graphic( const BitmapEx& rBmpEx ); Graphic( const std::shared_ptr<VectorGraphicData>& rVectorGraphicDataPtr ); @@ -213,6 +211,4 @@ struct hash<Graphic> } // end namespace std -#endif // INCLUDED_VCL_GRAPH_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx index 70f30c693bb3..70252f6e6699 100644 --- a/sc/source/filter/excel/xiescher.cxx +++ b/sc/source/filter/excel/xiescher.cxx @@ -752,7 +752,7 @@ void XclImpDrawObjBase::ConvertFillStyle( SdrObject& rSdrObj, const XclObjFillDa aBitmap = aXOBitmap.GetBitmap().GetBitmap(); rSdrObj.SetMergedItem(XFillStyleItem(drawing::FillStyle_BITMAP)); - rSdrObj.SetMergedItem(XFillBitmapItem(EMPTY_OUSTRING, Graphic(aBitmap))); + rSdrObj.SetMergedItem(XFillBitmapItem(EMPTY_OUSTRING, Graphic(BitmapEx(aBitmap)))); } } } @@ -4137,7 +4137,7 @@ void XclImpDrawing::ReadBmp( Graphic& rGraphic, const XclImpRoot& rRoot, XclImpS aMemStrm.Seek( STREAM_SEEK_TO_BEGIN ); Bitmap aBitmap; if( ReadDIB(aBitmap, aMemStrm, false) ) // read DIB without file header - rGraphic = aBitmap; + rGraphic = BitmapEx(aBitmap); } void XclImpDrawing::ReadDffRecord( XclImpStream& rStrm ) diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx index 59687f189450..2f028a15644e 100644 --- a/sd/source/core/drawdoc4.cxx +++ b/sd/source/core/drawdoc4.cxx @@ -167,7 +167,7 @@ void SdDrawDocument::CreateLayoutTemplates() Size aNullSize( 32, 32 ); Bitmap aNullBmp( aNullSize, 8 ); aNullBmp.Erase( COL_WHITE ); - rISet.Put(XFillBitmapItem(Graphic(aNullBmp))); + rISet.Put(XFillBitmapItem(Graphic(BitmapEx(aNullBmp)))); // Shadow attributes (Drawing Engine) rISet.Put(makeSdrShadowItem(false)); diff --git a/sd/source/ui/dlg/vectdlg.cxx b/sd/source/ui/dlg/vectdlg.cxx index 843d593f5e28..dce0e837ac38 100644 --- a/sd/source/ui/dlg/vectdlg.cxx +++ b/sd/source/ui/dlg/vectdlg.cxx @@ -103,7 +103,7 @@ void SdVectorizeDlg::InitPreviewBmp() aPreviewBmp = aBmp; aPreviewBmp.Scale( aRect.GetSize() ); - m_aBmpWin.SetGraphic( aPreviewBmp ); + m_aBmpWin.SetGraphic(BitmapEx(aPreviewBmp)); } Bitmap SdVectorizeDlg::GetPreparedBitmap( Bitmap const & rBmp, Fraction& rScale ) diff --git a/sd/source/ui/view/sdview3.cxx b/sd/source/ui/view/sdview3.cxx index c4ae7621a60c..1ecd4aa48efe 100644 --- a/sd/source/ui/view/sdview3.cxx +++ b/sd/source/ui/view/sdview3.cxx @@ -194,21 +194,21 @@ bool View::InsertMetaFile( TransferableDataHelper& rDataHelper, const Point& rPo { MetaBmpAction* pBmpAction = dynamic_cast< MetaBmpAction* >( pAction ); if( pBmpAction ) - aGraphic = Graphic( pBmpAction->GetBitmap() ); + aGraphic = Graphic(BitmapEx(pBmpAction->GetBitmap())); } break; case MetaActionType::BMPSCALE: { MetaBmpScaleAction* pBmpScaleAction = dynamic_cast< MetaBmpScaleAction* >( pAction ); if( pBmpScaleAction ) - aGraphic = Graphic( pBmpScaleAction->GetBitmap() ); + aGraphic = Graphic(BitmapEx(pBmpScaleAction->GetBitmap())); } break; case MetaActionType::BMPEX: { MetaBmpExAction* pBmpExAction = dynamic_cast< MetaBmpExAction* >( pAction ); if( pBmpExAction ) - aGraphic = Graphic( pBmpExAction->GetBitmapEx() ); + aGraphic = Graphic(pBmpExAction->GetBitmapEx() ); } break; case MetaActionType::BMPEXSCALE: diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx index 8245f6da66ec..7f760ab26e13 100644 --- a/sfx2/source/appl/linkmgr2.cxx +++ b/sfx2/source/appl/linkmgr2.cxx @@ -559,7 +559,7 @@ bool LinkManager::GetGraphicFromAny(const OUString& rMimeType, { Bitmap aBmp; ReadDIB(aBmp, aMemStm, true); - rGraphic = aBmp; + rGraphic = BitmapEx(aBmp); bRet = true; } break; diff --git a/svtools/qa/unit/GraphicObjectTest.cxx b/svtools/qa/unit/GraphicObjectTest.cxx index bb09612f7d72..849dea550606 100644 --- a/svtools/qa/unit/GraphicObjectTest.cxx +++ b/svtools/qa/unit/GraphicObjectTest.cxx @@ -45,7 +45,7 @@ private: void GraphicObjectTest::testTdf88836() { // Construction with empty bitmap -> type should be GraphicType::NONE - Graphic aGraphic = Bitmap(); + Graphic aGraphic = BitmapEx(Bitmap()); CPPUNIT_ASSERT_EQUAL(int(GraphicType::NONE), int(aGraphic.GetType())); aGraphic = Graphic(BitmapEx()); CPPUNIT_ASSERT_EQUAL(int(GraphicType::NONE), int(aGraphic.GetType())); diff --git a/svx/source/dialog/_bmpmask.cxx b/svx/source/dialog/_bmpmask.cxx index 52cd4f2ae79b..ca3b0d21ef6c 100644 --- a/svx/source/dialog/_bmpmask.cxx +++ b/svx/source/dialog/_bmpmask.cxx @@ -811,7 +811,7 @@ GDIMetaFile SvxBmpMask::ImpMask( const GDIMetaFile& rMtf ) case MetaActionType::BMP: { MetaBmpAction* pAct = static_cast<MetaBmpAction*>(pAction); - const Bitmap aBmp( Mask( pAct->GetBitmap() ).GetBitmapEx().GetBitmap() ); + const Bitmap aBmp( Mask(BitmapEx(pAct->GetBitmap())).GetBitmapEx().GetBitmap() ); pAct = new MetaBmpAction( pAct->GetPoint(), aBmp ); aMtf.AddAction( pAct ); @@ -821,7 +821,7 @@ GDIMetaFile SvxBmpMask::ImpMask( const GDIMetaFile& rMtf ) case MetaActionType::BMPSCALE: { MetaBmpScaleAction* pAct = static_cast<MetaBmpScaleAction*>(pAction); - const Bitmap aBmp( Mask( pAct->GetBitmap() ).GetBitmapEx().GetBitmap() ); + const Bitmap aBmp( Mask(BitmapEx(pAct->GetBitmap())).GetBitmapEx().GetBitmap() ); pAct = new MetaBmpScaleAction( pAct->GetPoint(), pAct->GetSize(), aBmp ); aMtf.AddAction( pAct ); @@ -831,7 +831,7 @@ GDIMetaFile SvxBmpMask::ImpMask( const GDIMetaFile& rMtf ) case MetaActionType::BMPSCALEPART: { MetaBmpScalePartAction* pAct = static_cast<MetaBmpScalePartAction*>(pAction); - const Bitmap aBmp( Mask( pAct->GetBitmap() ).GetBitmapEx().GetBitmap() ); + const Bitmap aBmp( Mask(BitmapEx(pAct->GetBitmap())).GetBitmapEx().GetBitmap() ); pAct = new MetaBmpScalePartAction( pAct->GetDestPoint(), pAct->GetDestSize(), pAct->GetSrcPoint(), pAct->GetSrcSize(), aBmp ); diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx index 1f62442af896..1555951984c1 100644 --- a/svx/source/svdraw/svdfmtf.cxx +++ b/svx/source/svdraw/svdfmtf.cxx @@ -1092,7 +1092,7 @@ void ImpSdrGDIMetaFileImport::DoAction(MetaBmpAction const & rAct) aRect.AdjustRight( 1 ); aRect.AdjustBottom( 1 ); SdrGrafObj* pGraf = new SdrGrafObj( *mpModel, - Graphic(rAct.GetBitmap()), + Graphic(BitmapEx(rAct.GetBitmap())), aRect); // This action is not creating line and fill, set directly, do not use SetAttributes(..) @@ -1107,7 +1107,7 @@ void ImpSdrGDIMetaFileImport::DoAction(MetaBmpScaleAction const & rAct) aRect.AdjustRight( 1 ); aRect.AdjustBottom( 1 ); SdrGrafObj* pGraf = new SdrGrafObj( *mpModel, - Graphic(rAct.GetBitmap()), + Graphic(BitmapEx(rAct.GetBitmap())), aRect); // This action is not creating line and fill, set directly, do not use SetAttributes(..) @@ -1319,14 +1319,14 @@ void ImpSdrGDIMetaFileImport::DoAction(MetaTextRectAction const & rAct) void ImpSdrGDIMetaFileImport::DoAction(MetaBmpScalePartAction const & rAct) { tools::Rectangle aRect(rAct.GetDestPoint(), rAct.GetDestSize()); - Bitmap aBitmap(rAct.GetBitmap()); + BitmapEx aBitmapEx(rAct.GetBitmap()); aRect.AdjustRight( 1 ); aRect.AdjustBottom( 1 ); - aBitmap.Crop(tools::Rectangle(rAct.GetSrcPoint(), rAct.GetSrcSize())); + aBitmapEx.Crop(tools::Rectangle(rAct.GetSrcPoint(), rAct.GetSrcSize())); SdrGrafObj* pGraf = new SdrGrafObj( *mpModel, - aBitmap, + aBitmapEx, aRect); // This action is not creating line and fill, set directly, do not use SetAttributes(..) diff --git a/svx/source/xoutdev/_xoutbmp.cxx b/svx/source/xoutdev/_xoutbmp.cxx index 15123e853484..8680b6fe8189 100644 --- a/svx/source/xoutdev/_xoutbmp.cxx +++ b/svx/source/xoutdev/_xoutbmp.cxx @@ -284,7 +284,7 @@ ErrCode XOutBitmap::WriteGraphic( const Graphic& rGraphic, OUString& rFileName, if( pVDev->SetOutputSizePixel( aSize ) ) { rGraphic.Draw( pVDev.get(), Point(), aSize ); - aGraphic = pVDev->GetBitmap( Point(), aSize ); + aGraphic = BitmapEx(pVDev->GetBitmap(Point(), aSize)); } else aGraphic = rGraphic.GetBitmapEx(); diff --git a/vcl/inc/graphic/Manager.hxx b/vcl/inc/graphic/Manager.hxx index 8b21f1c46105..73a6676e4d7b 100644 --- a/vcl/inc/graphic/Manager.hxx +++ b/vcl/inc/graphic/Manager.hxx @@ -58,7 +58,6 @@ public: std::shared_ptr<ImpGraphic> copy(std::shared_ptr<ImpGraphic> const& pImpGraphic); std::shared_ptr<ImpGraphic> newInstance(); - std::shared_ptr<ImpGraphic> newInstance(const Bitmap& rBitmap); std::shared_ptr<ImpGraphic> newInstance(const BitmapEx& rBitmapEx); std::shared_ptr<ImpGraphic> newInstance(const std::shared_ptr<VectorGraphicData>& rVectorGraphicDataPtr); diff --git a/vcl/inc/impgraph.hxx b/vcl/inc/impgraph.hxx index 749a5b82a12e..8b3cc14b7f2d 100644 --- a/vcl/inc/impgraph.hxx +++ b/vcl/inc/impgraph.hxx @@ -17,8 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_VCL_INC_IMPGRAPH_HXX -#define INCLUDED_VCL_INC_IMPGRAPH_HXX +#pragma once #include <vcl/dllapi.h> #include <vcl/GraphicExternalLink.hxx> @@ -83,7 +82,6 @@ public: ImpGraphic( const ImpGraphic& rImpGraphic ); ImpGraphic( ImpGraphic&& rImpGraphic ) noexcept; ImpGraphic( const GraphicExternalLink& rExternalLink); - ImpGraphic( const Bitmap& rBmp ); ImpGraphic( const BitmapEx& rBmpEx ); ImpGraphic(const std::shared_ptr<VectorGraphicData>& rVectorGraphicDataPtr); ImpGraphic( const Animation& rAnimation ); @@ -209,6 +207,4 @@ public: OUString getSwapFileURL(); }; -#endif // INCLUDED_VCL_INC_IMPGRAPH_HXX - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/qa/cppunit/BackendTest.cxx b/vcl/qa/cppunit/BackendTest.cxx index 68ddebb4380b..7a9cf89fceaf 100644 --- a/vcl/qa/cppunit/BackendTest.cxx +++ b/vcl/qa/cppunit/BackendTest.cxx @@ -41,7 +41,7 @@ class BackendTest : public test::BootstrapFixture Bitmap aBitmap(rBitmap); aBitmap.Scale(Size(128, 128), BmpScaleFlag::Fast); SvFileStream aStream(rsFilename, StreamMode::WRITE | StreamMode::TRUNC); - GraphicFilter::GetGraphicFilter().compressAsPNG(aBitmap, aStream); + GraphicFilter::GetGraphicFilter().compressAsPNG(BitmapEx(aBitmap), aStream); } } diff --git a/vcl/qa/cppunit/BitmapFilterTest.cxx b/vcl/qa/cppunit/BitmapFilterTest.cxx index a519da24ed9b..12b32bc316f7 100644 --- a/vcl/qa/cppunit/BitmapFilterTest.cxx +++ b/vcl/qa/cppunit/BitmapFilterTest.cxx @@ -69,7 +69,7 @@ private: { SvFileStream aStream(sWhere, StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(rBmp, aStream); + rFilter.compressAsPNG(BitmapEx(rBmp), aStream); } }; @@ -201,7 +201,7 @@ void BitmapFilterTest::testPerformance() std::unique_ptr<SvFileStream> pStream( new SvFileStream("~/BlurBigPerformance.png", StreamMode::WRITE | StreamMode::TRUNC)); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aResult, *pStream); + rFilter.compressAsPNG(BitmapEx(aResult), *pStream); pStream.reset(new SvFileStream("~/BlurBigPerformance.txt", StreamMode::WRITE)); pStream->WriteOString("Blur average time: "); diff --git a/vcl/qa/cppunit/BitmapScaleTest.cxx b/vcl/qa/cppunit/BitmapScaleTest.cxx index f73d54f6174d..277e42adbe1b 100644 --- a/vcl/qa/cppunit/BitmapScaleTest.cxx +++ b/vcl/qa/cppunit/BitmapScaleTest.cxx @@ -146,14 +146,14 @@ void BitmapScaleTest::testScale() { SvFileStream aStream("~/scale_before.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(bitmap, aStream); + rFilter.compressAsPNG(BitmapEx(bitmap), aStream); } CPPUNIT_ASSERT(bitmap.Scale(scaleSize.destSize, scaleMethod)); if (bExportBitmap) { SvFileStream aStream("~/scale_after.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(bitmap, aStream); + rFilter.compressAsPNG(BitmapEx(bitmap), aStream); } CPPUNIT_ASSERT_EQUAL(scaleSize.destSize, bitmap.GetSizePixel()); const int lastW = scaleSize.destSize.getWidth() - 1; @@ -215,7 +215,7 @@ void BitmapScaleTest::testScale2() { SvFileStream aStream("scale_before.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aBitmap24Bit, aStream); + rFilter.compressAsPNG(BitmapEx(aBitmap24Bit), aStream); } // Scale - 65x65 @@ -228,7 +228,7 @@ void BitmapScaleTest::testScale2() { SvFileStream aStream("scale_after_65x65.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aScaledBitmap, aStream); + rFilter.compressAsPNG(BitmapEx(aScaledBitmap), aStream); } CPPUNIT_ASSERT_EQUAL(static_cast<long>(65), aScaledBitmap.GetSizePixel().Width()); @@ -245,7 +245,7 @@ void BitmapScaleTest::testScale2() { SvFileStream aStream("scale_after_64x64.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aScaledBitmap, aStream); + rFilter.compressAsPNG(BitmapEx(aScaledBitmap), aStream); } CPPUNIT_ASSERT_EQUAL(static_cast<long>(64), aScaledBitmap.GetSizePixel().Width()); @@ -262,7 +262,7 @@ void BitmapScaleTest::testScale2() { SvFileStream aStream("scale_after_63x63.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aScaledBitmap, aStream); + rFilter.compressAsPNG(BitmapEx(aScaledBitmap), aStream); } CPPUNIT_ASSERT_EQUAL(static_cast<long>(63), aScaledBitmap.GetSizePixel().Width()); @@ -297,7 +297,7 @@ void BitmapScaleTest::testScaleSymmetry() { SvFileStream aStream("~/scale_before.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aBitmap24Bit, aStream); + rFilter.compressAsPNG(BitmapEx(aBitmap24Bit), aStream); } aBitmap24Bit.Scale(2, 2, BmpScaleFlag::Fast); @@ -313,7 +313,7 @@ void BitmapScaleTest::testScaleSymmetry() { SvFileStream aStream("~/scale_after.png", StreamMode::WRITE | StreamMode::TRUNC); GraphicFilter& rFilter = GraphicFilter::GetGraphicFilter(); - rFilter.compressAsPNG(aBitmap24Bit, aStream); + rFilter.compressAsPNG(BitmapEx(aBitmap24Bit), aStream); } } diff --git a/vcl/qa/cppunit/graphicfilter/filters-test.cxx b/vcl/qa/cppunit/graphicfilter/filters-test.cxx index 26f743cfa311..bc745fc530f8 100644 --- a/vcl/qa/cppunit/graphicfilter/filters-test.cxx +++ b/vcl/qa/cppunit/graphicfilter/filters-test.cxx @@ -116,7 +116,7 @@ void VclFiltersTest::checkExportImport(const OUString& aFilterShortName) aFilterData[ 2 ].Value <<= sal_Int32(90); sal_uInt16 aFilterType = mpGraphicFilter->GetExportFormatNumberForShortName(aFilterShortName); - mpGraphicFilter->ExportGraphic( aBitmap, OUString(), aStream, aFilterType, &aFilterData ); + mpGraphicFilter->ExportGraphic(BitmapEx(aBitmap), OUString(), aStream, aFilterType, &aFilterData ); CPPUNIT_ASSERT(aStream.Tell() > 0); diff --git a/vcl/source/filter/igif/gifread.cxx b/vcl/source/filter/igif/gifread.cxx index 045a6de0571e..f2ad9bd1132c 100644 --- a/vcl/source/filter/igif/gifread.cxx +++ b/vcl/source/filter/igif/gifread.cxx @@ -712,7 +712,7 @@ Graphic GIFReader::GetIntermediateGraphic() bStatus = bStatus && pAcc1; } else - aImGraphic = aBmp8; + aImGraphic = BitmapEx(aBmp8); pAcc8 = BitmapScopedWriteAccess(aBmp8); bStatus = bStatus && pAcc8; diff --git a/vcl/source/filter/ixpm/xpmread.cxx b/vcl/source/filter/ixpm/xpmread.cxx index fa71bfa3cb75..1e47bfe9d765 100644 --- a/vcl/source/filter/ixpm/xpmread.cxx +++ b/vcl/source/filter/ixpm/xpmread.cxx @@ -254,7 +254,7 @@ ReadState XPMReader::ReadXPM( Graphic& rGraphic ) } else { - rGraphic = maBmp; + rGraphic = BitmapEx(maBmp); } eReadState = XPMREAD_OK; } diff --git a/vcl/source/filter/jpeg/JpegReader.cxx b/vcl/source/filter/jpeg/JpegReader.cxx index cd378f4a855f..0ea4ef493886 100644 --- a/vcl/source/filter/jpeg/JpegReader.cxx +++ b/vcl/source/filter/jpeg/JpegReader.cxx @@ -269,12 +269,12 @@ Graphic JPEGReader::CreateIntermediateGraphic(long nLines) } else { - aGraphic = *mpBitmap; + aGraphic = BitmapEx(*mpBitmap); } } else { - aGraphic = *mpBitmap; + aGraphic = BitmapEx(*mpBitmap); } mnLastLines = nLines; @@ -304,7 +304,7 @@ ReadState JPEGReader::Read( Graphic& rGraphic, GraphicFilterImportFlags nImportF else { if (!bUseExistingBitmap) - rGraphic = *mpBitmap; + rGraphic = BitmapEx(*mpBitmap); } bRet = true; diff --git a/vcl/source/gdi/graph.cxx b/vcl/source/gdi/graph.cxx index 05ad9657d8d9..b88aaf0e9f3f 100644 --- a/vcl/source/gdi/graph.cxx +++ b/vcl/source/gdi/graph.cxx @@ -182,11 +182,6 @@ Graphic::Graphic(GraphicExternalLink const & rGraphicExternalLink) { } -Graphic::Graphic(const Bitmap& rBmp) - : mxImpGraphic(vcl::graphic::Manager::get().newInstance(rBmp)) -{ -} - Graphic::Graphic(const BitmapEx& rBmpEx) : mxImpGraphic(vcl::graphic::Manager::get().newInstance(rBmpEx)) { diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx index 925ec4a34952..c40a344ba1da 100644 --- a/vcl/source/gdi/impgraph.cxx +++ b/vcl/source/gdi/impgraph.cxx @@ -186,17 +186,6 @@ ImpGraphic::ImpGraphic(GraphicExternalLink const & rGraphicExternalLink) : { } -ImpGraphic::ImpGraphic( const Bitmap& rBitmap ) : - maBitmapEx ( rBitmap ), - meType ( !rBitmap.IsEmpty() ? GraphicType::Bitmap : GraphicType::NONE ), - mnSizeBytes ( 0 ), - mbSwapOut ( false ), - mbDummyContext ( false ), - maLastUsed (std::chrono::high_resolution_clock::now()), - mbPrepared (false) -{ -} - ImpGraphic::ImpGraphic( const BitmapEx& rBitmapEx ) : maBitmapEx ( rBitmapEx ), meType ( !rBitmapEx.IsEmpty() ? GraphicType::Bitmap : GraphicType::NONE ), diff --git a/vcl/source/gdi/pdfwriter_impl2.cxx b/vcl/source/gdi/pdfwriter_impl2.cxx index c8e5847aaa4d..177a8772c304 100644 --- a/vcl/source/gdi/pdfwriter_impl2.cxx +++ b/vcl/source/gdi/pdfwriter_impl2.cxx @@ -204,7 +204,7 @@ void PDFWriterImpl::implWriteBitmapEx( const Point& i_rPoint, const Size& i_rSiz else aMask = aBitmapEx.GetMask(); } - Graphic aGraphic( aBitmapEx.GetBitmap() ); + Graphic aGraphic(BitmapEx(aBitmapEx.GetBitmap())); Sequence< PropertyValue > aFilterData( 2 ); aFilterData[ 0 ].Name = "Quality"; diff --git a/vcl/source/graphic/GraphicObject2.cxx b/vcl/source/graphic/GraphicObject2.cxx index dc60db55dd3f..d858b47b8f34 100644 --- a/vcl/source/graphic/GraphicObject2.cxx +++ b/vcl/source/graphic/GraphicObject2.cxx @@ -308,9 +308,9 @@ bool GraphicObject::ImplDrawTiled( OutputDevice* pOut, const tools::Rectangle& r GraphicObject aAlphaGraphic; if( GetGraphic().IsAlpha() ) - aAlphaGraphic.SetGraphic( GetGraphic().GetBitmapEx().GetAlpha().GetBitmap() ); + aAlphaGraphic.SetGraphic(BitmapEx(GetGraphic().GetBitmapEx().GetAlpha().GetBitmap())); else - aAlphaGraphic.SetGraphic( GetGraphic().GetBitmapEx().GetMask() ); + aAlphaGraphic.SetGraphic(BitmapEx(GetGraphic().GetBitmapEx().GetMask())); if( aAlphaGraphic.ImplRenderTempTile( *aVDev, nNumTilesInCacheX, nNumTilesInCacheY, rSizePixel, pAttr ) ) diff --git a/vcl/source/graphic/Manager.cxx b/vcl/source/graphic/Manager.cxx index 65e81fc1e605..7a25f8e41b04 100644 --- a/vcl/source/graphic/Manager.cxx +++ b/vcl/source/graphic/Manager.cxx @@ -178,13 +178,6 @@ std::shared_ptr<ImpGraphic> Manager::newInstance() return pReturn; } -std::shared_ptr<ImpGraphic> Manager::newInstance(const Bitmap& rBitmap) -{ - auto pReturn = std::make_shared<ImpGraphic>(rBitmap); - registerGraphic(pReturn, "Bitmap"); - return pReturn; -} - std::shared_ptr<ImpGraphic> Manager::newInstance(const BitmapEx& rBitmapEx) { auto pReturn = std::make_shared<ImpGraphic>(rBitmapEx); commit 78a7de4c8ae3c781dadb3a24798ed8bab35ee8c8 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri Jul 17 15:09:49 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:24 2020 +0200 Revert "hack for gradients split into adjacent polygons (tdf#133016)" This reverts commit 777ac5456a1f24fea29931ede983b5b8ad9a063d. diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx index e6906a638084..d3e32e22ea46 100644 --- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx @@ -30,7 +30,7 @@ #include <drawinglayer/geometry/viewinformation2d.hxx> #include <sal/log.hxx> #include <cmath> -#include <vcl/skia/SkiaHelper.hxx> + using namespace com::sun::star; @@ -868,12 +868,6 @@ namespace drawinglayer::primitive2d // use color distance and discrete lengths to calculate step count const sal_uInt32 nSteps(calculateStepsForSvgGradient(getColorA(), getColorB(), fDelta, fDiscreteUnit)); - // HACK: Splitting a gradient into adjacent polygons with gradually changing color is silly. - // If antialiasing is used to draw them, the AA-ed adjacent edges won't line up perfectly - // because of the AA (see SkiaSalGraphicsImpl::mergePolyPolygonToPrevious()). - // Make the polygons a bit wider, so they the partial overlap "fixes" this. - const double fixup = SkiaHelper::isVCLSkiaEnabled() ? fDiscreteUnit / 2 : 0; - // tdf#117949 Use a small amount of discrete overlap at the edges. Usually this // should be exactly 0.0 and 1.0, but there were cases when this gets clipped // against the mask polygon which got numerically problematic. @@ -887,7 +881,7 @@ namespace drawinglayer::primitive2d basegfx::B2DRange( getOffsetA() - fDiscreteUnit, -0.0001, // TTTT -> should be 0.0, see comment above - getOffsetA() + (fDelta / nSteps) + fDiscreteUnit + fixup, + getOffsetA() + (fDelta / nSteps) + fDiscreteUnit, 1.0001))); // TTTT -> should be 1.0, see comment above // prepare loop (inside to outside, [0.0 .. 1.0[) commit 38e800cbd2e9d301617ed66da4a4111d9a4ce2c3 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Mon Jun 15 19:39:35 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:23 2020 +0200 vcl: add a Bitmap interface to basegfx, BitmapEx implementing it Change-Id: I758f421d545191883e615f5016e9fc643459556e diff --git a/include/basegfx/bitmap/Bitmap.hxx b/include/basegfx/bitmap/Bitmap.hxx new file mode 100644 index 000000000000..b91b702aa212 --- /dev/null +++ b/include/basegfx/bitmap/Bitmap.hxx @@ -0,0 +1,23 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#pragma once + +#include <basegfx/basegfxdllapi.h> + +namespace basegfx +{ +class BASEGFX_DLLPUBLIC IBitmap +{ +}; + +} // end of namespace basegfx + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx index 4dac473bb2f5..774afe981d07 100644 --- a/include/vcl/bitmapex.hxx +++ b/include/vcl/bitmapex.hxx @@ -25,6 +25,8 @@ #include <vcl/Scanline.hxx> #include <tools/color.hxx> +#include <basegfx/bitmap/Bitmap.hxx> + #include <sal/types.h> namespace com::sun::star::rendering { @@ -40,7 +42,7 @@ enum class TransparentType Bitmap }; -class SAL_WARN_UNUSED VCL_DLLPUBLIC BitmapEx +class SAL_WARN_UNUSED VCL_DLLPUBLIC BitmapEx : basegfx::IBitmap { public: commit 988e10fa138ae262f6ace34eedbc66cb50274b6d Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Wed May 27 12:49:05 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:23 2020 +0200 add o3tl version of hash_combine to not depend on boost for this Change-Id: I081f8d116ef811baa8aa5de35a6cb51fa4de7d56 diff --git a/include/o3tl/hash_combine.hxx b/include/o3tl/hash_combine.hxx new file mode 100644 index 000000000000..17419b3e2c0f --- /dev/null +++ b/include/o3tl/hash_combine.hxx @@ -0,0 +1,29 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#pragma once + +namespace o3tl +{ +template <typename T, typename N, std::enable_if_t<(sizeof(N) == 4), bool> = false> +inline void hash_combine(N& nSeed, T const& nValue) +{ + static_assert(sizeof(nSeed) == 4); + nSeed ^= std::hash<T>{}(nValue) + 0x9E3779B9u + (nSeed << 6) + (nSeed >> 2); +} + +template <typename T, typename N, std::enable_if_t<(sizeof(N) == 8), bool> = false> +inline void hash_combine(N& nSeed, T const& nValue) +{ + static_assert(sizeof(nSeed) == 8); + nSeed ^= std::hash<T>{}(nValue) + 0x9E3779B97F4A7C15llu + (nSeed << 12) + (nSeed >> 4); +} +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/o3tl/qa/test-lru_map.cxx b/o3tl/qa/test-lru_map.cxx index a03a6bf37200..3ab285c4329a 100644 --- a/o3tl/qa/test-lru_map.cxx +++ b/o3tl/qa/test-lru_map.cxx @@ -15,7 +15,7 @@ #include <o3tl/lru_map.hxx> -#include <boost/functional/hash.hpp> +#include <o3tl/hash_combine.hxx> using namespace ::o3tl; @@ -206,8 +206,8 @@ struct TestClassKeyHashFunction std::size_t operator()(TestClassKey const& aKey) const { std::size_t seed = 0; - boost::hash_combine(seed, aKey.mA); - boost::hash_combine(seed, aKey.mB); + o3tl::hash_combine(seed, aKey.mA); + o3tl::hash_combine(seed, aKey.mB); return seed; } }; commit 94ef22fca08935389ccfa1fb67f6f206f13336d5 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Tue May 26 15:57:38 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:23 2020 +0200 GraphicAttributes: put const. and op. '=' into the header file Change-Id: I1bc38f89457c3593673b445e7571a4fd82d5960b diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx index 28b23d324a1d..47aad3b723af 100644 --- a/include/vcl/GraphicAttributes.hxx +++ b/include/vcl/GraphicAttributes.hxx @@ -51,9 +51,37 @@ private: GraphicDrawMode meDrawMode; public: - GraphicAttr(); + GraphicAttr() + : mfGamma(1.0) + , mnMirrFlags(basegfx::MirrorDirectionFlags::NONE) + , mnLeftCrop(0) + , mnTopCrop(0) + , mnRightCrop(0) + , mnBottomCrop(0) + , mnRotate10(0) + , mnContPercent(0) + , mnLumPercent(0) + , mnRPercent(0) + , mnGPercent(0) + , mnBPercent(0) + , mbInvert(false) + , mcTransparency(0) + , meDrawMode(GraphicDrawMode::Standard) + { + } + + bool operator==(const GraphicAttr& rAttr) const + { + return mfGamma == rAttr.mfGamma && mnMirrFlags == rAttr.mnMirrFlags + && mnLeftCrop == rAttr.mnLeftCrop && mnTopCrop == rAttr.mnTopCrop + && mnRightCrop == rAttr.mnRightCrop && mnBottomCrop == rAttr.mnBottomCrop + && mnRotate10 == rAttr.mnRotate10 && mnContPercent == rAttr.mnContPercent + && mnLumPercent == rAttr.mnLumPercent && mnRPercent == rAttr.mnRPercent + && mnGPercent == rAttr.mnGPercent && mnBPercent == rAttr.mnBPercent + && mbInvert == rAttr.mbInvert && mcTransparency == rAttr.mcTransparency + && meDrawMode == rAttr.meDrawMode; + } - bool operator==(const GraphicAttr& rAttr) const; bool operator!=(const GraphicAttr& rAttr) const { return !(*this == rAttr); } void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; } diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 5bec7efcc253..83a60fc0c656 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -326,7 +326,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/graphic/GraphicObject \ vcl/source/graphic/GraphicObject2 \ vcl/source/graphic/GraphicReader \ - vcl/source/graphic/grfattr \ vcl/source/graphic/Manager \ vcl/source/graphic/UnoGraphic \ vcl/source/graphic/UnoGraphicDescriptor \ diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx deleted file mode 100644 index 36e8605b77de..000000000000 --- a/vcl/source/graphic/grfattr.cxx +++ /dev/null @@ -1,60 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <vcl/GraphicAttributes.hxx> - -GraphicAttr::GraphicAttr() : - mfGamma ( 1.0 ), - mnMirrFlags ( basegfx::MirrorDirectionFlags::NONE ), - mnLeftCrop ( 0 ), - mnTopCrop ( 0 ), - mnRightCrop ( 0 ), - mnBottomCrop ( 0 ), - mnRotate10 ( 0 ), - mnContPercent ( 0 ), - mnLumPercent ( 0 ), - mnRPercent ( 0 ), - mnGPercent ( 0 ), - mnBPercent ( 0 ), - mbInvert ( false ), - mcTransparency ( 0 ), - meDrawMode ( GraphicDrawMode::Standard ) -{ -} - -bool GraphicAttr::operator==( const GraphicAttr& rAttr ) const -{ - return( ( mfGamma == rAttr.mfGamma ) && - ( mnMirrFlags == rAttr.mnMirrFlags ) && - ( mnLeftCrop == rAttr.mnLeftCrop ) && - ( mnTopCrop == rAttr.mnTopCrop ) && - ( mnRightCrop == rAttr.mnRightCrop ) && - ( mnBottomCrop == rAttr.mnBottomCrop ) && - ( mnRotate10 == rAttr.mnRotate10 ) && - ( mnContPercent == rAttr.mnContPercent ) && - ( mnLumPercent == rAttr.mnLumPercent ) && - ( mnRPercent == rAttr.mnRPercent ) && - ( mnGPercent == rAttr.mnGPercent ) && - ( mnBPercent == rAttr.mnBPercent ) && - ( mbInvert == rAttr.mbInvert ) && - ( mcTransparency == rAttr.mcTransparency ) && - ( meDrawMode == rAttr.meDrawMode ) ); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 8c4433c219248066d84edd4e68f54a2fbacb4939 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Tue May 26 13:39:45 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:22 2020 +0200 basegfx::MirrorDirectionFlags as replacement for BmpMirrorFlags BmpMirrorFlags in Bitmap is an attribute for bitmap manipulation (mirroring). This change creates a copy of the flags in basegfx as MirrorDirectionFlags, which will be used in the fututre as a general repalcement for the BmpMirrorFlags, that will be changed step by step. For now we only use the flags in GraphicAttr to make it independent form vcl, and cast to/from BmpMirrorFLags and MirrorDirectionFlags where needed. Change-Id: I01a69a4d241caa22cff61bdbf87944af57684749 diff --git a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx index f86b1585b13f..2f571ed66aa3 100644 --- a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx @@ -49,8 +49,10 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, if (getGraphicAttr().IsMirrored()) { // content needs mirroring - const bool bHMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Horizontal); - const bool bVMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Vertical); + const bool bHMirr(getGraphicAttr().GetMirrorFlags() + & basegfx::MirrorDirectionFlags::Horizontal); + const bool bVMirr(getGraphicAttr().GetMirrorFlags() + & basegfx::MirrorDirectionFlags::Vertical); // mirror by applying negative scale to the unit primitive and // applying the object transformation on it. @@ -69,7 +71,7 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, aSuppressGraphicAttr.SetCrop(0, 0, 0, 0); aSuppressGraphicAttr.SetRotation(0); - aSuppressGraphicAttr.SetMirrorFlags(BmpMirrorFlags::NONE); + aSuppressGraphicAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags::NONE); aSuppressGraphicAttr.SetTransparency(0); const GraphicObject& rGraphicObject = getGraphicObject(); diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx index 2dabfa2014d5..f503b7136ebe 100644 --- a/filter/source/msfilter/escherex.cxx +++ b/filter/source/msfilter/escherex.cxx @@ -1693,7 +1693,7 @@ bool EscherPropertyContainer::CreateGraphicProperties(const uno::Reference<beans if(bMirrored) { - pGraphicAttr->SetMirrorFlags(BmpMirrorFlags::Horizontal); + pGraphicAttr->SetMirrorFlags(basegfx::MirrorDirectionFlags::Horizontal); } if(nTransparency) diff --git a/include/basegfx/bitmap/BitmapAttributes.hxx b/include/basegfx/bitmap/BitmapAttributes.hxx new file mode 100644 index 000000000000..d918d55faa99 --- /dev/null +++ b/include/basegfx/bitmap/BitmapAttributes.hxx @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#pragma once + +#include <basegfx/basegfxdllapi.h> +#include <o3tl/typed_flags_set.hxx> + +namespace basegfx +{ +enum class MirrorDirectionFlags +{ + NONE = 0x00, + Horizontal = 0x01, + Vertical = 0x02, +}; + +} // end of namespace basegfx + +namespace o3tl +{ +template <> +struct typed_flags<basegfx::MirrorDirectionFlags> + : is_typed_flags<basegfx::MirrorDirectionFlags, 0x03> +{ +}; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx index 08b716b3db08..28b23d324a1d 100644 --- a/include/vcl/GraphicAttributes.hxx +++ b/include/vcl/GraphicAttributes.hxx @@ -21,6 +21,7 @@ #include <vcl/dllapi.h> #include <vcl/bitmap.hxx> +#include <basegfx/bitmap/BitmapAttributes.hxx> enum class GraphicDrawMode { @@ -34,7 +35,7 @@ class VCL_DLLPUBLIC GraphicAttr { private: double mfGamma; - BmpMirrorFlags mnMirrFlags; + basegfx::MirrorDirectionFlags mnMirrFlags; long mnLeftCrop; long mnTopCrop; long mnRightCrop; @@ -58,8 +59,8 @@ public: void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; } GraphicDrawMode GetDrawMode() const { return meDrawMode; } - void SetMirrorFlags(BmpMirrorFlags nMirrFlags) { mnMirrFlags = nMirrFlags; } - BmpMirrorFlags GetMirrorFlags() const { return mnMirrFlags; } + void SetMirrorFlags(basegfx::MirrorDirectionFlags nMirrFlags) { mnMirrFlags = nMirrFlags; } + basegfx::MirrorDirectionFlags GetMirrorFlags() const { return mnMirrFlags; } void SetCrop(long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM, long nBottom_100TH_MM) @@ -102,7 +103,7 @@ public: sal_uInt8 GetTransparency() const { return mcTransparency; } bool IsSpecialDrawMode() const { return (meDrawMode != GraphicDrawMode::Standard); } - bool IsMirrored() const { return mnMirrFlags != BmpMirrorFlags::NONE; } + bool IsMirrored() const { return mnMirrFlags != basegfx::MirrorDirectionFlags::NONE; } bool IsCropped() const { return (mnLeftCrop != 0 || mnTopCrop != 0 || mnRightCrop != 0 || mnBottomCrop != 0); diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx index 8fceef864ae2..db24da9a5552 100644 --- a/svx/source/sdr/contact/viewcontactofgraphic.cxx +++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx @@ -336,7 +336,9 @@ namespace sdr::contact if(bHMirr || bVMirr) { - aLocalGrafInfo.SetMirrorFlags((bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE)|(bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE)); + basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE; + basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE; + aLocalGrafInfo.SetMirrorFlags(eVertical | eHorizontal); } // fill object matrix diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 2f2c4886f86d..ed1433256d8e 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -378,7 +378,10 @@ GraphicAttr SdrGrafObj::GetGraphicAttr( SdrGrafObjTransformsAttrs nTransformFlag bool bHMirr = nMirrorCase == 2 || nMirrorCase == 4; bool bVMirr = nMirrorCase == 3 || nMirrorCase == 4; - aActAttr.SetMirrorFlags( ( bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE ) | ( bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE ) ); + basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE; + basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE; + + aActAttr.SetMirrorFlags(eVertical | eHorizontal); } if( bRotate ) diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 33bfd4ede834..403c3a67c493 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -728,22 +728,22 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA, rGA.SetDrawMode( rSet.GetDrawModeGrf().GetValue() ); const SwMirrorGrf & rMirror = rSet.GetMirrorGrf(); - BmpMirrorFlags nMirror = BmpMirrorFlags::NONE; + basegfx::MirrorDirectionFlags nMirror = basegfx::MirrorDirectionFlags::NONE; if( rMirror.IsGrfToggle() && pFrame && !pFrame->FindPageFrame()->OnRightPage() ) { switch( rMirror.GetValue() ) { case MirrorGraph::Dont: - nMirror = BmpMirrorFlags::Horizontal; + nMirror = basegfx::MirrorDirectionFlags::Horizontal; break; case MirrorGraph::Vertical: - nMirror = BmpMirrorFlags::NONE; + nMirror = basegfx::MirrorDirectionFlags::NONE; break; case MirrorGraph::Horizontal: - nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical; + nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical; break; default: - nMirror = BmpMirrorFlags::Vertical; + nMirror = basegfx::MirrorDirectionFlags::Vertical; break; } } @@ -751,13 +751,13 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA, switch( rMirror.GetValue() ) { case MirrorGraph::Both: - nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical; + nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical; break; case MirrorGraph::Vertical: - nMirror = BmpMirrorFlags::Horizontal; + nMirror = basegfx::MirrorDirectionFlags::Horizontal; break; case MirrorGraph::Horizontal: - nMirror = BmpMirrorFlags::Vertical; + nMirror = basegfx::MirrorDirectionFlags::Vertical; break; default: break; } diff --git a/vcl/source/graphic/GraphicObject.cxx b/vcl/source/graphic/GraphicObject.cxx index 0447bddfd637..137666937eb6 100644 --- a/vcl/source/graphic/GraphicObject.cxx +++ b/vcl/source/graphic/GraphicObject.cxx @@ -168,7 +168,7 @@ void lclImplAdjust( BitmapEx& rBmpEx, const GraphicAttr& rAttr, GraphicAdjustmen if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() ) { - rBmpEx.Mirror( aAttr.GetMirrorFlags() ); + rBmpEx.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()) ); } if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() ) @@ -219,7 +219,7 @@ void lclImplAdjust( GDIMetaFile& rMtf, const GraphicAttr& rAttr, GraphicAdjustme if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() ) { - rMtf.Mirror( aAttr.GetMirrorFlags() ); + rMtf.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags())); } if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() ) @@ -270,7 +270,7 @@ void lclImplAdjust( Animation& rAnimation, const GraphicAttr& rAttr, GraphicAdju if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() ) { - rAnimation.Mirror( aAttr.GetMirrorFlags() ); + rAnimation.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags())); } if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() ) @@ -383,7 +383,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si if( !aSize100.IsEmpty() && nTotalWidth > 0 && nTotalHeight > 0 ) { double fScale = static_cast<double>(aSize100.Width()) / nTotalWidth; - const long nNewLeft = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale ); + const long nNewLeft = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale ); const long nNewRight = nNewLeft + FRound( aSize100.Width() * fScale ) - 1; fScale = static_cast<double>(rSz.Width()) / aSize100.Width(); @@ -391,7 +391,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si rSz.setWidth( FRound( ( nNewRight - nNewLeft + 1 ) * fScale ) ); fScale = static_cast<double>(aSize100.Height()) / nTotalHeight; - const long nNewTop = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale ); + const long nNewTop = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale ); const long nNewBottom = nNewTop + FRound( aSize100.Height() * fScale ) - 1; fScale = static_cast<double>(rSz.Height()) / aSize100.Height(); @@ -476,7 +476,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz, { aPt.AdjustX(aSz.Width() + 1 ); aSz.setWidth( -aSz.Width() ); - aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Horizontal ); + BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Horizontal; + aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags)); } // mirrored vertically @@ -484,7 +485,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz, { aPt.AdjustY(aSz.Height() + 1 ); aSz.setHeight( -aSz.Height() ); - aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Vertical ); + BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Vertical; + aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags)); } if( bCropped ) diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx index 35acaf50b841..36e8605b77de 100644 --- a/vcl/source/graphic/grfattr.cxx +++ b/vcl/source/graphic/grfattr.cxx @@ -21,7 +21,7 @@ GraphicAttr::GraphicAttr() : mfGamma ( 1.0 ), - mnMirrFlags ( BmpMirrorFlags::NONE ), + mnMirrFlags ( basegfx::MirrorDirectionFlags::NONE ), mnLeftCrop ( 0 ), mnTopCrop ( 0 ), mnRightCrop ( 0 ), commit ba76de5cbdc1949b88f43bd220e58b3bfbd04071 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri May 8 22:28:35 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:22 2020 +0200 Move some basic primitives to drawinglayer CORE Mostly which are easy to move and used in VclProcessor2D Change-Id: Ie1559e13a2a7cdb5225421def2f9145026ff9121 diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk index 4896c0ad0759..451a9b1e55d3 100644 --- a/drawinglayer/Library_drawinglayer.mk +++ b/drawinglayer/Library_drawinglayer.mk @@ -50,11 +50,6 @@ $(eval $(call gb_Library_use_libraries,drawinglayer,\ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/animation/animationtiming \ drawinglayer/source/attribute/fillgraphicattribute \ - drawinglayer/source/attribute/fillgradientattribute \ - drawinglayer/source/attribute/fillhatchattribute \ - drawinglayer/source/attribute/fontattribute \ - drawinglayer/source/attribute/lineattribute \ - drawinglayer/source/attribute/linestartendattribute \ drawinglayer/source/attribute/materialattribute3d \ drawinglayer/source/attribute/sdrallattribute3d \ drawinglayer/source/attribute/sdrfillattribute \ @@ -67,11 +62,9 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/attribute/sdrobjectattribute3d \ drawinglayer/source/attribute/sdrsceneattribute3d \ drawinglayer/source/attribute/sdrshadowattribute \ - drawinglayer/source/attribute/strokeattribute \ drawinglayer/source/geometry/viewinformation3d \ drawinglayer/source/primitive2d/animatedprimitive2d \ drawinglayer/source/primitive2d/backgroundcolorprimitive2d \ - drawinglayer/source/primitive2d/bitmapprimitive2d \ drawinglayer/source/primitive2d/borderlineprimitive2d \ drawinglayer/source/primitive2d/controlprimitive2d \ drawinglayer/source/primitive2d/cropprimitive2d \ @@ -80,54 +73,32 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/primitive2d/embedded3dprimitive2d \ drawinglayer/source/primitive2d/epsprimitive2d \ drawinglayer/source/primitive2d/fillgraphicprimitive2d \ - drawinglayer/source/primitive2d/fillgradientprimitive2d \ - drawinglayer/source/primitive2d/fillhatchprimitive2d \ drawinglayer/source/primitive2d/glowprimitive2d \ drawinglayer/source/primitive2d/graphicprimitivehelper2d \ drawinglayer/source/primitive2d/graphicprimitive2d \ drawinglayer/source/primitive2d/gridprimitive2d \ - drawinglayer/source/primitive2d/groupprimitive2d \ drawinglayer/source/primitive2d/helplineprimitive2d \ drawinglayer/source/primitive2d/hiddengeometryprimitive2d \ drawinglayer/source/primitive2d/invertprimitive2d \ drawinglayer/source/primitive2d/markerarrayprimitive2d \ - drawinglayer/source/primitive2d/maskprimitive2d \ drawinglayer/source/primitive2d/mediaprimitive2d \ drawinglayer/source/primitive2d/metafileprimitive2d \ - drawinglayer/source/primitive2d/modifiedcolorprimitive2d \ - drawinglayer/source/primitive2d/objectinfoprimitive2d \ drawinglayer/source/primitive2d/pagehierarchyprimitive2d \ - drawinglayer/source/primitive2d/pagepreviewprimitive2d \ drawinglayer/source/primitive2d/patternfillprimitive2d \ - drawinglayer/source/primitive2d/pointarrayprimitive2d \ - drawinglayer/source/primitive2d/polygonprimitive2d \ - drawinglayer/source/primitive2d/PolyPolygonHairlinePrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonMarkerPrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonStrokePrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonColorPrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonGradientPrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonHatchPrimitive2D \ drawinglayer/source/primitive2d/PolyPolygonGraphicPrimitive2D \ - drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \ - drawinglayer/source/primitive2d/primitivetools2d \ drawinglayer/source/primitive2d/sceneprimitive2d \ drawinglayer/source/primitive2d/sdrdecompositiontools2d \ drawinglayer/source/primitive2d/shadowprimitive2d \ drawinglayer/source/primitive2d/softedgeprimitive2d \ drawinglayer/source/primitive2d/structuretagprimitive2d \ - drawinglayer/source/primitive2d/svggradientprimitive2d \ drawinglayer/source/primitive2d/textbreakuphelper \ drawinglayer/source/primitive2d/textdecoratedprimitive2d \ drawinglayer/source/primitive2d/texteffectprimitive2d \ - drawinglayer/source/primitive2d/textenumsprimitive2d \ drawinglayer/source/primitive2d/texthierarchyprimitive2d \ drawinglayer/source/primitive2d/textlayoutdevice \ drawinglayer/source/primitive2d/textlineprimitive2d \ drawinglayer/source/primitive2d/textprimitive2d \ drawinglayer/source/primitive2d/textstrikeoutprimitive2d \ - drawinglayer/source/primitive2d/transformprimitive2d \ - drawinglayer/source/primitive2d/transparenceprimitive2d \ - drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \ drawinglayer/source/primitive2d/wallpaperprimitive2d \ drawinglayer/source/primitive2d/wrongspellprimitive2d \ drawinglayer/source/primitive3d/baseprimitive3d \ @@ -185,7 +156,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/tools/wmfemfhelper \ drawinglayer/source/tools/primitive2dxmldump \ drawinglayer/source/drawinglayeruno/xprimitive2drenderer \ - drawinglayer/source/texture/texture \ drawinglayer/source/dumper/XShapeDumper \ drawinglayer/source/dumper/EnhancedShapeDumper \ )) diff --git a/drawinglayer/Library_drawinglayercore.mk b/drawinglayer/Library_drawinglayercore.mk index f1643d27014d..972ac32f5388 100644 --- a/drawinglayer/Library_drawinglayercore.mk +++ b/drawinglayer/Library_drawinglayercore.mk @@ -40,10 +40,47 @@ $(eval $(call gb_Library_use_libraries,drawinglayercore,\ )) $(eval $(call gb_Library_add_exception_objects,drawinglayercore,\ + drawinglayer/source/attribute/lineattribute \ + drawinglayer/source/attribute/strokeattribute \ + drawinglayer/source/attribute/linestartendattribute \ + drawinglayer/source/attribute/fillgradientattribute \ + drawinglayer/source/attribute/fillhatchattribute \ + drawinglayer/source/attribute/fontattribute \ + drawinglayer/source/geometry/viewinformation2d \ + drawinglayer/source/texture/texture \ drawinglayer/source/primitive2d/baseprimitive2d \ drawinglayer/source/primitive2d/Primitive2DContainer \ drawinglayer/source/primitive2d/Tools \ - drawinglayer/source/geometry/viewinformation2d \ + drawinglayer/source/primitive2d/polygonprimitive2d \ + drawinglayer/source/primitive2d/PolyPolygonColorPrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonHairlinePrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonMarkerPrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonStrokePrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonGradientPrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonHatchPrimitive2D \ + drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \ + drawinglayer/source/primitive2d/fillgradientprimitive2d \ + drawinglayer/source/primitive2d/maskprimitive2d \ + drawinglayer/source/primitive2d/groupprimitive2d \ + drawinglayer/source/primitive2d/fillhatchprimitive2d \ + drawinglayer/source/primitive2d/primitivetools2d \ + drawinglayer/source/primitive2d/pointarrayprimitive2d \ + drawinglayer/source/primitive2d/modifiedcolorprimitive2d \ + drawinglayer/source/primitive2d/bitmapprimitive2d \ + drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \ + drawinglayer/source/primitive2d/transparenceprimitive2d \ + drawinglayer/source/primitive2d/pagepreviewprimitive2d \ + drawinglayer/source/primitive2d/transformprimitive2d \ + drawinglayer/source/primitive2d/svggradientprimitive2d \ + drawinglayer/source/primitive2d/objectinfoprimitive2d \ + drawinglayer/source/primitive2d/textenumsprimitive2d \ )) +# drawinglayer/source/primitive2d/epsprimitive2d \ +# drawinglayer/source/primitive2d/markerarrayprimitive2d \ +# drawinglayer/source/primitive2d/fillgraphicprimitive2d \ +# drawinglayer/source/primitive2d/textdecoratedprimitive2d \ +# drawinglayer/source/primitive2d/textprimitive2d \ + + # vim: set noet sw=4 ts=4: diff --git a/filter/Library_pdffilter.mk b/filter/Library_pdffilter.mk index a7cb47a65231..349883578482 100644 --- a/filter/Library_pdffilter.mk +++ b/filter/Library_pdffilter.mk @@ -49,6 +49,7 @@ $(eval $(call gb_Library_use_libraries,pdffilter,\ cppuhelper \ cppu \ sal \ + drawinglayercore \ drawinglayer \ )) commit 53bb726f9c21b14283682f118e99ec4ecf7ae032 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Thu Aug 13 10:16:35 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:22 2020 +0200 drawinglayer: externalize PolygonWavePrimitive2D class Change-Id: I20a702c838ec68686b9c7e407be31ae9158cbef6 diff --git a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx index ac56461e35b0..57a37b60814f 100644 --- a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx @@ -39,7 +39,7 @@ namespace drawinglayer::primitive2d This is one of the non-decomposable primitives, so a renderer should process it. */ -class DRAWINGLAYER_DLLPUBLIC PolygonHairlinePrimitive2D final : public BasePrimitive2D +class DRAWINGLAYERCORE_DLLPUBLIC PolygonHairlinePrimitive2D final : public BasePrimitive2D { private: /// the hairline geometry @@ -76,7 +76,7 @@ public: It will be decomposed to the needed PolygonHairlinePrimitive2D if not handled directly by a renderer. */ -class DRAWINGLAYER_DLLPUBLIC PolygonMarkerPrimitive2D final +class DRAWINGLAYERCORE_DLLPUBLIC PolygonMarkerPrimitive2D final : public BufferedDecompositionPrimitive2D { private: @@ -131,7 +131,7 @@ public: and stroke attributes. It will be decomposed dependent on the definition to the needed primitives, e.g. filled PolyPolygons for fat lines. */ -class DRAWINGLAYER_DLLPUBLIC PolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D +class DRAWINGLAYERCORE_DLLPUBLIC PolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D { private: /// the line geometry @@ -180,7 +180,7 @@ public: This primitive defines a waveline based on a PolygonStrokePrimitive2D where the wave is defined by wave width and wave length. */ -class PolygonWavePrimitive2D final : public PolygonStrokePrimitive2D +class DRAWINGLAYERCORE_DLLPUBLIC PolygonWavePrimitive2D final : public PolygonStrokePrimitive2D { private: /// wave definition @@ -225,7 +225,8 @@ public: possibly extended by start and end definitions, which are normally used for arrows. */ -class DRAWINGLAYER_DLLPUBLIC PolygonStrokeArrowPrimitive2D final : public PolygonStrokePrimitive2D +class DRAWINGLAYERCORE_DLLPUBLIC PolygonStrokeArrowPrimitive2D final + : public PolygonStrokePrimitive2D { private: /// geometric definitions for line start and end commit 4284af9dc0581a80cf491cadcd85e747eec7fb08 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri May 8 20:50:29 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:22 2020 +0200 drawinglayer: externalize PointArrayPrimitive2D class Change-Id: I8ee993947bf2f4437cf3a429c43a81132fac0947 diff --git a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx index 7e516555162a..ba4be8c5dcc4 100644 --- a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx @@ -37,7 +37,7 @@ namespace drawinglayer::primitive2d should process it (Currently it is only used for grid visualisation, but this may change). */ - class PointArrayPrimitive2D final : public BasePrimitive2D + class DRAWINGLAYER_DLLPUBLIC PointArrayPrimitive2D final : public BasePrimitive2D { private: /// the array of positions commit 0f38d8ec51da99caca94df19a9533910db29bef2 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri May 8 20:43:38 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:21 2020 +0200 drawinglayer: externalize classes in texture.hxx Change-Id: I1e49a6c896733ebebf16db23f3c2f8b06161d659 diff --git a/drawinglayer/inc/texture/texture.hxx b/drawinglayer/inc/texture/texture.hxx index 24e23a4b241c..b34bde38d1bc 100644 --- a/drawinglayer/inc/texture/texture.hxx +++ b/drawinglayer/inc/texture/texture.hxx @@ -30,7 +30,7 @@ namespace drawinglayer::texture { - class GeoTexSvx + class DRAWINGLAYER_DLLPUBLIC GeoTexSvx { public: GeoTexSvx(); @@ -53,7 +53,7 @@ namespace drawinglayer::texture basegfx::BColor maBColor; }; - class GeoTexSvxGradient : public GeoTexSvx + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradient : public GeoTexSvx { protected: basegfx::ODFGradientInfo maGradientInfo; @@ -79,7 +79,7 @@ namespace drawinglayer::texture basegfx::BColor& rOuterColor) = 0; }; - class GeoTexSvxGradientLinear final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientLinear final : public GeoTexSvxGradient { double mfUnitMinX; double mfUnitWidth; @@ -102,7 +102,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxGradientAxial final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientAxial final : public GeoTexSvxGradient { double mfUnitMinX; double mfUnitWidth; @@ -124,7 +124,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxGradientRadial final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRadial final : public GeoTexSvxGradient { public: GeoTexSvxGradientRadial( @@ -143,7 +143,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxGradientElliptical final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientElliptical final : public GeoTexSvxGradient { public: GeoTexSvxGradientElliptical( @@ -163,7 +163,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxGradientSquare final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientSquare final : public GeoTexSvxGradient { public: GeoTexSvxGradientSquare( @@ -183,7 +183,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxGradientRect final : public GeoTexSvxGradient + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRect final : public GeoTexSvxGradient { public: GeoTexSvxGradientRect( @@ -203,7 +203,7 @@ namespace drawinglayer::texture virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override; }; - class GeoTexSvxHatch final : public GeoTexSvx + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxHatch final : public GeoTexSvx { basegfx::B2DRange maOutputRange; basegfx::B2DHomMatrix maTextureTransform; @@ -239,7 +239,7 @@ namespace drawinglayer::texture // given percentage value (offsetX has to be 0.0 <= offsetX <= 1.0). // Accordingly to offsetY. If both are given, offsetX is preferred // and offsetY is ignored. - class GeoTexSvxTiled final : public GeoTexSvx + class DRAWINGLAYER_DLLPUBLIC GeoTexSvxTiled final : public GeoTexSvx { basegfx::B2DRange maRange; double mfOffsetX; commit d3a9f76c7caef5438620c0fa030765bd288bf76f Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Fri May 8 20:40:59 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:21 2020 +0200 drawinglayer: externalize FillHatchPrimitive2D class Change-Id: I9ad1f179a43bb6c501cb699c0f26523f47307829 diff --git a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx index 03bc12139fcb..07399ce0e759 100644 --- a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx @@ -24,9 +24,6 @@ #include <drawinglayer/attribute/fillhatchattribute.hxx> #include <basegfx/color/bcolor.hxx> - -// FillHatchPrimitive2D class - namespace drawinglayer::primitive2d { /** FillHatchPrimitive2D class @@ -43,7 +40,7 @@ namespace drawinglayer::primitive2d The decomposition will deliver the hatch lines. */ - class FillHatchPrimitive2D final : public DiscreteMetricDependentPrimitive2D + class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D final : public DiscreteMetricDependentPrimitive2D { private: /// the geometrically visible area commit ed2de32a013ff4e014773e592e8a18705766f872 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Wed Apr 1 13:00:25 2020 +0200 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:21 2020 +0200 Add OutputDevice::drawPrimitive2D to OutputDevice Change-Id: Ifc22eca62df72bddd247ba097054f34756520614 diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index f5eeed9c715d..87824e8c8e78 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -49,6 +49,8 @@ #include <com/sun/star/drawing/LineCap.hpp> #include <com/sun/star/uno/Reference.h> +#include <drawinglayer/primitive2d/Primitive2DContainer.hxx> + #include <memory> #include <vector> @@ -1951,6 +1953,9 @@ public: ///@} + bool drawPrimitive2D(drawinglayer::primitive2d::Primitive2DContainer & rPrimitive2D); + + /** @name Native Widget Rendering functions These all just call through to the private mpGraphics functions of the same name. diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 214c66b14197..5bec7efcc253 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -80,6 +80,7 @@ $(eval $(call gb_Library_use_libraries,vcl,\ basegfx \ comphelper \ cppuhelper \ + drawinglayercore \ i18nlangtag \ i18nutil \ $(if $(filter OPENCL,$(BUILD_TYPE)),opencl) \ diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx index 020a57a6a40c..e0ce70a90911 100644 --- a/vcl/source/outdev/outdev.cxx +++ b/vcl/source/outdev/outdev.cxx @@ -704,4 +704,9 @@ bool OutputDevice::DrawEPS( const Point& rPoint, const Size& rSize, return bDrawn; } +bool OutputDevice::drawPrimitive2D(drawinglayer::primitive2d::Primitive2DContainer & rPrimitive2D) +{ + return false; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 200c35d0cdbd89941f6043635c47d1a9c43a72d4 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Sat Mar 7 14:33:43 2020 +0100 Commit: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> CommitDate: Thu Aug 13 14:41:21 2020 +0200 Separate core drawinglayer func. into drawinglayercore library This separates the drawinglayer core functionallity into a separate library, to keep a strict separation what is backend dependent and what is not. More strict separation can be done at a later date. This will make it possible to push part of drawinglayer (part of processor2d) directly into VCL. Change-Id: Ibc26580067e50bf20d7cdd37fa0e44eb10200878 diff --git a/Repository.mk b/Repository.mk index dbb628f2a6b3..03b4ec49aa3d 100644 --- a/Repository.mk +++ b/Repository.mk @@ -351,6 +351,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \ $(call gb_Helper_optional,SCRIPTING,dlgprov) \ $(if $(filter WNT,$(OS)),directx9canvas) \ $(if $(ENABLE_OPENGL_CANVAS),oglcanvas) \ + drawinglayercore \ drawinglayer \ editeng \ $(if $(filter WNT,$(OS)),emser) \ diff --git a/drawinglayer/CppunitTest_drawinglayer_border.mk b/drawinglayer/CppunitTest_drawinglayer_border.mk index fa2f715590cd..e00006c18dba 100644 --- a/drawinglayer/CppunitTest_drawinglayer_border.mk +++ b/drawinglayer/CppunitTest_drawinglayer_border.mk @@ -21,6 +21,7 @@ $(eval $(call gb_CppunitTest_use_libraries,drawinglayer_border, \ sal \ salhelper \ drawinglayer \ + drawinglayercore \ vcl \ test \ tl \ diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk index 43a42b83b42c..4896c0ad0759 100644 --- a/drawinglayer/Library_drawinglayer.mk +++ b/drawinglayer/Library_drawinglayer.mk @@ -30,6 +30,7 @@ $(eval $(call gb_Library_use_externals,drawinglayer,\ )) $(eval $(call gb_Library_use_libraries,drawinglayer,\ + drawinglayercore \ basegfx \ canvastools \ comphelper \ @@ -67,11 +68,9 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/attribute/sdrsceneattribute3d \ drawinglayer/source/attribute/sdrshadowattribute \ drawinglayer/source/attribute/strokeattribute \ - drawinglayer/source/geometry/viewinformation2d \ drawinglayer/source/geometry/viewinformation3d \ drawinglayer/source/primitive2d/animatedprimitive2d \ drawinglayer/source/primitive2d/backgroundcolorprimitive2d \ - drawinglayer/source/primitive2d/baseprimitive2d \ drawinglayer/source/primitive2d/bitmapprimitive2d \ drawinglayer/source/primitive2d/borderlineprimitive2d \ drawinglayer/source/primitive2d/controlprimitive2d \ @@ -111,7 +110,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/primitive2d/PolyPolygonGraphicPrimitive2D \ drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \ drawinglayer/source/primitive2d/primitivetools2d \ - drawinglayer/source/primitive2d/Primitive2DContainer \ drawinglayer/source/primitive2d/sceneprimitive2d \ drawinglayer/source/primitive2d/sdrdecompositiontools2d \ drawinglayer/source/primitive2d/shadowprimitive2d \ @@ -127,7 +125,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\ drawinglayer/source/primitive2d/textlineprimitive2d \ drawinglayer/source/primitive2d/textprimitive2d \ drawinglayer/source/primitive2d/textstrikeoutprimitive2d \ - drawinglayer/source/primitive2d/Tools \ drawinglayer/source/primitive2d/transformprimitive2d \ drawinglayer/source/primitive2d/transparenceprimitive2d \ drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \ diff --git a/drawinglayer/Library_drawinglayercore.mk b/drawinglayer/Library_drawinglayercore.mk new file mode 100644 index 000000000000..f1643d27014d --- /dev/null +++ b/drawinglayer/Library_drawinglayercore.mk @@ -0,0 +1,49 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Library_Library,drawinglayercore)) + +$(eval $(call gb_Library_set_include,drawinglayercore,\ + $$(INCLUDE) \ + -I$(SRCDIR)/drawinglayer/inc \ +)) + +$(eval $(call gb_Library_add_defs,drawinglayercore,\ + -DDRAWINGLAYERCORE_DLLIMPLEMENTATION \ +)) + +$(eval $(call gb_Library_set_precompiled_header,drawinglayercore,drawinglayer/inc/pch/precompiled_drawinglayercore)) + +$(eval $(call gb_Library_use_sdk_api,drawinglayercore)) + +$(eval $(call gb_Library_use_externals,drawinglayercore,\ + boost_headers \ + libxml2 \ +)) + +$(eval $(call gb_Library_use_libraries,drawinglayercore,\ + basegfx \ + comphelper \ + cppu \ + cppuhelper \ + i18nlangtag \ + sal \ + salhelper \ + svl \ + tl \ +)) + +$(eval $(call gb_Library_add_exception_objects,drawinglayercore,\ + drawinglayer/source/primitive2d/baseprimitive2d \ + drawinglayer/source/primitive2d/Primitive2DContainer \ + drawinglayer/source/primitive2d/Tools \ + drawinglayer/source/geometry/viewinformation2d \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/drawinglayer/Module_drawinglayer.mk b/drawinglayer/Module_drawinglayer.mk index 6d329e95c60a..687cd9c2671f 100644 --- a/drawinglayer/Module_drawinglayer.mk +++ b/drawinglayer/Module_drawinglayer.mk @@ -10,6 +10,7 @@ $(eval $(call gb_Module_Module,drawinglayer)) $(eval $(call gb_Module_add_targets,drawinglayer,\ + Library_drawinglayercore \ Library_drawinglayer \ )) diff --git a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx index 75a26ff80bf7..4620e0c928ce 100644 --- a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx +++ b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx @@ -90,7 +90,6 @@ #include <basegfx/range/basicrange.hxx> #include <basegfx/tuple/b2dtuple.hxx> #include <basegfx/tuple/b3dtuple.hxx> -#include <basegfx/utils/canvastools.hxx> #include <basegfx/vector/b2dvector.hxx> #include <basegfx/vector/b2enums.hxx> #include <basegfx/vector/b2ivector.hxx> @@ -102,7 +101,7 @@ #include <com/sun/star/drawing/TextureMode.hpp> #include <com/sun/star/drawing/TextureProjectionMode.hpp> #include <com/sun/star/graphic/XPrimitive3D.hpp> -#include <com/sun/star/util/XAccounting.hpp> +#include <com/sun/star/uno/Reference.hxx> #include <comphelper/comphelperdllapi.h> #include <comphelper/processfactory.hxx> #include <comphelper/sequence.hxx> @@ -136,7 +135,6 @@ #include <drawinglayer/drawinglayerdllapi.h> #include <drawinglayer/geometry/viewinformation2d.hxx> #include <drawinglayer/geometry/viewinformation3d.hxx> -#include <drawinglayer/primitive2d/CommonTypes.hxx> #include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx> #include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx> #include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx> @@ -144,9 +142,6 @@ #include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx> #include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx> #include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx> -#include <drawinglayer/primitive2d/Primitive2DContainer.hxx> -#include <drawinglayer/primitive2d/Primitive2DVisitor.hxx> -#include <drawinglayer/primitive2d/Tools.hxx> #include <drawinglayer/primitive2d/baseprimitive2d.hxx> #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx> #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx> diff --git a/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx b/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx new file mode 100644 index 000000000000..4a8c23ea8e65 --- /dev/null +++ b/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx @@ -0,0 +1,12 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "precompiled_drawinglayercore.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx b/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx new file mode 100644 index 000000000000..4cc5ca4612c9 --- /dev/null +++ b/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx @@ -0,0 +1,46 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/* + This file has been autogenerated by update_pch.sh. It is possible to edit it + manually (such as when an include file has been moved/renamed/removed). All such + manual changes will be rewritten by the next run of update_pch.sh (which presumably + also fixes all possible problems, so it's usually better to use it). + + Generated on 2020-03-07 12:37:18 using: + ./bin/update_pch drawinglayer drawinglayercore --cutoff=4 --exclude:system --exclude:module --exclude:local + + If after updating build fails, use the following command to locate conflicting headers: + ./bin/update_pch_bisect ./drawinglayer/inc/pch/precompiled_drawinglayercore.hxx "make drawinglayer.build" --find-conflicts +*/ + +#if PCH_LEVEL >= 1 +#include <ostream> +#include <vector> +#endif // PCH_LEVEL >= 1 +#if PCH_LEVEL >= 2 +#include <osl/diagnose.h> +#include <osl/interlck.h> +#include <sal/config.h> +#include <sal/types.h> +#endif // PCH_LEVEL >= 2 +#if PCH_LEVEL >= 3 +#include <basegfx/basegfxdllapi.h> +#include <basegfx/point/b2dpoint.hxx> +#include <basegfx/range/b2drange.hxx> +#include <basegfx/range/basicrange.hxx> +#include <basegfx/tuple/b2dtuple.hxx> +#include <basegfx/utils/canvastools.hxx> +#include <basegfx/vector/b2dvector.hxx> +#endif // PCH_LEVEL >= 3 +#if PCH_LEVEL >= 4 +#include <drawinglayer/geometry/viewinformation2d.hxx> +#endif // PCH_LEVEL >= 4 + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/CppunitTest_emfio_emf_test.mk b/emfio/CppunitTest_emfio_emf_test.mk index 123e4b3549bd..2679c0a604d9 100644 --- a/emfio/CppunitTest_emfio_emf_test.mk +++ b/emfio/CppunitTest_emfio_emf_test.mk @@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_use_sdk_api,emfio_emf)) $(eval $(call gb_CppunitTest_use_libraries,emfio_emf,\ basegfx \ drawinglayer \ + drawinglayercore \ cppu \ cppuhelper \ comphelper \ diff --git a/emfio/Library_emfio.mk b/emfio/Library_emfio.mk index 281f077130f1..f923f2078e35 100644 --- a/emfio/Library_emfio.mk +++ b/emfio/Library_emfio.mk @@ -41,6 +41,7 @@ $(eval $(call gb_Library_use_sdk_api,emfio)) $(eval $(call gb_Library_use_libraries,emfio,\ basegfx \ + drawinglayercore \ drawinglayer \ cppu \ cppuhelper \ diff --git a/filter/Library_svgfilter.mk b/filter/Library_svgfilter.mk index 21318aa1fd03..1f0caf11758c 100644 --- a/filter/Library_svgfilter.mk +++ b/filter/Library_svgfilter.mk @@ -56,6 +56,7 @@ $(eval $(call gb_Library_use_libraries,svgfilter,\ sax \ salhelper \ comphelper \ + drawinglayercore \ drawinglayer \ basegfx \ cppuhelper \ diff --git a/include/drawinglayer/drawinglayerdllapi.h b/include/drawinglayer/drawinglayerdllapi.h index 0b3983504919..36a0d8abfea2 100644 --- a/include/drawinglayer/drawinglayerdllapi.h +++ b/include/drawinglayer/drawinglayerdllapi.h @@ -19,6 +19,12 @@ #endif #define DRAWINGLAYER_DLLPRIVATE SAL_DLLPRIVATE +#if defined(DRAWINGLAYERCORE_DLLIMPLEMENTATION) +#define DRAWINGLAYERCORE_DLLPUBLIC SAL_DLLPUBLIC_EXPORT +#else +#define DRAWINGLAYERCORE_DLLPUBLIC SAL_DLLPUBLIC_IMPORT +#endif + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/drawinglayer/geometry/viewinformation2d.hxx b/include/drawinglayer/geometry/viewinformation2d.hxx index 95be29a72bda..06b17248d213 100644 --- a/include/drawinglayer/geometry/viewinformation2d.hxx +++ b/include/drawinglayer/geometry/viewinformation2d.hxx @@ -63,7 +63,7 @@ namespace drawinglayer::geometry It is an implementation to support the sequence of PropertyValues used in a css::graphic::XPrimitive2D for C++ implementations working with those */ -class DRAWINGLAYER_DLLPUBLIC ViewInformation2D +class DRAWINGLAYERCORE_DLLPUBLIC ViewInformation2D { public: typedef o3tl::cow_wrapper<ImpViewInformation2D, o3tl::ThreadSafeRefCountingPolicy> ImplType; diff --git a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx index cca3a0a91485..c096e9a8cc2f 100644 --- a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx +++ b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx @@ -34,7 +34,7 @@ class ViewInformation2D; namespace drawinglayer::primitive2d { -class SAL_WARN_UNUSED DRAWINGLAYER_DLLPUBLIC Primitive2DContainer +class SAL_WARN_UNUSED DRAWINGLAYERCORE_DLLPUBLIC Primitive2DContainer : public std::deque<Primitive2DReference>, public Primitive2DDecompositionVisitor { diff --git a/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx b/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx index dfe04b32a320..e174d1e0878d 100644 --- a/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx +++ b/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx @@ -27,7 +27,7 @@ namespace drawinglayer::primitive2d class Primitive2DContainer; // Visitor class for walking a tree of Primitive2DReference -class DRAWINGLAYER_DLLPUBLIC Primitive2DDecompositionVisitor +class DRAWINGLAYERCORE_DLLPUBLIC Primitive2DDecompositionVisitor { public: virtual void append(const Primitive2DReference&) = 0; diff --git a/include/drawinglayer/primitive2d/Tools.hxx b/include/drawinglayer/primitive2d/Tools.hxx index fbb6f5717c01..1c30565c8c1b 100644 --- a/include/drawinglayer/primitive2d/Tools.hxx +++ b/include/drawinglayer/primitive2d/Tools.hxx @@ -31,16 +31,16 @@ class ViewInformation2D; namespace drawinglayer::primitive2d { /// get B2DRange from a given Primitive2DReference -basegfx::B2DRange DRAWINGLAYER_DLLPUBLIC getB2DRangeFromPrimitive2DReference( +basegfx::B2DRange DRAWINGLAYERCORE_DLLPUBLIC getB2DRangeFromPrimitive2DReference( const Primitive2DReference& rCandidate, const geometry::ViewInformation2D& aViewInformation); /** compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D) and using compare operator */ -bool DRAWINGLAYER_DLLPUBLIC arePrimitive2DReferencesEqual(const Primitive2DReference& rA, - const Primitive2DReference& rB); +bool DRAWINGLAYERCORE_DLLPUBLIC arePrimitive2DReferencesEqual(const Primitive2DReference& rA, + const Primitive2DReference& rB); -OUString DRAWINGLAYER_DLLPUBLIC idToString(sal_uInt32 nId); +OUString DRAWINGLAYERCORE_DLLPUBLIC idToString(sal_uInt32 nId); } // end of namespace drawinglayer::primitive2d diff --git a/include/drawinglayer/primitive2d/baseprimitive2d.hxx b/include/drawinglayer/primitive2d/baseprimitive2d.hxx index 45d0e3519c40..5478309846cd 100644 --- a/include/drawinglayer/primitive2d/baseprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/baseprimitive2d.hxx @@ -119,8 +119,8 @@ typedef cppu::WeakComponentImplHelper<css::graphic::XPrimitive2D, css::util::XAc for view-independent primitives which are defined by not using ViewInformation2D in their get2DDecomposition/getB2DRange implementations. */ -class DRAWINGLAYER_DLLPUBLIC BasePrimitive2D : protected cppu::BaseMutex, - public BasePrimitive2DImplBase +class DRAWINGLAYERCORE_DLLPUBLIC BasePrimitive2D : protected cppu::BaseMutex, + public BasePrimitive2DImplBase { BasePrimitive2D(const BasePrimitive2D&) = delete; BasePrimitive2D& operator=(const BasePrimitive2D&) = delete; @@ -198,7 +198,7 @@ public: to identify if a new decomposition is needed at the next call (f) return maBuffered2DDecomposition */ -class DRAWINGLAYER_DLLPUBLIC BufferedDecompositionPrimitive2D : public BasePrimitive2D +class DRAWINGLAYERCORE_DLLPUBLIC BufferedDecompositionPrimitive2D : public BasePrimitive2D { private: /// a sequence used for buffering the last create2DDecomposition() result diff --git a/sc/CppunitTest_sc_parallelism.mk b/sc/CppunitTest_sc_parallelism.mk index eb7aaa446954..ff2cd6e25953 100644 --- a/sc/CppunitTest_sc_parallelism.mk +++ b/sc/CppunitTest_sc_parallelism.mk @@ -40,6 +40,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_parallelism, \ cppuhelper \ dbtools \ drawinglayer \ + drawinglayercore \ editeng \ for \ forui \ diff --git a/sc/CppunitTest_sc_ucalc.mk b/sc/CppunitTest_sc_ucalc.mk index 8943de7ab4c3..60fb6676dab9 100644 --- a/sc/CppunitTest_sc_ucalc.mk +++ b/sc/CppunitTest_sc_ucalc.mk @@ -49,6 +49,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_ucalc, \ cppuhelper \ dbtools \ drawinglayer \ + drawinglayercore \ editeng \ for \ forui \ diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk index 1b3cead83beb..04589a676eaa 100644 --- a/sc/Library_sc.mk +++ b/sc/Library_sc.mk @@ -70,6 +70,7 @@ $(eval $(call gb_Library_use_libraries,sc,\ cppu \ cppuhelper \ dbtools \ + drawinglayercore \ drawinglayer \ editeng \ for \ diff --git a/sd/CppunitTest_sd_uimpress.mk b/sd/CppunitTest_sd_uimpress.mk index 93426dfc3a55..63f143978231 100644 --- a/sd/CppunitTest_sd_uimpress.mk +++ b/sd/CppunitTest_sd_uimpress.mk @@ -27,6 +27,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sd_uimpress,\ cppu \ cppuhelper \ drawinglayer \ + drawinglayercore \ editeng \ i18nlangtag \ i18nutil \ diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk index 9d399e8e3f5a..ed9decbc75cc 100644 --- a/sd/Library_sd.mk +++ b/sd/Library_sd.mk @@ -74,6 +74,7 @@ $(eval $(call gb_Library_use_libraries,sd,\ cppcanvas \ cppu \ cppuhelper \ + drawinglayercore \ drawinglayer \ editeng \ i18nlangtag \ diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk index cb0b099eb37d..95d1eb704273 100644 --- a/sfx2/Library_sfx.mk +++ b/sfx2/Library_sfx.mk @@ -49,6 +49,7 @@ $(eval $(call gb_Library_use_libraries,sfx,\ comphelper \ cppu \ cppuhelper \ + drawinglayercore \ drawinglayer \ fwk \ i18nlangtag \ diff --git a/svgio/CppunitTest_svgio.mk b/svgio/CppunitTest_svgio.mk index c6f4db91fc60..24fb7a39af32 100644 --- a/svgio/CppunitTest_svgio.mk +++ b/svgio/CppunitTest_svgio.mk @@ -30,6 +30,7 @@ $(eval $(call gb_CppunitTest_use_library_objects,svgio,\ $(eval $(call gb_CppunitTest_use_libraries,svgio,\ basegfx \ drawinglayer \ + drawinglayercore \ cppu \ cppuhelper \ comphelper \ diff --git a/svgio/Library_svgio.mk b/svgio/Library_svgio.mk index 83a8546bdc1a..d75508e0537e 100644 --- a/svgio/Library_svgio.mk +++ b/svgio/Library_svgio.mk @@ -33,6 +33,7 @@ $(eval $(call gb_Library_use_sdk_api,svgio)) $(eval $(call gb_Library_use_libraries,svgio,\ basegfx \ + drawinglayercore \ drawinglayer \ comphelper \ cppu \ diff --git a/svx/CppunitTest_svx_unit.mk b/svx/CppunitTest_svx_unit.mk index ac9f3e4531ad..4a51867ec189 100644 --- a/svx/CppunitTest_svx_unit.mk +++ b/svx/CppunitTest_svx_unit.mk @@ -36,6 +36,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,svx_unit, \ $(eval $(call gb_CppunitTest_use_libraries,svx_unit, \ basegfx \ drawinglayer \ + drawinglayercore \ sal \ sfx \ svxcore \ diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk index bb2dbb43e946..9bb2f4820f04 100644 --- a/svx/Library_svx.mk +++ b/svx/Library_svx.mk @@ -50,6 +50,7 @@ $(eval $(call gb_Library_use_libraries,svx,\ crashreport) \ $(call gb_Helper_optional,DBCONNECTIVITY, \ dbtools) \ + drawinglayercore \ drawinglayer \ editeng \ fwk \ diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk index 4898c073764d..5d480bedd59c 100644 --- a/svx/Library_svxcore.mk +++ b/svx/Library_svxcore.mk @@ -57,6 +57,7 @@ $(eval $(call gb_Library_use_libraries,svxcore,\ cppu \ $(call gb_Helper_optional,DBCONNECTIVITY, \ dbtools) \ + drawinglayercore \ drawinglayer \ editeng \ fwk \ diff --git a/sw/CppunitTest_sw_uwriter.mk b/sw/CppunitTest_sw_uwriter.mk index 6b9ffa4ba683..a881587735e4 100644 --- a/sw/CppunitTest_sw_uwriter.mk +++ b/sw/CppunitTest_sw_uwriter.mk @@ -33,6 +33,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_uwriter, \ $(call gb_Helper_optional,DBCONNECTIVITY, \ dbtools) \ drawinglayer \ + drawinglayercore \ editeng \ i18nlangtag \ i18nutil \ diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk index 2de7d6b0e4dc..9a9e50bd0d87 100644 --- a/sw/Library_sw.mk +++ b/sw/Library_sw.mk @@ -58,6 +58,7 @@ $(eval $(call gb_Library_use_libraries,sw,\ cppuhelper \ $(call gb_Helper_optional,DBCONNECTIVITY, \ dbtools) \ + drawinglayercore \ drawinglayer \ editeng \ i18nlangtag \ diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk index 99f1dd20ae3d..4c09d1cc4bda 100644 --- a/sw/Library_swui.mk +++ b/sw/Library_swui.mk @@ -75,6 +75,7 @@ $(eval $(call gb_Library_use_libraries,swui,\ ucbhelper \ utl \ vcl \ + drawinglayercore \ drawinglayer \ )) commit ce6c6a5ad6c9dde09bb0bb0c51e16d828cfe0ef7 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> AuthorDate: Mon Jul 20 20:13:26 2020 +0200 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Thu Aug 13 14:40:12 2020 +0200 remove polygonprimitive2d.cxx from clang-format blacklist Change-Id: I3122a4058f5447cbf0369b60b368c76e5fe40089 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100647 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx index 6d2784dee46d..e74be52cf98d 100644 --- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx @@ -31,569 +31,574 @@ using namespace com::sun::star; using namespace std; - namespace drawinglayer::primitive2d { - PolygonHairlinePrimitive2D::PolygonHairlinePrimitive2D( - const basegfx::B2DPolygon& rPolygon, - const basegfx::BColor& rBColor) - : BasePrimitive2D(), - maPolygon(rPolygon), - maBColor(rBColor) - { - } +PolygonHairlinePrimitive2D::PolygonHairlinePrimitive2D(const basegfx::B2DPolygon& rPolygon, + const basegfx::BColor& rBColor) + : BasePrimitive2D() + , maPolygon(rPolygon) + , maBColor(rBColor) +{ +} - bool PolygonHairlinePrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const - { - if(BasePrimitive2D::operator==(rPrimitive)) - { - const PolygonHairlinePrimitive2D& rCompare = static_cast<const PolygonHairlinePrimitive2D&>(rPrimitive); +bool PolygonHairlinePrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const +{ + if (BasePrimitive2D::operator==(rPrimitive)) + { + const PolygonHairlinePrimitive2D& rCompare + = static_cast<const PolygonHairlinePrimitive2D&>(rPrimitive); - return (getB2DPolygon() == rCompare.getB2DPolygon() - && getBColor() == rCompare.getBColor()); - } + return (getB2DPolygon() == rCompare.getB2DPolygon() && getBColor() == rCompare.getBColor()); + } - return false; - } + return false; +} - basegfx::B2DRange PolygonHairlinePrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const - { - // this is a hairline, thus the line width is view-dependent. Get range of polygon - // as base size - basegfx::B2DRange aRetval(getB2DPolygon().getB2DRange()); +basegfx::B2DRange +PolygonHairlinePrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const +{ + // this is a hairline, thus the line width is view-dependent. Get range of polygon + // as base size + basegfx::B2DRange aRetval(getB2DPolygon().getB2DRange()); - if(!aRetval.isEmpty()) - { - // Calculate view-dependent hairline width - const basegfx::B2DVector aDiscreteSize(rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)); - const double fDiscreteHalfLineWidth(aDiscreteSize.getLength() * 0.5); - - if(basegfx::fTools::more(fDiscreteHalfLineWidth, 0.0)) - { - aRetval.grow(fDiscreteHalfLineWidth); - } - } + if (!aRetval.isEmpty()) + { + // Calculate view-dependent hairline width + const basegfx::B2DVector aDiscreteSize( + rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)); + const double fDiscreteHalfLineWidth(aDiscreteSize.getLength() * 0.5); - // return range - return aRetval; + if (basegfx::fTools::more(fDiscreteHalfLineWidth, 0.0)) + { + aRetval.grow(fDiscreteHalfLineWidth); } + } - // provide unique ID - ImplPrimitive2DIDBlock(PolygonHairlinePrimitive2D, PRIMITIVE2D_ID_POLYGONHAIRLINEPRIMITIVE2D) + // return range + return aRetval; +} +// provide unique ID +ImplPrimitive2DIDBlock(PolygonHairlinePrimitive2D, PRIMITIVE2D_ID_POLYGONHAIRLINEPRIMITIVE2D) - void PolygonMarkerPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const - { - // calculate logic DashLength - const basegfx::B2DVector aDashVector(rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(getDiscreteDashLength(), 0.0)); - const double fLogicDashLength(aDashVector.getX()); - - if(fLogicDashLength > 0.0 && !getRGBColorA().equal(getRGBColorB())) - { - // apply dashing; get line and gap snippets - std::vector< double > aDash; - basegfx::B2DPolyPolygon aDashedPolyPolyA; - basegfx::B2DPolyPolygon aDashedPolyPolyB; + void PolygonMarkerPrimitive2D::create2DDecomposition( + Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const +{ + // calculate logic DashLength + const basegfx::B2DVector aDashVector(rViewInformation.getInverseObjectToViewTransformation() + * basegfx::B2DVector(getDiscreteDashLength(), 0.0)); + const double fLogicDashLength(aDashVector.getX()); - aDash.push_back(fLogicDashLength); - aDash.push_back(fLogicDashLength); - basegfx::utils::applyLineDashing(getB2DPolygon(), aDash, &aDashedPolyPolyA, &aDashedPolyPolyB, 2.0 * fLogicDashLength); + if (fLogicDashLength > 0.0 && !getRGBColorA().equal(getRGBColorB())) + { + // apply dashing; get line and gap snippets + std::vector<double> aDash; + basegfx::B2DPolyPolygon aDashedPolyPolyA; + basegfx::B2DPolyPolygon aDashedPolyPolyB; + + aDash.push_back(fLogicDashLength); + aDash.push_back(fLogicDashLength); ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits