From 19a86e036119fc274dd11495b54bf1fd5cf66776 Mon Sep 17 00:00:00 2001 From: Tomaž Vajngerl Date: Tue, 23 Feb 2021 13:23:32 +0900 Subject: drawinglayer: make VisitingParameters constructor explicit This discovers a bunch of cases where previously the ViewInformation was implicitly converted into a VisitingParameter. Change-Id: Ice233e9d3c9d12c5da284e190281a1d94059f49f --- drawinglayer/qa/unit/border.cxx | 10 ++++---- .../drawinglayeruno/xprimitive2drenderer.cxx | 3 ++- .../source/primitive2d/patternfillprimitive2d.cxx | 6 +++-- .../primitive2d/unifiedtransparenceprimitive2d.cxx | 2 +- .../source/processor2d/baseprocessor2d.cxx | 8 +++---- .../source/processor2d/contourextractor2d.cxx | 13 +++++----- .../source/processor2d/hittestprocessor2d.cxx | 17 ++++++------- .../source/processor2d/linegeometryextractor2d.cxx | 12 ++++++---- .../source/processor2d/objectinfoextractor2d.cxx | 4 ++-- .../source/processor2d/processor2dtools.cxx | 12 ++++------ .../processor2d/processorfromoutputdevice.cxx | 6 ++--- .../processor2d/textaspolygonextractor2d.cxx | 12 ++++++---- .../source/processor2d/vclmetafileprocessor2d.cxx | 28 ++++++++++++---------- .../source/processor2d/vclmetafileprocessor2d.hxx | 2 +- .../source/processor2d/vclpixelprocessor2d.cxx | 13 +++++----- .../source/processor2d/vclpixelprocessor2d.hxx | 3 ++- drawinglayer/source/processor2d/vclprocessor2d.cxx | 22 +++++++++-------- drawinglayer/source/processor2d/vclprocessor2d.hxx | 3 ++- drawinglayer/source/tools/converters.cxx | 6 ++--- drawinglayer/source/tools/primitive2dxmldump.cxx | 27 ++++++++++----------- include/drawinglayer/converters.hxx | 2 +- .../drawinglayer/primitive2d/baseprimitive2d.hxx | 21 +++++++++------- .../drawinglayer/processor2d/baseprocessor2d.hxx | 17 ++++++------- .../processor2d/contourextractor2d.hxx | 2 +- .../processor2d/hittestprocessor2d.hxx | 2 +- .../processor2d/linegeometryextractor2d.hxx | 2 +- .../processor2d/objectinfoextractor2d.hxx | 2 +- .../drawinglayer/processor2d/processor2dtools.hxx | 6 ++--- .../processor2d/processorfromoutputdevice.hxx | 2 +- .../processor2d/textaspolygonextractor2d.hxx | 2 +- sc/source/ui/miscdlgs/autofmt.cxx | 7 +++--- sc/source/ui/view/hintwin.cxx | 7 +++--- sc/source/ui/view/output.cxx | 4 ++-- sfx2/source/control/thumbnailview.cxx | 5 ++-- sfx2/source/dialog/infobar.cxx | 5 ++-- svgio/source/svgreader/svgclippathnode.cxx | 9 ++++--- svgio/source/svgreader/svgimagenode.cxx | 4 +++- svgio/source/svgreader/svgmasknode.cxx | 6 ++--- svgio/source/svgreader/svgstyleattributes.cxx | 6 +++-- svgio/source/svgreader/svgsvgnode.cxx | 25 +++++++++---------- svx/source/dialog/frmsel.cxx | 7 +++--- svx/source/dialog/pagectrl.cxx | 4 +++- .../sdr/contact/objectcontactofobjlistpainter.cxx | 3 ++- svx/source/sdr/contact/objectcontactofpageview.cxx | 3 ++- svx/source/sdr/contact/viewcontactofgraphic.cxx | 3 ++- svx/source/sdr/contact/viewcontactofsdrole2obj.cxx | 4 +++- svx/source/sdr/contact/viewobjectcontact.cxx | 20 +++++++++------- .../viewobjectcontactofmasterpagedescriptor.cxx | 3 ++- .../sdr/contact/viewobjectcontactofsdrpage.cxx | 7 ++++-- svx/source/sdr/overlay/overlaymanager.cxx | 4 ++-- svx/source/sdr/overlay/overlayobject.cxx | 4 ++-- svx/source/sdr/overlay/overlayobjectlist.cxx | 3 ++- .../sdr/primitive2d/sdrdecompositiontools.cxx | 5 ++-- svx/source/svdraw/sdrhittesthelper.cxx | 4 +++- svx/source/svdraw/svdedxv.cxx | 3 ++- svx/source/svdraw/svdobj.cxx | 10 +++++--- svx/source/svdraw/svdograf.cxx | 5 ++-- svx/source/svdraw/svdotxtr.cxx | 3 ++- svx/source/svdraw/svdxcgv.cxx | 3 ++- svx/source/unodraw/unoshape.cxx | 3 ++- svx/source/xoutdev/xtabdash.cxx | 6 ++--- svx/source/xoutdev/xtabgrdt.cxx | 8 +++---- svx/source/xoutdev/xtabhtch.cxx | 8 +++---- svx/source/xoutdev/xtablend.cxx | 8 +++---- sw/source/core/doc/notxtfrm.cxx | 3 ++- sw/source/core/graphic/ndgrf.cxx | 5 ++-- sw/source/core/layout/paintfrm.cxx | 8 ++++--- sw/source/ui/table/autoformatpreview.cxx | 6 ++--- sw/source/uibase/docvw/AnnotationWin2.cxx | 10 ++++---- sw/source/uibase/docvw/DashedLine.cxx | 4 ++-- sw/source/uibase/docvw/HeaderFooterWin.cxx | 4 ++-- sw/source/uibase/docvw/PageBreakWin.cxx | 4 ++-- sw/source/uibase/docvw/UnfloatTableButton.cxx | 6 ++--- 73 files changed, 291 insertions(+), 235 deletions(-) diff --git a/drawinglayer/qa/unit/border.cxx b/drawinglayer/qa/unit/border.cxx index a3f7029b7350..801912f75825 100644 --- a/drawinglayer/qa/unit/border.cxx +++ b/drawinglayer/qa/unit/border.cxx @@ -66,9 +66,10 @@ CPPUNIT_TEST_FIXTURE(DrawinglayerBorderTest, testDoubleDecompositionSolid) aStrokeAttribute)); // Decompose it into polygons. - drawinglayer::geometry::ViewInformation2D aView; + const drawinglayer::geometry::ViewInformation2D aView; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aView); drawinglayer::primitive2d::Primitive2DContainer aContainer; - aBorder->get2DDecomposition(aContainer, aView); + aBorder->get2DDecomposition(aContainer, aVisitingParameters); // Make sure it results in two borders as it's a double one. CPPUNIT_ASSERT_EQUAL(static_cast(2), aContainer.size()); @@ -91,8 +92,9 @@ CPPUNIT_TEST_FIXTURE(DrawinglayerBorderTest, testDoublePixelProcessing) // Create a pixel processor. ScopedVclPtrInstance pDev; drawinglayer::geometry::ViewInformation2D aView; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*pDev, aView)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aView); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + *pDev, aVisitingParameters); CPPUNIT_ASSERT(pProcessor); GDIMetaFile aMetaFile; // Start recording after the processor is created, so we can test the pixel processor. diff --git a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx index 63b4ffd6986d..f0e677c0cedb 100644 --- a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx +++ b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx @@ -118,6 +118,7 @@ namespace drawinglayer::unorenderer } const geometry::ViewInformation2D aViewInformation2D(aViewInformationSequence); + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); const sal_uInt32 nDiscreteWidth(basegfx::fround(o3tl::convert(fWidth, eRangeUnit, o3tl::Length::in) * DPI_X)); const sal_uInt32 nDiscreteHeight(basegfx::fround(o3tl::convert(fHeight, eRangeUnit, o3tl::Length::in) * DPI_Y)); @@ -139,7 +140,7 @@ namespace drawinglayer::unorenderer BitmapEx aBitmapEx( convertToBitmapEx( xEmbedSeq, - aViewInformation2D, + aVisitingParameters, nDiscreteWidth, nDiscreteHeight, MaximumQuadraticPixels)); diff --git a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx index 42559bfd4390..0cfa014bb13e 100644 --- a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx @@ -100,17 +100,19 @@ namespace drawinglayer::primitive2d // see if buffering is wanted. If so, create buffered content in given resolution if(0 != mnDiscreteWidth && 0 != mnDiscreteHeight) { - const geometry::ViewInformation2D aViewInformation2D; const primitive2d::Primitive2DReference xEmbedRef( new primitive2d::TransformPrimitive2D( basegfx::utils::createScaleB2DHomMatrix(mnDiscreteWidth, mnDiscreteHeight), getChildren())); const primitive2d::Primitive2DContainer xEmbedSeq { xEmbedRef }; + const geometry::ViewInformation2D aViewInformation2D; + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const BitmapEx aBitmapEx( convertToBitmapEx( xEmbedSeq, - aViewInformation2D, + aVisitingParameters, mnDiscreteWidth, mnDiscreteHeight, mnDiscreteWidth * mnDiscreteHeight)); diff --git a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx index cbe3ecf81bfe..514a2f5da880 100644 --- a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx @@ -84,7 +84,7 @@ namespace drawinglayer::primitive2d // I will take the last one here. The small overhead of two primitives will only be // used when UnifiedTransparencePrimitive2D is not handled directly. - const basegfx::B2DRange aPolygonRange(getChildren().getB2DRange(rParameters.getViewInformation())); + const basegfx::B2DRange aPolygonRange(getChildren().getB2DRange(rParameters)); const basegfx::B2DPolygon aPolygon(basegfx::utils::createPolygonFromRect(aPolygonRange)); const basegfx::BColor aGray(getTransparence(), getTransparence(), getTransparence()); Primitive2DContainer aTransparenceContent(2); diff --git a/drawinglayer/source/processor2d/baseprocessor2d.cxx b/drawinglayer/source/processor2d/baseprocessor2d.cxx index 9d1671dcf959..39b72feec77f 100644 --- a/drawinglayer/source/processor2d/baseprocessor2d.cxx +++ b/drawinglayer/source/processor2d/baseprocessor2d.cxx @@ -30,8 +30,8 @@ namespace drawinglayer::processor2d { } - BaseProcessor2D::BaseProcessor2D(const geometry::ViewInformation2D& rViewInformation) - : maViewInformation2D(rViewInformation) + BaseProcessor2D::BaseProcessor2D(primitive2d::VisitingParameters const & rVisitingParameters) + : maVisitingParameters(rVisitingParameters) { } @@ -42,7 +42,7 @@ namespace drawinglayer::processor2d void BaseProcessor2D::process(const primitive2d::BasePrimitive2D& rCandidate) { primitive2d::Primitive2DContainer aContainer; - rCandidate.get2DDecomposition(aContainer, getViewInformation2D()); + rCandidate.get2DDecomposition(aContainer, maVisitingParameters); process(aContainer); } @@ -71,7 +71,7 @@ namespace drawinglayer::processor2d else { // unknown implementation, use UNO API call instead and process recursively - const uno::Sequence< beans::PropertyValue >& rViewParameters(getViewInformation2D().getViewInformationSequence()); + const uno::Sequence& rViewParameters(maVisitingParameters.getUnoProperties()); process(comphelper::sequenceToContainer(xReference->getDecomposition(rViewParameters))); } } diff --git a/drawinglayer/source/processor2d/contourextractor2d.cxx b/drawinglayer/source/processor2d/contourextractor2d.cxx index 8abec2f50f9d..5b9adf4c0ab1 100644 --- a/drawinglayer/source/processor2d/contourextractor2d.cxx +++ b/drawinglayer/source/processor2d/contourextractor2d.cxx @@ -36,9 +36,9 @@ using namespace com::sun::star; namespace drawinglayer::processor2d { ContourExtractor2D::ContourExtractor2D( - const geometry::ViewInformation2D& rViewInformation, + primitive2d::VisitingParameters const& rVisitingParameters, bool bExtractFillOnly) - : BaseProcessor2D(rViewInformation), + : BaseProcessor2D(rVisitingParameters), maExtractedContour(), mbExtractFillOnly(bExtractFillOnly) { @@ -121,7 +121,7 @@ namespace drawinglayer::processor2d { // remember current ViewInformation2D const primitive2d::TransformPrimitive2D& rTransformCandidate(static_cast< const primitive2d::TransformPrimitive2D& >(rCandidate)); - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastVisitingParameters(maVisitingParameters); // create new local ViewInformation2D const geometry::ViewInformation2D aViewInformation2D( @@ -131,13 +131,14 @@ namespace drawinglayer::processor2d getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + updateVisitingParameters(aVisitingParameters); // process content process(rTransformCandidate.getChildren()); // restore transformations - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastVisitingParameters); break; } @@ -173,7 +174,7 @@ namespace drawinglayer::processor2d case PRIMITIVE2D_ID_TEXTDECORATEDPORTIONPRIMITIVE2D : { // primitives who's BoundRect will be added in world coordinates - basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); if (!aRange.isEmpty()) { aRange.transform(getViewInformation2D().getObjectTransformation()); diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx b/drawinglayer/source/processor2d/hittestprocessor2d.cxx index 04505489c6f2..a41037426b09 100644 --- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx +++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx @@ -37,11 +37,11 @@ namespace drawinglayer::processor2d { - HitTestProcessor2D::HitTestProcessor2D(const geometry::ViewInformation2D& rViewInformation, + HitTestProcessor2D::HitTestProcessor2D(primitive2d::VisitingParameters const& rVisitingParameters, const basegfx::B2DPoint& rLogicHitPosition, double fLogicHitTolerance, bool bHitTextOnly) - : BaseProcessor2D(rViewInformation), + : BaseProcessor2D(rVisitingParameters), maDiscreteHitPosition(), mfDiscreteHitTolerance(0.0), maHitStack(), @@ -230,7 +230,7 @@ namespace drawinglayer::processor2d { // remember current ViewInformation2D const primitive2d::TransformPrimitive2D& rTransformCandidate(static_cast< const primitive2d::TransformPrimitive2D& >(rCandidate)); - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastVisitingParameters(maVisitingParameters); // create new local ViewInformation2D containing transformation const geometry::ViewInformation2D aViewInformation2D( @@ -240,13 +240,14 @@ namespace drawinglayer::processor2d getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + updateVisitingParameters(aVisitingParameters); // process child content recursively process(rTransformCandidate.getChildren()); // restore transformations - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastVisitingParameters); break; } @@ -411,7 +412,7 @@ namespace drawinglayer::processor2d case PRIMITIVE2D_ID_TEXTDECORATEDPORTIONPRIMITIVE2D : { // for text use the BoundRect of the primitive itself - const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + const basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); if(!aRange.isEmpty()) { @@ -428,7 +429,7 @@ namespace drawinglayer::processor2d // The recently added BitmapEx::GetTransparency() makes it easy to extend // the BitmapPrimitive2D HitTest to take the contained BitmapEx and it's // transparency into account - const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + const basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); if(!aRange.isEmpty()) { @@ -482,7 +483,7 @@ namespace drawinglayer::processor2d // This may be refined in the future, e.g: // - For Bitmaps, the mask and/or transparence information may be used // - For MetaFiles, the MetaFile content may be used - const basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + const basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); if(!aRange.isEmpty()) { diff --git a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx index 9262e23e4509..cd4593b2a3a9 100644 --- a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx +++ b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx @@ -29,8 +29,8 @@ using namespace com::sun::star; namespace drawinglayer::processor2d { - LineGeometryExtractor2D::LineGeometryExtractor2D(const geometry::ViewInformation2D& rViewInformation) - : BaseProcessor2D(rViewInformation), + LineGeometryExtractor2D::LineGeometryExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters) + : BaseProcessor2D(rVisitingParameters), maExtractedHairlines(), maExtractedLineFills(), mbInLineGeometry(false) @@ -83,7 +83,7 @@ namespace drawinglayer::processor2d { // remember current transformation and ViewInformation const primitive2d::TransformPrimitive2D& rTransformCandidate(static_cast< const primitive2d::TransformPrimitive2D& >(rCandidate)); - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastVisitingParameters(maVisitingParameters); // create new transformations for CurrentTransformation and for local ViewInformation2D const geometry::ViewInformation2D aViewInformation2D( @@ -93,13 +93,15 @@ namespace drawinglayer::processor2d getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + updateVisitingParameters(aVisitingParameters); // process content process(rTransformCandidate.getChildren()); // restore transformations - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastVisitingParameters); break; } diff --git a/drawinglayer/source/processor2d/objectinfoextractor2d.cxx b/drawinglayer/source/processor2d/objectinfoextractor2d.cxx index 552406d53f68..4d3eb0188c14 100644 --- a/drawinglayer/source/processor2d/objectinfoextractor2d.cxx +++ b/drawinglayer/source/processor2d/objectinfoextractor2d.cxx @@ -62,8 +62,8 @@ namespace drawinglayer::processor2d } } - ObjectInfoPrimitiveExtractor2D::ObjectInfoPrimitiveExtractor2D(const geometry::ViewInformation2D& rViewInformation) - : BaseProcessor2D(rViewInformation), + ObjectInfoPrimitiveExtractor2D::ObjectInfoPrimitiveExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters) + : BaseProcessor2D(rVisitingParameters), mpFound(nullptr) { } diff --git a/drawinglayer/source/processor2d/processor2dtools.cxx b/drawinglayer/source/processor2d/processor2dtools.cxx index 7bc0f5fa0536..921ec4af81c3 100644 --- a/drawinglayer/source/processor2d/processor2dtools.cxx +++ b/drawinglayer/source/processor2d/processor2dtools.cxx @@ -29,15 +29,15 @@ namespace drawinglayer::processor2d { std::unique_ptr createPixelProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D) + const drawinglayer::primitive2d::VisitingParameters& rParameters) { // create Pixel Vcl-Processor - return std::make_unique(rViewInformation2D, rTargetOutDev); + return std::make_unique(rParameters, rTargetOutDev); } std::unique_ptr createProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D) + const drawinglayer::primitive2d::VisitingParameters& rParameters) { const GDIMetaFile* pMetaFile = rTargetOutDev.GetConnectMetaFile(); const bool bOutputToRecordingMetaFile(pMetaFile && pMetaFile->IsRecord() && !pMetaFile->IsPause()); @@ -45,14 +45,12 @@ namespace drawinglayer::processor2d if(bOutputToRecordingMetaFile) { // create MetaFile Vcl-Processor and process - return std::make_unique(rViewInformation2D, rTargetOutDev); + return std::make_unique(rParameters, rTargetOutDev); } else { // create Pixel Vcl-Processor - return createPixelProcessor2DFromOutputDevice( - rTargetOutDev, - rViewInformation2D); + return createPixelProcessor2DFromOutputDevice(rTargetOutDev, rParameters); } } diff --git a/drawinglayer/source/processor2d/processorfromoutputdevice.cxx b/drawinglayer/source/processor2d/processorfromoutputdevice.cxx index c8433753aeff..f16ad46faadb 100644 --- a/drawinglayer/source/processor2d/processorfromoutputdevice.cxx +++ b/drawinglayer/source/processor2d/processorfromoutputdevice.cxx @@ -29,7 +29,7 @@ namespace drawinglayer::processor2d { std::unique_ptr createBaseProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D) + drawinglayer::primitive2d::VisitingParameters const& rParameters) { const GDIMetaFile* pMetaFile = rTargetOutDev.GetConnectMetaFile(); const bool bOutputToRecordingMetaFile(pMetaFile && pMetaFile->IsRecord() && !pMetaFile->IsPause()); @@ -37,12 +37,12 @@ namespace drawinglayer::processor2d if(bOutputToRecordingMetaFile) { // create MetaFile Vcl-Processor and process - return std::make_unique(rViewInformation2D, rTargetOutDev); + return std::make_unique(rParameters, rTargetOutDev); } else { // create Pixel Vcl-Processor - return std::make_unique(rViewInformation2D, rTargetOutDev); + return std::make_unique(rParameters, rTargetOutDev); } } } // end of namespace diff --git a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx index e3a584f86172..5eb6c9f9c8ff 100644 --- a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx +++ b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx @@ -174,7 +174,7 @@ namespace drawinglayer::processor2d { // remember current transformation and ViewInformation const primitive2d::TransformPrimitive2D& rTransformCandidate(static_cast< const primitive2d::TransformPrimitive2D& >(rCandidate)); - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastParameters(maVisitingParameters); // create new transformations for CurrentTransformation and for local ViewInformation2D const geometry::ViewInformation2D aViewInformation2D( @@ -184,13 +184,15 @@ namespace drawinglayer::processor2d getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + + primitive2d::VisitingParameters aParameters(aViewInformation2D); + updateVisitingParameters(aParameters); // process content process(rTransformCandidate.getChildren()); // restore transformations - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastParameters); break; } @@ -216,8 +218,8 @@ namespace drawinglayer::processor2d } } - TextAsPolygonExtractor2D::TextAsPolygonExtractor2D(const geometry::ViewInformation2D& rViewInformation) - : BaseProcessor2D(rViewInformation), + TextAsPolygonExtractor2D::TextAsPolygonExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters) + : BaseProcessor2D(rVisitingParameters), maTarget(), maBColorModifierStack(), mnInText(0) diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index f08d17f2f002..042bb4e5f54c 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -214,7 +214,7 @@ VclMetafileProcessor2D::impDumpToMetaFile(const primitive2d::Primitive2DContaine // Prepare VDev, MetaFile and connections OutputDevice* pLastOutputDevice = mpOutputDevice; GDIMetaFile* pLastMetafile = mpMetaFile; - basegfx::B2DRange aPrimitiveRange(rContent.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aPrimitiveRange(rContent.getB2DRange(maVisitingParameters)); // transform primitive range with current transformation (e.g shadow offset) aPrimitiveRange.transform(maCurrentTransformation); @@ -548,9 +548,9 @@ void VclMetafileProcessor2D::popList() // init static break iterator uno::Reference VclMetafileProcessor2D::mxBreakIterator; -VclMetafileProcessor2D::VclMetafileProcessor2D(const geometry::ViewInformation2D& rViewInformation, - OutputDevice& rOutDev) - : VclProcessor2D(rViewInformation, rOutDev) +VclMetafileProcessor2D::VclMetafileProcessor2D( + drawinglayer::primitive2d::VisitingParameters const& rParameters, OutputDevice& rOutDev) + : VclProcessor2D(rParameters, rOutDev) , mpMetaFile(rOutDev.GetConnectMetaFile()) , mnSvtGraphicFillCount(0) , mnSvtGraphicStrokeCount(0) @@ -564,7 +564,7 @@ VclMetafileProcessor2D::VclMetafileProcessor2D(const geometry::ViewInformation2D "VclMetafileProcessor2D: Used on OutDev which has no MetaFile Target (!)"); // draw to logic coordinates, do not initialize maCurrentTransformation to viewTransformation // but only to ObjectTransformation. Do not change MapMode of destination. - maCurrentTransformation = rViewInformation.getObjectTransformation(); + maCurrentTransformation = rParameters.getViewInformation().getObjectTransformation(); } VclMetafileProcessor2D::~VclMetafileProcessor2D() @@ -1123,7 +1123,7 @@ void VclMetafileProcessor2D::processControlPrimitive2D( { // still need to fill in the location (is a class Rectangle) const basegfx::B2DRange aRangeLogic( - rControlPrimitive.getB2DRange(getViewInformation2D())); + rControlPrimitive.getB2DRange(maVisitingParameters)); const tools::Rectangle aRectLogic(static_cast(floor(aRangeLogic.getMinX())), static_cast(floor(aRangeLogic.getMinY())), static_cast(ceil(aRangeLogic.getMaxX())), @@ -1234,7 +1234,7 @@ void VclMetafileProcessor2D::processTextHierarchyFieldPrimitive2D( // process recursively primitive2d::Primitive2DContainer rContent; - rFieldPrimitive.get2DDecomposition(rContent, getViewInformation2D()); + rFieldPrimitive.get2DDecomposition(rContent, maVisitingParameters); process(rContent); // for the end comment the type is not relevant yet, they are all the same. Just add. @@ -1245,7 +1245,7 @@ void VclMetafileProcessor2D::processTextHierarchyFieldPrimitive2D( return; // emulate data handling from ImpEditEngine::Paint - const basegfx::B2DRange aViewRange(rContent.getB2DRange(getViewInformation2D())); + const basegfx::B2DRange aViewRange(rContent.getB2DRange(maVisitingParameters)); const tools::Rectangle aRectLogic(static_cast(floor(aViewRange.getMinX())), static_cast(floor(aViewRange.getMinY())), static_cast(ceil(aViewRange.getMaxX())), @@ -2251,7 +2251,7 @@ void VclMetafileProcessor2D::processTransparencePrimitive2D( // transparence primitives with non-trivial transparence content) i will for now not // refine to tiling here. - basegfx::B2DRange aViewRange(rContent.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aViewRange(rContent.getB2DRange(maVisitingParameters)); aViewRange.transform(maCurrentTransformation); const tools::Rectangle aRectLogic(static_cast(floor(aViewRange.getMinX())), static_cast(floor(aViewRange.getMinY())), @@ -2311,7 +2311,9 @@ void VclMetafileProcessor2D::processTransparencePrimitive2D( getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - VclPixelProcessor2D aBufferProcessor(aViewInfo, *aBufferDevice); + primitive2d::VisitingParameters aVisitingParameters(aViewInfo); + + VclPixelProcessor2D aBufferProcessor(aVisitingParameters, *aBufferDevice); // draw content using pixel renderer const Point aEmptyPoint; @@ -2442,14 +2444,16 @@ VclMetafileProcessor2D::CreateBufferDevice(const basegfx::B2DRange& rCandidateRa void VclMetafileProcessor2D::processPrimitive2DOnPixelProcessor( const primitive2d::BasePrimitive2D& rCandidate) { - basegfx::B2DRange aViewRange(rCandidate.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aViewRange(rCandidate.getB2DRange(maVisitingParameters)); geometry::ViewInformation2D aViewInfo; tools::Rectangle aRectLogic; Size aSizePixel; auto pBufferDevice(CreateBufferDevice(aViewRange, aViewInfo, aRectLogic, aSizePixel)); if (pBufferDevice) { - VclPixelProcessor2D aBufferProcessor(aViewInfo, *pBufferDevice, maBColorModifierStack); + primitive2d::VisitingParameters aVisitingParameters(aViewInfo); + VclPixelProcessor2D aBufferProcessor(aVisitingParameters, *pBufferDevice, + maBColorModifierStack); // draw content using pixel renderer primitive2d::Primitive2DReference aRef( diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx index 67a79ca307cc..4e3f812f3a06 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.hxx @@ -203,7 +203,7 @@ protected: public: /// constructor/destructor - VclMetafileProcessor2D(const geometry::ViewInformation2D& rViewInformation, + VclMetafileProcessor2D(drawinglayer::primitive2d::VisitingParameters const& rParameters, OutputDevice& rOutDev); virtual ~VclMetafileProcessor2D() override; }; diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx index a0990edf7645..28c6d6f9ffdb 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx @@ -78,14 +78,15 @@ struct VclPixelProcessor2D::Impl } }; -VclPixelProcessor2D::VclPixelProcessor2D(const geometry::ViewInformation2D& rViewInformation, +VclPixelProcessor2D::VclPixelProcessor2D(primitive2d::VisitingParameters const& rVisitingParameters, OutputDevice& rOutDev, const basegfx::BColorModifierStack& rInitStack) - : VclProcessor2D(rViewInformation, rOutDev, rInitStack) + : VclProcessor2D(rVisitingParameters, rOutDev, rInitStack) , m_pImpl(new Impl(rOutDev)) { // prepare maCurrentTransformation matrix with viewTransformation to target directly to pixels - maCurrentTransformation = rViewInformation.getObjectToViewTransformation(); + maCurrentTransformation + = rVisitingParameters.getViewInformation().getObjectToViewTransformation(); // prepare output directly to pixels mpOutputDevice->Push(PushFlags::MAPMODE); @@ -1024,7 +1025,7 @@ AlphaMask ProcessAndBlurAlphaMask(const Bitmap& rMask, double fErodeDilateRadius void VclPixelProcessor2D::processGlowPrimitive2D(const primitive2d::GlowPrimitive2D& rCandidate) { - basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); aRange.transform(maCurrentTransformation); basegfx::B2DVector aGlowRadiusVector(rCandidate.getGlowRadius(), 0); // Calculate the pixel size of glow radius in current transformation @@ -1092,7 +1093,7 @@ void VclPixelProcessor2D::processSoftEdgePrimitive2D( // borders, where they don't end. Ideally, process the full object once at maximal reasonable // resolution, and store the resulting alpha mask in primitive's cache; then reuse it later, // applying the transform. - basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); aRange.transform(maCurrentTransformation); basegfx::B2DVector aRadiusVector(rCandidate.getRadius(), 0); // Calculate the pixel size of soft edge radius in current transformation @@ -1152,7 +1153,7 @@ void VclPixelProcessor2D::processShadowPrimitive2D(const primitive2d::ShadowPrim return; } - basegfx::B2DRange aRange(rCandidate.getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rCandidate.getB2DRange(maVisitingParameters)); aRange.transform(maCurrentTransformation); basegfx::B2DVector aBlurRadiusVector(rCandidate.getShadowBlur(), 0); aBlurRadiusVector *= maCurrentTransformation; diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx index 480fdcaa6e18..6a1b23db61fe 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.hxx @@ -104,7 +104,8 @@ class VclPixelProcessor2D final : public VclProcessor2D public: /// constructor/destructor - VclPixelProcessor2D(const geometry::ViewInformation2D& rViewInformation, OutputDevice& rOutDev, + VclPixelProcessor2D(primitive2d::VisitingParameters const& rVisitingParameters, + OutputDevice& rOutDev, const basegfx::BColorModifierStack& rInitStack = basegfx::BColorModifierStack()); virtual ~VclPixelProcessor2D() override; diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index bd6af1b27221..f62bfeaf4dbe 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -828,7 +828,7 @@ void VclProcessor2D::RenderUnifiedTransparencePrimitive2D( else if (rTransCandidate.getTransparence() > 0.0 && rTransCandidate.getTransparence() < 1.0) { // transparence is in visible range - basegfx::B2DRange aRange(rTransCandidate.getChildren().getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rTransCandidate.getChildren().getB2DRange(maVisitingParameters)); aRange.transform(maCurrentTransformation); impBufferDevice aBufferDevice(*mpOutputDevice, aRange); @@ -857,7 +857,7 @@ void VclProcessor2D::RenderTransparencePrimitive2D( if (rTransCandidate.getChildren().empty()) return; - basegfx::B2DRange aRange(rTransCandidate.getChildren().getB2DRange(getViewInformation2D())); + basegfx::B2DRange aRange(rTransCandidate.getChildren().getB2DRange(maVisitingParameters)); aRange.transform(maCurrentTransformation); impBufferDevice aBufferDevice(*mpOutputDevice, aRange); @@ -897,7 +897,7 @@ void VclProcessor2D::RenderTransformPrimitive2D( { // remember current transformation and ViewInformation const basegfx::B2DHomMatrix aLastCurrentTransformation(maCurrentTransformation); - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastVisitingParameters(maVisitingParameters); // create new transformations for CurrentTransformation // and for local ViewInformation2D @@ -907,14 +907,15 @@ void VclProcessor2D::RenderTransformPrimitive2D( getViewInformation2D().getViewTransformation(), getViewInformation2D().getViewport(), getViewInformation2D().getVisualizedPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + updateVisitingParameters(aVisitingParameters); // process content process(rTransformCandidate.getChildren()); // restore transformations maCurrentTransformation = aLastCurrentTransformation; - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastVisitingParameters); } // new XDrawPage for ViewInformation2D @@ -922,7 +923,7 @@ void VclProcessor2D::RenderPagePreviewPrimitive2D( const primitive2d::PagePreviewPrimitive2D& rPagePreviewCandidate) { // remember current transformation and ViewInformation - const geometry::ViewInformation2D aLastViewInformation2D(getViewInformation2D()); + primitive2d::VisitingParameters aLastVisitingParameters(maVisitingParameters); // create new local ViewInformation2D const geometry::ViewInformation2D aViewInformation2D( @@ -930,13 +931,14 @@ void VclProcessor2D::RenderPagePreviewPrimitive2D( getViewInformation2D().getViewTransformation(), getViewInformation2D().getViewport(), rPagePreviewCandidate.getXDrawPage(), getViewInformation2D().getViewTime(), getViewInformation2D().getExtendedInformationSequence()); - updateViewInformation(aViewInformation2D); + primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + updateVisitingParameters(aVisitingParameters); // process decomposed content process(rPagePreviewCandidate); // restore transformations - updateViewInformation(aLastViewInformation2D); + updateVisitingParameters(aLastVisitingParameters); } // marker @@ -1469,10 +1471,10 @@ void VclProcessor2D::adaptTextToFillDrawMode() const // process support -VclProcessor2D::VclProcessor2D(const geometry::ViewInformation2D& rViewInformation, +VclProcessor2D::VclProcessor2D(primitive2d::VisitingParameters const& rVisitingParameters, OutputDevice& rOutDev, const basegfx::BColorModifierStack& rInitStack) - : BaseProcessor2D(rViewInformation) + : BaseProcessor2D(rVisitingParameters) , mpOutputDevice(&rOutDev) , maBColorModifierStack(rInitStack) , maCurrentTransformation() diff --git a/drawinglayer/source/processor2d/vclprocessor2d.hxx b/drawinglayer/source/processor2d/vclprocessor2d.hxx index 7e251aa0ca13..05638b83f7aa 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.hxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.hxx @@ -116,7 +116,8 @@ protected: public: // constructor/destructor - VclProcessor2D(const geometry::ViewInformation2D& rViewInformation, OutputDevice& rOutDev, + VclProcessor2D(primitive2d::VisitingParameters const& rVisitingParameters, + OutputDevice& rOutDev, const basegfx::BColorModifierStack& rInitStack = basegfx::BColorModifierStack()); virtual ~VclProcessor2D() override; diff --git a/drawinglayer/source/tools/converters.cxx b/drawinglayer/source/tools/converters.cxx index d8fe291bf803..123d822fe201 100644 --- a/drawinglayer/source/tools/converters.cxx +++ b/drawinglayer/source/tools/converters.cxx @@ -37,7 +37,7 @@ namespace drawinglayer BitmapEx convertToBitmapEx( const drawinglayer::primitive2d::Primitive2DContainer& rSeq, - const geometry::ViewInformation2D& rViewInformation2D, + drawinglayer::primitive2d::VisitingParameters const& rParameters, sal_uInt32 nDiscreteWidth, sal_uInt32 nDiscreteHeight, sal_uInt32 nMaxSquarePixels) @@ -81,9 +81,7 @@ namespace drawinglayer // create pixel processor, also already takes care of AAing and // checking the getOptionsDrawinglayer().IsAntiAliasing() switch. If // not wanted, change after this call as needed - std::unique_ptr pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice( - *pContent, - rViewInformation2D); + auto pContentProcessor = processor2d::createPixelProcessor2DFromOutputDevice(*pContent, rParameters); #ifdef DBG_UTIL static bool bDoSaveForVisualControl(false); // loplugin:constvars:ignore diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx b/drawinglayer/source/tools/primitive2dxmldump.cxx index d48115baafa6..e347e102c616 100644 --- a/drawinglayer/source/tools/primitive2dxmldump.cxx +++ b/drawinglayer/source/tools/primitive2dxmldump.cxx @@ -208,6 +208,9 @@ void Primitive2dXmlDump::decomposeAndWrite( const drawinglayer::primitive2d::Primitive2DContainer& rPrimitive2DSequence, ::tools::XmlWriter& rWriter) { + drawinglayer::geometry::ViewInformation2D aInfo; + drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aInfo); + for (size_t i = 0; i < rPrimitive2DSequence.size(); i++) { drawinglayer::primitive2d::Primitive2DReference xPrimitive2DReference @@ -528,8 +531,9 @@ void Primitive2dXmlDump::decomposeAndWrite( rWriter.startElement("metafile"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; // since the graphic is not rendered in a document, we do not need a concrete view information + drawinglayer::primitive2d::VisitingParameters aEmptyVisitingParameters; rMetafilePrimitive2D.get2DDecomposition( - aPrimitiveContainer, drawinglayer::geometry::ViewInformation2D()); + aPrimitiveContainer, aEmptyVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); } @@ -541,8 +545,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // SdrRectanglePrimitive2D is private to us. rWriter.startElement("sdrrectangle"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -553,8 +556,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // SdrBlockTextPrimitive2D is private to us. rWriter.startElement("sdrblocktext"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -565,8 +567,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // TextHierarchyBlockPrimitive2D. rWriter.startElement("texthierarchyblock"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -577,8 +578,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // TextHierarchyParagraphPrimitive2D. rWriter.startElement("texthierarchyparagraph"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -589,8 +589,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // TextHierarchyLinePrimitive2D. rWriter.startElement("texthierarchyline"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -601,8 +600,7 @@ void Primitive2dXmlDump::decomposeAndWrite( // ShadowPrimitive2D. rWriter.startElement("shadow"); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); break; @@ -615,8 +613,7 @@ void Primitive2dXmlDump::decomposeAndWrite( OUStringToOString(sCurrentElementTag, RTL_TEXTENCODING_UTF8)); rWriter.attribute("idNumber", nId); drawinglayer::primitive2d::Primitive2DContainer aPrimitiveContainer; - pBasePrimitive->get2DDecomposition(aPrimitiveContainer, - drawinglayer::geometry::ViewInformation2D()); + pBasePrimitive->get2DDecomposition(aPrimitiveContainer, aVisitingParameters); decomposeAndWrite(aPrimitiveContainer, rWriter); rWriter.endElement(); } diff --git a/include/drawinglayer/converters.hxx b/include/drawinglayer/converters.hxx index 64d0e2ce7d4e..ae5adf7900fd 100644 --- a/include/drawinglayer/converters.hxx +++ b/include/drawinglayer/converters.hxx @@ -26,7 +26,7 @@ namespace drawinglayer { BitmapEx DRAWINGLAYER_DLLPUBLIC convertToBitmapEx(const drawinglayer::primitive2d::Primitive2DContainer& rSeq, - const geometry::ViewInformation2D& rViewInformation2D, sal_uInt32 nDiscreteWidth, + drawinglayer::primitive2d::VisitingParameters const& rParameters, sal_uInt32 nDiscreteWidth, sal_uInt32 nDiscreteHeight, sal_uInt32 nMaxSquarePixels); } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/baseprimitive2d.hxx b/include/drawinglayer/primitive2d/baseprimitive2d.hxx index 0337079e7801..486bf031daf7 100644 --- a/include/drawinglayer/primitive2d/baseprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/baseprimitive2d.hxx @@ -30,25 +30,30 @@ #include #include #include +#include -namespace drawinglayer::geometry -{ -class ViewInformation2D; -} namespace drawinglayer::primitive2d { class DRAWINGLAYERCORE_DLLPUBLIC VisitingParameters { - const geometry::ViewInformation2D& mrViewInformation; +private: + geometry::ViewInformation2D maViewInformation; public: - VisitingParameters(const geometry::ViewInformation2D& rViewInformation) - : mrViewInformation(rViewInformation) + explicit VisitingParameters(const geometry::ViewInformation2D& rViewInformation) + : maViewInformation(rViewInformation) + { + } + + const css::uno::Sequence getUnoProperties() { + css::uno::Sequence aPropertyValues; + aPropertyValues = maViewInformation.getViewInformationSequence(); + return aPropertyValues; } - const geometry::ViewInformation2D& getViewInformation() const { return mrViewInformation; } + const geometry::ViewInformation2D& getViewInformation() const { return maViewInformation; } }; typedef cppu::WeakComponentImplHelper diff --git a/include/drawinglayer/processor2d/baseprocessor2d.hxx b/include/drawinglayer/processor2d/baseprocessor2d.hxx index 1f0bd46efb62..802434fd9009 100644 --- a/include/drawinglayer/processor2d/baseprocessor2d.hxx +++ b/include/drawinglayer/processor2d/baseprocessor2d.hxx @@ -152,18 +152,16 @@ namespace drawinglayer::processor2d */ class DRAWINGLAYER_DLLPUBLIC BaseProcessor2D { - private: - /// The ViewInformation2D itself. It's private to isolate accesses to it - geometry::ViewInformation2D maViewInformation2D; - protected: + primitive2d::VisitingParameters maVisitingParameters; + /* access method to allow the implementations to change the current ViewInformation2D if needed. This allows isolating these accesses later if needed */ - void updateViewInformation(const geometry::ViewInformation2D& rViewInformation2D) + void updateVisitingParameters(primitive2d::VisitingParameters const & rVisitingParameters) { - maViewInformation2D = rViewInformation2D; + maVisitingParameters = rVisitingParameters; } /* as tooling, the process() implementation takes over API handling and calls this @@ -177,14 +175,17 @@ namespace drawinglayer::processor2d public: /// constructor/destructor - explicit BaseProcessor2D(const geometry::ViewInformation2D& rViewInformation); + explicit BaseProcessor2D(primitive2d::VisitingParameters const & rVisitingParameters); virtual ~BaseProcessor2D(); /// the central processing method void process(const primitive2d::Primitive2DContainer& rSource); /// data read access - const geometry::ViewInformation2D& getViewInformation2D() const { return maViewInformation2D; } + const geometry::ViewInformation2D& getViewInformation2D() const + { + return maVisitingParameters.getViewInformation(); + } }; } // end of namespace drawinglayer::processor2d diff --git a/include/drawinglayer/processor2d/contourextractor2d.hxx b/include/drawinglayer/processor2d/contourextractor2d.hxx index 53158cc21291..dc9f708cc60e 100644 --- a/include/drawinglayer/processor2d/contourextractor2d.hxx +++ b/include/drawinglayer/processor2d/contourextractor2d.hxx @@ -46,7 +46,7 @@ namespace drawinglayer::processor2d public: explicit ContourExtractor2D( - const geometry::ViewInformation2D& rViewInformation, + primitive2d::VisitingParameters const& rVisitingParameters, bool bExtractFillOnly); virtual ~ContourExtractor2D() override; diff --git a/include/drawinglayer/processor2d/hittestprocessor2d.hxx b/include/drawinglayer/processor2d/hittestprocessor2d.hxx index 9ba4ad55dcaa..cc7143ef4adb 100644 --- a/include/drawinglayer/processor2d/hittestprocessor2d.hxx +++ b/include/drawinglayer/processor2d/hittestprocessor2d.hxx @@ -68,7 +68,7 @@ namespace drawinglayer::processor2d public: HitTestProcessor2D( - const geometry::ViewInformation2D& rViewInformation, + primitive2d::VisitingParameters const& rVisitingParameters, const basegfx::B2DPoint& rLogicHitPosition, double fLogicHitTolerance, bool bHitTextOnly); diff --git a/include/drawinglayer/processor2d/linegeometryextractor2d.hxx b/include/drawinglayer/processor2d/linegeometryextractor2d.hxx index a2a388dd12f3..d12e0ed698dd 100644 --- a/include/drawinglayer/processor2d/linegeometryextractor2d.hxx +++ b/include/drawinglayer/processor2d/linegeometryextractor2d.hxx @@ -46,7 +46,7 @@ namespace drawinglayer::processor2d void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) override; public: - LineGeometryExtractor2D(const geometry::ViewInformation2D& rViewInformation); + LineGeometryExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters); virtual ~LineGeometryExtractor2D() override; const basegfx::B2DPolygonVector& getExtractedHairlines() const { return maExtractedHairlines; } diff --git a/include/drawinglayer/processor2d/objectinfoextractor2d.hxx b/include/drawinglayer/processor2d/objectinfoextractor2d.hxx index f7dc1d146885..3c537b09d83c 100644 --- a/include/drawinglayer/processor2d/objectinfoextractor2d.hxx +++ b/include/drawinglayer/processor2d/objectinfoextractor2d.hxx @@ -41,7 +41,7 @@ namespace drawinglayer::processor2d void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) override; public: - ObjectInfoPrimitiveExtractor2D(const geometry::ViewInformation2D& rViewInformation); + ObjectInfoPrimitiveExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters); virtual ~ObjectInfoPrimitiveExtractor2D() override; const primitive2d::ObjectInfoPrimitive2D* getResult() const { return mpFound; } diff --git a/include/drawinglayer/processor2d/processor2dtools.hxx b/include/drawinglayer/processor2d/processor2dtools.hxx index 86ad2562e711..0b18a1687012 100644 --- a/include/drawinglayer/processor2d/processor2dtools.hxx +++ b/include/drawinglayer/processor2d/processor2dtools.hxx @@ -22,8 +22,8 @@ #include #include -namespace drawinglayer::geometry { class ViewInformation2D; } namespace drawinglayer::processor2d { class BaseProcessor2D; } +namespace drawinglayer::primitive2d { class VisitingParameters; } class OutputDevice; @@ -43,7 +43,7 @@ namespace drawinglayer::processor2d */ DRAWINGLAYER_DLLPUBLIC std::unique_ptr createPixelProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D); + drawinglayer::primitive2d::VisitingParameters const& rParameters); /** create a BaseProcessor2D dependent on some states of the given OutputDevice. If metafile is recorded, the needed @@ -61,7 +61,7 @@ namespace drawinglayer::processor2d */ DRAWINGLAYER_DLLPUBLIC std::unique_ptr createProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D); + drawinglayer::primitive2d::VisitingParameters const& rParameters); } // end of namespace drawinglayer::processor2d diff --git a/include/drawinglayer/processor2d/processorfromoutputdevice.hxx b/include/drawinglayer/processor2d/processorfromoutputdevice.hxx index f5ba9da79987..fb434f229739 100644 --- a/include/drawinglayer/processor2d/processorfromoutputdevice.hxx +++ b/include/drawinglayer/processor2d/processorfromoutputdevice.hxx @@ -38,7 +38,7 @@ namespace drawinglayer::processor2d // deletion is duty of the caller DRAWINGLAYER_DLLPUBLIC std::unique_ptr createBaseProcessor2DFromOutputDevice( OutputDevice& rTargetOutDev, - const drawinglayer::geometry::ViewInformation2D& rViewInformation2D); + drawinglayer::primitive2d::VisitingParameters const& rParameters); } // end of namespace drawinglayer::processor2d diff --git a/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx b/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx index 42e2376f0b58..cc2e78049bdf 100644 --- a/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx +++ b/include/drawinglayer/processor2d/textaspolygonextractor2d.hxx @@ -79,7 +79,7 @@ namespace drawinglayer::processor2d void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) override; public: - explicit TextAsPolygonExtractor2D(const geometry::ViewInformation2D& rViewInformation); + explicit TextAsPolygonExtractor2D(primitive2d::VisitingParameters const& rVisitingParameters); virtual ~TextAsPolygonExtractor2D() override; // data read access diff --git a/sc/source/ui/miscdlgs/autofmt.cxx b/sc/source/ui/miscdlgs/autofmt.cxx index 23f77ee76cab..1a3a9360ed9e 100644 --- a/sc/source/ui/miscdlgs/autofmt.cxx +++ b/sc/source/ui/miscdlgs/autofmt.cxx @@ -399,10 +399,9 @@ void ScAutoFmtPreview::PaintCells(vcl::RenderContext& rRenderContext) return; const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - std::unique_ptr pProcessor2D( - drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - rRenderContext, - aNewViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + rRenderContext, aVisitingParameters); pProcessor2D->process(maArray.CreateB2DPrimitiveArray()); pProcessor2D.reset(); diff --git a/sc/source/ui/view/hintwin.cxx b/sc/source/ui/view/hintwin.cxx index a9131828b30f..4dfa976816a4 100644 --- a/sc/source/ui/view/hintwin.cxx +++ b/sc/source/ui/view/hintwin.cxx @@ -88,8 +88,9 @@ drawinglayer::primitive2d::Primitive2DContainer ScOverlayHint::createOverlaySequ Point aTextStart(nLeft + aHintMargin.Width() + aIndent.Width(), nTop + aHintMargin.Height() + aFontMetric.GetLineHeight() + aIndent.Height()); - drawinglayer::geometry::ViewInformation2D aDummy; - rRange.expand(pTitle->getB2DRange(aDummy)); + drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + rRange.expand(pTitle->getB2DRange(aVisitingParameters)); drawinglayer::primitive2d::Primitive2DContainer aSeq { pTitle }; @@ -125,7 +126,7 @@ drawinglayer::primitive2d::Primitive2DContainer ScOverlayHint::createOverlaySequ std::vector(), aFontAttr, css::lang::Locale(), rColor.getBColor()); - rRange.expand(pMessage->getB2DRange(aDummy)); + rRange.expand(pMessage->getB2DRange(aVisitingParameters)); aSeq.push_back(pMessage); diff --git a/sc/source/ui/view/output.cxx b/sc/source/ui/view/output.cxx index 93b542b2c851..868a0b075aae 100644 --- a/sc/source/ui/view/output.cxx +++ b/sc/source/ui/view/output.cxx @@ -1723,9 +1723,9 @@ std::unique_ptr ScOutputData::Create GetXDrawPageForSdrPage( pDrawPage ), 0.0, uno::Sequence< beans::PropertyValue >() ); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); - return drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( - *mpDev, aNewViewInfos ); + return drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*mpDev, aVisitingParameters); } // Printer diff --git a/sfx2/source/control/thumbnailview.cxx b/sfx2/source/control/thumbnailview.cxx index a6b395a0b666..161a9c4cc0d9 100644 --- a/sfx2/source/control/thumbnailview.cxx +++ b/sfx2/source/control/thumbnailview.cxx @@ -898,9 +898,8 @@ void ThumbnailView::Paint(vcl::RenderContext& rRenderContext, const ::tools::Rec // Create the processor and process the primitives const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aVisitingParameters); pProcessor->process(aSeq); // draw items diff --git a/sfx2/source/dialog/infobar.cxx b/sfx2/source/dialog/infobar.cxx index 40095a7b8a25..4bf7cef6f848 100644 --- a/sfx2/source/dialog/infobar.cxx +++ b/sfx2/source/dialog/infobar.cxx @@ -107,8 +107,9 @@ void SfxInfoBarWindow::SetCloseButtonImage() Point aBtnPos(0, 0); const ViewInformation2D aNewViewInfos; - const unique_ptr pProcessor( - createBaseProcessor2DFromOutputDevice(*xDevice, aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + *xDevice, aVisitingParameters); const ::tools::Rectangle aRect(aBtnPos, xDevice->PixelToLogic(aSize)); diff --git a/svgio/source/svgreader/svgclippathnode.cxx b/svgio/source/svgreader/svgclippathnode.cxx index 1a8269684095..6688791ad207 100644 --- a/svgio/source/svgreader/svgclippathnode.cxx +++ b/svgio/source/svgreader/svgclippathnode.cxx @@ -129,6 +129,7 @@ namespace svgio::svgreader return; const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); drawinglayer::primitive2d::Primitive2DContainer aClipTarget; basegfx::B2DPolyPolygon aClipPolyPolygon; @@ -138,7 +139,7 @@ namespace svgio::svgreader if(!aClipTarget.empty()) { // extract filled polygons as base for a mask PolyPolygon - drawinglayer::processor2d::ContourExtractor2D aExtractor(aViewInformation2D, true); + drawinglayer::processor2d::ContourExtractor2D aExtractor(aVisitingParameters, true); aExtractor.process(aClipTarget); @@ -161,7 +162,7 @@ namespace svgio::svgreader if (SvgUnits::objectBoundingBox == getClipPathUnits()) { // clip is object-relative, transform using content transformation - const basegfx::B2DRange aContentRange(rContent.getB2DRange(aViewInformation2D)); + const basegfx::B2DRange aContentRange(rContent.getB2DRange(aVisitingParameters)); aClipPolyPolygon.transform( basegfx::utils::createScaleTranslateB2DHomMatrix( @@ -187,9 +188,7 @@ namespace svgio::svgreader // ClipRegion is a rectangle, thus it is not expensive to tell // if the content is completely inside or outside of it; get ranges const basegfx::B2DRange aClipRange(aClipPolyPolygon.getB2DRange()); - const basegfx::B2DRange aContentRange( - rContent.getB2DRange( - aViewInformation2D)); + const basegfx::B2DRange aContentRange(rContent.getB2DRange(aVisitingParameters)); if(aClipRange.isInside(aContentRange)) { diff --git a/svgio/source/svgreader/svgimagenode.cxx b/svgio/source/svgreader/svgimagenode.cxx index feaf5933ad53..05b07b739be1 100644 --- a/svgio/source/svgreader/svgimagenode.cxx +++ b/svgio/source/svgreader/svgimagenode.cxx @@ -265,7 +265,9 @@ namespace svgio::svgreader if(!aNewTarget.empty()) { - aViewBox = aNewTarget.getB2DRange(drawinglayer::geometry::ViewInformation2D()); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + aViewBox = aNewTarget.getB2DRange(aVisitingParameters); } } } diff --git a/svgio/source/svgreader/svgmasknode.cxx b/svgio/source/svgreader/svgmasknode.cxx index 7f3ab9a772ca..c2f2c5e0c7fc 100644 --- a/svgio/source/svgreader/svgmasknode.cxx +++ b/svgio/source/svgreader/svgmasknode.cxx @@ -201,9 +201,9 @@ namespace svgio::svgreader if(!aMaskTarget.empty()) { // get range of content to be masked - const basegfx::B2DRange aContentRange( - rTarget.getB2DRange( - drawinglayer::geometry::ViewInformation2D())); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aContentRange = rTarget.getB2DRange(aVisitingParameters); const double fContentWidth(aContentRange.getWidth()); const double fContentHeight(aContentRange.getHeight()); diff --git a/svgio/source/svgreader/svgstyleattributes.cxx b/svgio/source/svgreader/svgstyleattributes.cxx index 8ad08b0414e2..7092f7aa8b0e 100644 --- a/svgio/source/svgreader/svgstyleattributes.cxx +++ b/svgio/source/svgreader/svgstyleattributes.cxx @@ -280,7 +280,8 @@ namespace svgio::svgreader // text geometry is needed, create // use neutral ViewInformation and create LineGeometryExtractor2D const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - drawinglayer::processor2d::TextAsPolygonExtractor2D aExtractor(aViewInformation2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + drawinglayer::processor2d::TextAsPolygonExtractor2D aExtractor(aVisitingParameters); // process aExtractor.process(rSource); @@ -750,7 +751,8 @@ namespace svgio::svgreader // use neutral ViewInformation and create LineGeometryExtractor2D const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aViewInformation2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aVisitingParameters); // process aExtractor.process(aSeq); diff --git a/svgio/source/svgreader/svgsvgnode.cxx b/svgio/source/svgreader/svgsvgnode.cxx index 082b8f89a715..27bba449da52 100644 --- a/svgio/source/svgreader/svgsvgnode.cxx +++ b/svgio/source/svgreader/svgsvgnode.cxx @@ -357,9 +357,9 @@ namespace svgio::svgreader // Even outermost svg has not all information to resolve relative values, // I use content itself as fallback to set missing values for viewport // Any better idea for such ill structured svg documents? - const basegfx::B2DRange aChildRange( - aSequence.getB2DRange( - drawinglayer::geometry::ViewInformation2D())); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aChildRange = aSequence.getB2DRange(aVisitingParameters); fWReference = aChildRange.getWidth(); } } @@ -391,9 +391,9 @@ namespace svgio::svgreader // Even outermost svg has not all information to resolve relative values, // I use content itself as fallback to set missing values for viewport // Any better idea for such ill structured svg documents? - const basegfx::B2DRange aChildRange( - aSequence.getB2DRange( - drawinglayer::geometry::ViewInformation2D())); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aChildRange = aSequence.getB2DRange(aVisitingParameters); fHReference = aChildRange.getHeight(); } } @@ -593,9 +593,10 @@ namespace svgio::svgreader { // There exists no parent to resolve relative width or height. // Use child size as fallback. We get viewport >= content, therefore no clipping. - const basegfx::B2DRange aChildRange( - aSequence.getB2DRange( - drawinglayer::geometry::ViewInformation2D())); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aChildRange = aSequence.getB2DRange(aVisitingParameters); + const double fChildWidth(aChildRange.getWidth()); const double fChildHeight(aChildRange.getHeight()); const double fChildLeft(aChildRange.getMinX()); @@ -617,9 +618,9 @@ namespace svgio::svgreader // different from Svg we have the possibility with primitives to get // a correct bounding box for the geometry. Get it for evtl. taking action - const basegfx::B2DRange aContentRange( - aSequence.getB2DRange( - drawinglayer::geometry::ViewInformation2D())); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aContentRange = aSequence.getB2DRange(aVisitingParameters); if(aSvgCanvasRange.isInside(aContentRange)) { diff --git a/svx/source/dialog/frmsel.cxx b/svx/source/dialog/frmsel.cxx index 75e1a066ec63..9eac8ae76039 100644 --- a/svx/source/dialog/frmsel.cxx +++ b/svx/source/dialog/frmsel.cxx @@ -690,10 +690,9 @@ void FrameSelectorImpl::DrawAllFrameBorders() // This is one more hint to enhance the primitive visualization further to // support diagonals better - that's the way to go. const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - std::unique_ptr pProcessor2D( - drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - *mpVirDev, - aNewViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + *mpVirDev, aVisitingParameters); pProcessor2D->process(maArray.CreateB2DPrimitiveArray()); pProcessor2D.reset(); diff --git a/svx/source/dialog/pagectrl.cxx b/svx/source/dialog/pagectrl.cxx index 1fb9d0ae1464..06148a5976e7 100644 --- a/svx/source/dialog/pagectrl.cxx +++ b/svx/source/dialog/pagectrl.cxx @@ -361,8 +361,10 @@ void SvxPageWindow::drawFillAttributes(vcl::RenderContext& rRenderContext, basegfx::B2DHomMatrix(), rRenderContext.GetViewTransformation(), aPaintRange, nullptr, 0.0, css::uno::Sequence()); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + std::unique_ptr pProcessor( - drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aViewInformation2D)); + drawinglayer::processor2d::createProcessor2DFromOutputDevice(rRenderContext, aVisitingParameters)); pProcessor->process(aSequence); } diff --git a/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx b/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx index 608a97ebd698..d7db61b9d19f 100644 --- a/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx +++ b/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx @@ -119,9 +119,10 @@ void ObjectContactOfObjListPainter::ProcessDisplay(DisplayInfo& rDisplayInfo) // if there is something to show, use a vclProcessor to render it if(!xPrimitiveSequence.empty()) { + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(getViewInformation2D()); std::unique_ptr pProcessor2D(drawinglayer::processor2d::createProcessor2DFromOutputDevice( *pTargetDevice, - getViewInformation2D())); + aVisitingParameters)); pProcessor2D->process(xPrimitiveSequence); } diff --git a/svx/source/sdr/contact/objectcontactofpageview.cxx b/svx/source/sdr/contact/objectcontactofpageview.cxx index 3a3c28b972f8..3a36c161db58 100644 --- a/svx/source/sdr/contact/objectcontactofpageview.cxx +++ b/svx/source/sdr/contact/objectcontactofpageview.cxx @@ -272,9 +272,10 @@ namespace sdr::contact pOutDev->SetLayoutMode(ComplexTextLayoutFlags::Default); // reset, default is no BiDi/RTL // create renderer + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(getViewInformation2D()); std::unique_ptr pProcessor2D( drawinglayer::processor2d::createProcessor2DFromOutputDevice( - rTargetOutDev, getViewInformation2D())); + rTargetOutDev, aVisitingParameters)); pProcessor2D->process(xPrimitiveSequence); } diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx index c024abb370c5..68e363f9de0c 100644 --- a/svx/source/sdr/contact/viewcontactofgraphic.cxx +++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx @@ -270,7 +270,8 @@ namespace sdr::contact // decompose immediately with neutral ViewInformation. This will // layout the text to more simple TextPrimitives from drawinglayer const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - xBlockTextPrimitive->get2DDecomposition(xRetval, aViewInformation2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + xBlockTextPrimitive->get2DDecomposition(xRetval, aVisitingParameters); } // always use SdrObject::Free(...) for SdrObjects (!) diff --git a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx index 0c53ef5a4499..4f005ee8c091 100644 --- a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx +++ b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx @@ -166,7 +166,9 @@ basegfx::B2DRange ViewContactOfSdrOle2Obj::getRange( const drawinglayer::geometr aObjectMatrix, aAttribute)); - return drawinglayer::primitive2d::getB2DRangeFromPrimitive2DReference(xReference, rViewInfo2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInfo2D); + + return drawinglayer::primitive2d::getB2DRangeFromPrimitive2DReference(xReference, aVisitingParameters); } drawinglayer::primitive2d::Primitive2DContainer ViewContactOfSdrOle2Obj::createViewIndependentPrimitive2DSequence() const diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx b/svx/source/sdr/contact/viewobjectcontact.cxx index e65c2bab1d6e..cd69e03037c6 100644 --- a/svx/source/sdr/contact/viewobjectcontact.cxx +++ b/svx/source/sdr/contact/viewobjectcontact.cxx @@ -61,7 +61,7 @@ protected: public: AnimatedExtractingProcessor2D( - const drawinglayer::geometry::ViewInformation2D& rViewInformation, + drawinglayer::primitive2d::VisitingParameters const& rParameters, bool bTextAnimationAllowed, bool bGraphicAnimationAllowed); @@ -70,10 +70,10 @@ public: }; AnimatedExtractingProcessor2D::AnimatedExtractingProcessor2D( - const drawinglayer::geometry::ViewInformation2D& rViewInformation, + drawinglayer::primitive2d::VisitingParameters const& rParameters, bool bTextAnimationAllowed, bool bGraphicAnimationAllowed) -: drawinglayer::processor2d::BaseProcessor2D(rViewInformation), +: drawinglayer::processor2d::BaseProcessor2D(rParameters), maPrimitive2DSequence(), mbTextAnimationAllowed(bTextAnimationAllowed), mbGraphicAnimationAllowed(bGraphicAnimationAllowed) @@ -199,8 +199,9 @@ const basegfx::B2DRange& ViewObjectContact::getObjectRange() const if(!xSequence.empty()) { + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInfo2D); const_cast< ViewObjectContact* >(this)->maObjectRange = - xSequence.getB2DRange(rViewInfo2D); + xSequence.getB2DRange(aVisitingParameters); } } } @@ -279,8 +280,9 @@ void ViewObjectContact::checkForPrimitive2DAnimations() if(bTextAnimationAllowed || bGraphicAnimationAllowed) { - AnimatedExtractingProcessor2D aAnimatedExtractor(GetObjectContact().getViewInformation2D(), - bTextAnimationAllowed, bGraphicAnimationAllowed); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(GetObjectContact().getViewInformation2D()); + + AnimatedExtractingProcessor2D aAnimatedExtractor(aVisitingParameters, bTextAnimationAllowed, bGraphicAnimationAllowed); aAnimatedExtractor.process(mxPrimitive2DSequence); if(!aAnimatedExtractor.getPrimitive2DSequence().empty()) @@ -357,7 +359,8 @@ drawinglayer::primitive2d::Primitive2DContainer const & ViewObjectContact::getPr // always update object range when PrimitiveSequence changes const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D()); - const_cast< ViewObjectContact* >(this)->maObjectRange = mxPrimitive2DSequence.getB2DRange(rViewInformation2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + const_cast< ViewObjectContact* >(this)->maObjectRange = mxPrimitive2DSequence.getB2DRange(aVisitingParameters); // check and eventually embed to GridOffset transform primitive if(GetObjectContact().supportsGridOffsets()) @@ -417,7 +420,8 @@ drawinglayer::primitive2d::Primitive2DContainer ViewObjectContact::getPrimitive2 { // get ranges const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D()); - const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(rViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(aVisitingParameters)); const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport()); // check geometrical visibility diff --git a/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx b/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx index 0efa4c01750f..e878d4cf0b7d 100644 --- a/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx +++ b/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx @@ -108,7 +108,8 @@ namespace sdr::contact { // get range of MasterPage sub hierarchy const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D()); - const basegfx::B2DRange aSubHierarchyRange(xMasterPageSequence.getB2DRange(rViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + const basegfx::B2DRange aSubHierarchyRange(xMasterPageSequence.getB2DRange(aVisitingParameters)); if (rPageFillRange.isInside(aSubHierarchyRange)) { diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx index ef973ecea8c8..aeba359b5d8d 100644 --- a/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx +++ b/svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx @@ -382,8 +382,10 @@ drawinglayer::primitive2d::Primitive2DContainer ViewObjectContactOfPageHierarchy if(!xRetval.empty()) { // get ranges + const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D()); - const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(rViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(aVisitingParameters)); const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport()); // check geometrical visibility @@ -608,7 +610,8 @@ drawinglayer::primitive2d::Primitive2DContainer ViewObjectContactOfSdrPage::getP { // get ranges const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D()); - const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(rViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + const basegfx::B2DRange aObjectRange(xRetval.getB2DRange(aVisitingParameters)); const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport()); // check geometrical visibility diff --git a/svx/source/sdr/overlay/overlaymanager.cxx b/svx/source/sdr/overlay/overlaymanager.cxx index 6965b6a775a0..074aee96f129 100644 --- a/svx/source/sdr/overlay/overlaymanager.cxx +++ b/svx/source/sdr/overlay/overlaymanager.cxx @@ -47,9 +47,9 @@ namespace sdr::overlay const bool bIsAntiAliasing(SvtOptionsDrawinglayer::IsAntiAliasing()); // create processor + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(getCurrentViewInformation2D()); std::unique_ptr pProcessor(drawinglayer::processor2d::createProcessor2DFromOutputDevice( - rDestinationDevice, - getCurrentViewInformation2D())); + rDestinationDevice, aVisitingParameters)); for(const auto& rpOverlayObject : maOverlayObjects) { diff --git a/svx/source/sdr/overlay/overlayobject.cxx b/svx/source/sdr/overlay/overlayobject.cxx index 1be8b6f633cc..ddb289710de9 100644 --- a/svx/source/sdr/overlay/overlayobject.cxx +++ b/svx/source/sdr/overlay/overlayobject.cxx @@ -134,9 +134,9 @@ namespace sdr::overlay if(!rSequence.empty()) { const drawinglayer::geometry::ViewInformation2D aViewInformation2D(getOverlayManager()->getCurrentViewInformation2D()); - + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); const_cast< sdr::overlay::OverlayObject* >(this)->maBaseRange = - rSequence.getB2DRange(aViewInformation2D); + rSequence.getB2DRange(aVisitingParameters); } } diff --git a/svx/source/sdr/overlay/overlayobjectlist.cxx b/svx/source/sdr/overlay/overlayobjectlist.cxx index f3e9c9633ccd..cb8bdc1589e1 100644 --- a/svx/source/sdr/overlay/overlayobjectlist.cxx +++ b/svx/source/sdr/overlay/overlayobjectlist.cxx @@ -77,8 +77,9 @@ namespace sdr::overlay } const drawinglayer::geometry::ViewInformation2D& aViewInformation2D(pManager->getCurrentViewInformation2D()); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); drawinglayer::processor2d::HitTestProcessor2D aHitTestProcessor2D( - aViewInformation2D, + aVisitingParameters, rLogicPosition, fLogicTolerance, false); diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx index 9d19dd35def3..6fb42df6e48e 100644 --- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx +++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx @@ -448,9 +448,10 @@ basegfx::B2DRange getTextAnchorRange(const attribute::SdrTextAttribute& rText, // since the decompose is view-independent const uno::Sequence< beans::PropertyValue > xViewParameters; geometry::ViewInformation2D aViewInformation2D(xViewParameters); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); // get range - const basegfx::B2DRange aScaledRange(pNew->getB2DRange(aViewInformation2D)); + const basegfx::B2DRange aScaledRange(pNew->getB2DRange(aVisitingParameters)); // create left outside and right outside transformations. Also take care // of the clip rectangle @@ -495,7 +496,7 @@ basegfx::B2DRange getTextAnchorRange(const attribute::SdrTextAttribute& rText, // need the outliner for formatting (alternatively it is also possible to just add // pNew to aNewPrimitiveSequence) Primitive2DContainer aAnimSequence; - pNew->get2DDecomposition(aAnimSequence, aViewInformation2D); + pNew->get2DDecomposition(aAnimSequence, aVisitingParameters); pNew.clear(); // create a new animatedInterpolatePrimitive and add it diff --git a/svx/source/svdraw/sdrhittesthelper.cxx b/svx/source/svdraw/sdrhittesthelper.cxx index 2a93dc372555..8a56ebce5a0d 100644 --- a/svx/source/svdraw/sdrhittesthelper.cxx +++ b/svx/source/svdraw/sdrhittesthelper.cxx @@ -142,8 +142,10 @@ bool ViewObjectContactPrimitiveHit( { // create a HitTest processor const drawinglayer::geometry::ViewInformation2D& rViewInformation2D = rVOC.GetObjectContact().getViewInformation2D(); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(rViewInformation2D); + drawinglayer::processor2d::HitTestProcessor2D aHitTestProcessor2D( - rViewInformation2D, + aVisitingParameters, rHitPosition, fLogicHitTolerance, bTextOnly); diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index e7a3f18076f1..763d2973a489 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -771,9 +771,10 @@ void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const tools:: { // completely reworked to use primitives; this ensures same look and functionality const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); std::unique_ptr xProcessor( drawinglayer::processor2d::createProcessor2DFromOutputDevice(rTargetDevice, - aViewInformation2D)); + aVisitingParameters)); const bool bMapModeEnabled(rTargetDevice.IsMapModeEnabled()); const basegfx::B2DRange aRange = vcl::unotools::b2DRectangleFromRectangle(aPixRect); diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx index 15b9cc6dcfcf..91b812c73136 100644 --- a/svx/source/svdraw/svdobj.cxx +++ b/svx/source/svdraw/svdobj.cxx @@ -995,7 +995,8 @@ void SdrObject::RecalcBoundRect() // use neutral ViewInformation and get the range of the primitives const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aVisitingParameters)); if(!aRange.isEmpty()) { @@ -1195,9 +1196,10 @@ basegfx::B2DPolyPolygon SdrObject::TakeContour() const { // use neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); // create extractor, process and get result (with hairlines as opened polygons) - drawinglayer::processor2d::ContourExtractor2D aExtractor(aViewInformation2D, false); + drawinglayer::processor2d::ContourExtractor2D aExtractor(aVisitingParameters, false); aExtractor.process(xSequence); const basegfx::B2DPolyPolygonVector& rResult(aExtractor.getExtractedContour()); const sal_uInt32 nSize(rResult.size()); @@ -2372,8 +2374,10 @@ static void extractLineContourFromPrimitive2DSequence( // use neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + // create extractor, process and get result - drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aViewInformation2D); + drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aVisitingParameters); aExtractor.process(rxSequence); // copy line results diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 778ca244d63e..5821f2dbcdbf 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -150,8 +150,9 @@ void SdrGrafObj::onGraphicChanged() if (aSequence.empty()) return; - drawinglayer::geometry::ViewInformation2D aViewInformation2D; - drawinglayer::processor2d::ObjectInfoPrimitiveExtractor2D aProcessor(aViewInformation2D); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + drawinglayer::processor2d::ObjectInfoPrimitiveExtractor2D aProcessor(aVisitingParameters); aProcessor.process(aSequence); diff --git a/svx/source/svdraw/svdotxtr.cxx b/svx/source/svdraw/svdotxtr.cxx index f0abb2b9d5a2..11b077c42868 100644 --- a/svx/source/svdraw/svdotxtr.cxx +++ b/svx/source/svdraw/svdotxtr.cxx @@ -300,7 +300,8 @@ SdrObjectUniquePtr SdrTextObj::ImpConvertContainedTextToSdrPathObjs(bool bToPoly { // create an extractor with neutral ViewInformation const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - drawinglayer::processor2d::TextAsPolygonExtractor2D aExtractor(aViewInformation2D); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + drawinglayer::processor2d::TextAsPolygonExtractor2D aExtractor(aVisitingParameters); // extract text as polygons aExtractor.process(xSequence); diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx index 8881336bdcf9..c3c08a981baa 100644 --- a/svx/source/svdraw/svdxcgv.cxx +++ b/svx/source/svdraw/svdxcgv.cxx @@ -486,7 +486,8 @@ BitmapEx SdrExchangeView::GetMarkedObjBitmapEx(bool bNoVDevIfOneBmpMarked, const // get logic range const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + const basegfx::B2DRange aRange(xPrimitives.getB2DRange(aVisitingParameters)); if(!aRange.isEmpty()) { diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx index 57fd337ed7af..9afef6afdc17 100644 --- a/svx/source/unodraw/unoshape.cxx +++ b/svx/source/unodraw/unoshape.cxx @@ -721,8 +721,9 @@ uno::Any SvxShape::GetBitmap( bool bMetaFile /* = false */ ) const if(!xPrimitives.empty()) { const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); basegfx::B2DRange aRange( - xPrimitives.getB2DRange(aViewInformation2D)); + xPrimitives.getB2DRange(aVisitingParameters)); if(!aRange.isEmpty()) { diff --git a/svx/source/xoutdev/xtabdash.cxx b/svx/source/xoutdev/xtabdash.cxx index 4d0cac97b612..dbd4008aa962 100644 --- a/svx/source/xoutdev/xtabdash.cxx +++ b/svx/source/xoutdev/xtabdash.cxx @@ -137,7 +137,6 @@ BitmapEx XDashList::ImpCreateBitmapForXDash(const XDash* pDash) // prepare VirtualDevice ScopedVclPtrInstance< VirtualDevice > pVirtualDevice; - const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; pVirtualDevice->SetOutputSizePixel(aSize); pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() @@ -160,9 +159,10 @@ BitmapEx XDashList::ImpCreateBitmapForXDash(const XDash* pDash) } // create processor and draw primitives + const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); std::unique_ptr pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - *pVirtualDevice, - aNewViewInformation2D)); + *pVirtualDevice, aVisitingParameters)); const drawinglayer::primitive2d::Primitive2DContainer aSequence { aLinePrimitive }; diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx index 5010ff2e49bd..3510e164116c 100644 --- a/svx/source/xoutdev/xtabgrdt.cxx +++ b/svx/source/xoutdev/xtabgrdt.cxx @@ -175,7 +175,6 @@ BitmapEx XGradientList::CreateBitmap( tools::Long nIndex, const Size& rSize ) co // prepare VirtualDevice ScopedVclPtrInstance< VirtualDevice > pVirtualDevice; - const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; pVirtualDevice->SetOutputSizePixel(rSize); pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() @@ -183,9 +182,10 @@ BitmapEx XGradientList::CreateBitmap( tools::Long nIndex, const Size& rSize ) co : DrawModeFlags::Default); // create processor and draw primitives - std::unique_ptr pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - *pVirtualDevice, - aNewViewInformation2D)); + const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + *pVirtualDevice, aVisitingParameters); drawinglayer::primitive2d::Primitive2DContainer aSequence(2); diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx index 19bc8b737887..7f0ebf7509de 100644 --- a/svx/source/xoutdev/xtabhtch.cxx +++ b/svx/source/xoutdev/xtabhtch.cxx @@ -138,7 +138,6 @@ BitmapEx XHatchList::CreateBitmap( tools::Long nIndex, const Size& rSize) const // prepare VirtualDevice ScopedVclPtrInstance< VirtualDevice > pVirtualDevice; - const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; pVirtualDevice->SetOutputSizePixel(rSize); pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() @@ -160,9 +159,10 @@ BitmapEx XHatchList::CreateBitmap( tools::Long nIndex, const Size& rSize) const } // create processor and draw primitives - std::unique_ptr pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - *pVirtualDevice, - aNewViewInformation2D)); + const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + *pVirtualDevice, aVisitingParameters); drawinglayer::primitive2d::Primitive2DContainer aSequence(2); diff --git a/svx/source/xoutdev/xtablend.cxx b/svx/source/xoutdev/xtablend.cxx index 39a963373c71..162fab57721d 100644 --- a/svx/source/xoutdev/xtablend.cxx +++ b/svx/source/xoutdev/xtablend.cxx @@ -122,7 +122,6 @@ BitmapEx XLineEndList::CreateBitmapForUI( tools::Long nIndex ) // prepare VirtualDevice ScopedVclPtrInstance< VirtualDevice > pVirtualDevice; - const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; pVirtualDevice->SetOutputSizePixel(aSize); pVirtualDevice->SetDrawMode(rStyleSettings.GetHighContrastMode() @@ -144,9 +143,10 @@ BitmapEx XLineEndList::CreateBitmapForUI( tools::Long nIndex ) } // create processor and draw primitives - std::unique_ptr pProcessor2D(drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( - *pVirtualDevice, - aNewViewInformation2D)); + const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + *pVirtualDevice, aVisitingParameters); const drawinglayer::primitive2d::Primitive2DContainer aSequence { aLineStartEndPrimitive }; diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx index 2d19c61972f9..0827824af3e7 100644 --- a/sw/source/core/doc/notxtfrm.cxx +++ b/sw/source/core/doc/notxtfrm.cxx @@ -904,9 +904,10 @@ static bool paintUsingPrimitivesHelper( uno::Sequence< beans::PropertyValue >()); // get a primitive processor for rendering + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); std::unique_ptr pProcessor2D( drawinglayer::processor2d::createProcessor2DFromOutputDevice( - rOutputDevice, aViewInformation2D) ); + rOutputDevice, aVisitingParameters)); // render and cleanup pProcessor2D->process(rSequence); diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx index 1e9157c4c0e2..44ba36993a25 100644 --- a/sw/source/core/graphic/ndgrf.cxx +++ b/sw/source/core/graphic/ndgrf.cxx @@ -327,8 +327,9 @@ void SwGrfNode::onGraphicChanged() if(!aSequence.empty()) { - drawinglayer::geometry::ViewInformation2D aViewInformation2D; - drawinglayer::processor2d::ObjectInfoPrimitiveExtractor2D aProcessor(aViewInformation2D); + const drawinglayer::geometry::ViewInformation2D aViewInformation2D; + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); + drawinglayer::processor2d::ObjectInfoPrimitiveExtractor2D aProcessor(aVisitingParameters); aProcessor.process(aSequence); diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx index d3850ca2e2cb..a6608d6ded39 100644 --- a/sw/source/core/layout/paintfrm.cxx +++ b/sw/source/core/layout/paintfrm.cxx @@ -1796,9 +1796,10 @@ bool DrawFillAttributes( nullptr, 0.0, uno::Sequence< beans::PropertyValue >()); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation2D); std::unique_ptr pProcessor(drawinglayer::processor2d::createProcessor2DFromOutputDevice( rOut, - aViewInformation2D) ); + aVisitingParameters)); pProcessor->process(*pPrimitives); return true; } @@ -5132,9 +5133,10 @@ std::unique_ptr SwFrame::CreateProce 0.0, uno::Sequence< beans::PropertyValue >() ); - return drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + return drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( *getRootFrame()->GetCurrShell()->GetOut(), - aNewViewInfos ); + aVisitingParameters); } void SwFrame::ProcessPrimitives( const drawinglayer::primitive2d::Primitive2DContainer& rSequence ) const diff --git a/sw/source/ui/table/autoformatpreview.cxx b/sw/source/ui/table/autoformatpreview.cxx index 907e02f2fa63..153f60e8519c 100644 --- a/sw/source/ui/table/autoformatpreview.cxx +++ b/sw/source/ui/table/autoformatpreview.cxx @@ -349,9 +349,9 @@ void AutoFormatPreview::PaintCells(vcl::RenderContext& rRenderContext) return; const drawinglayer::geometry::ViewInformation2D aNewViewInformation2D; - std::unique_ptr pProcessor2D( - drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice(rRenderContext, - aNewViewInformation2D)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInformation2D); + auto pProcessor2D = drawinglayer::processor2d::createPixelProcessor2DFromOutputDevice( + rRenderContext, aVisitingParameters); if (pProcessor2D) { diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx b/sw/source/uibase/docvw/AnnotationWin2.cxx index 71a78d6fae0e..e33fc88a3af5 100644 --- a/sw/source/uibase/docvw/AnnotationWin2.cxx +++ b/sw/source/uibase/docvw/AnnotationWin2.cxx @@ -121,7 +121,9 @@ void SwAnnotationWin::PaintTile(vcl::RenderContext& rRenderContext, const tools: m_xContainer->draw(rRenderContext, rRect.TopLeft(), GetSizePixel()); const drawinglayer::geometry::ViewInformation2D aViewInformation; - std::unique_ptr pProcessor(drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aViewInformation)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aViewInformation); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + rRenderContext, aVisitingParameters); // drawinglayer sets the map mode to pixels, not needed here. rRenderContext.Pop(); @@ -210,9 +212,9 @@ void SwAnnotationWin::DrawForPage(OutputDevice* pDev, const Point& rPt) mxSidebarTextControl->DrawForPage(pDev, rPt); const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( - *pDev, aNewViewInfos )); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + *pDev, aVisitingParameters); if (mpAnchor) pProcessor->process(mpAnchor->getOverlayObjectPrimitive2DSequence()); diff --git a/sw/source/uibase/docvw/DashedLine.cxx b/sw/source/uibase/docvw/DashedLine.cxx index 629f77330aa7..327776402434 100644 --- a/sw/source/uibase/docvw/DashedLine.cxx +++ b/sw/source/uibase/docvw/DashedLine.cxx @@ -32,8 +32,8 @@ SwDashedLine::~SwDashedLine( ) void SwDashedLine::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) { const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(rRenderContext, aVisitingParameters); // Compute the start and end points const tools::Rectangle aRect(tools::Rectangle(Point(0, 0), rRenderContext.PixelToLogic(GetSizePixel()))); diff --git a/sw/source/uibase/docvw/HeaderFooterWin.cxx b/sw/source/uibase/docvw/HeaderFooterWin.cxx index d8ae3e80d062..929a919c9bbd 100644 --- a/sw/source/uibase/docvw/HeaderFooterWin.cxx +++ b/sw/source/uibase/docvw/HeaderFooterWin.cxx @@ -373,8 +373,8 @@ void SwHeaderFooterWin::PaintButton() // Create the processor and process the primitives const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*m_xVirDev, aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*m_xVirDev, aVisitingParameters); // TODO Ghost it all if needed drawinglayer::primitive2d::Primitive2DContainer aGhostedSeq(1); diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx index ec44797fbfd2..5bf3be24e63a 100644 --- a/sw/source/uibase/docvw/PageBreakWin.cxx +++ b/sw/source/uibase/docvw/PageBreakWin.cxx @@ -217,8 +217,8 @@ void SwPageBreakWin::PaintButton() // Create the processor and process the primitives const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*m_xVirDev, aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*m_xVirDev, aVisitingParameters); pProcessor->process(aGhostedSeq); diff --git a/sw/source/uibase/docvw/UnfloatTableButton.cxx b/sw/source/uibase/docvw/UnfloatTableButton.cxx index e3169581c944..3542129e790c 100644 --- a/sw/source/uibase/docvw/UnfloatTableButton.cxx +++ b/sw/source/uibase/docvw/UnfloatTableButton.cxx @@ -228,9 +228,9 @@ void UnfloatTableButton::PaintButton() // Create the processor and process the primitives const drawinglayer::geometry::ViewInformation2D aNewViewInfos; - std::unique_ptr pProcessor( - drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice(*m_xVirDev, - aNewViewInfos)); + const drawinglayer::primitive2d::VisitingParameters aVisitingParameters(aNewViewInfos); + auto pProcessor = drawinglayer::processor2d::createBaseProcessor2DFromOutputDevice( + *m_xVirDev, aVisitingParameters); pProcessor->process(aSeq); -- cgit