diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-10-25 09:54:25 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-11-08 10:40:57 +0000 |
commit | f2beebbfe78bfd5dd26318ea269f49aeee6bd642 (patch) | |
tree | afd9820842752f252409590e323f72cdbd0a4c3c | |
parent | no need to use endsWithAsciiL like this anymore (diff) | |
download | core-f2beebbfe78bfd5dd26318ea269f49aeee6bd642.tar.gz core-f2beebbfe78bfd5dd26318ea269f49aeee6bd642.zip |
reduce copying when decomposing drawinglayer primitives
instead of returning a Primitive2DContainer from each method which we
are then going to immediately append to another container, pass down a
single container by reference which we can append to
Change-Id: I0f28a499d2ec54f7111a7044c30099767aa079e1
Reviewed-on: https://gerrit.libreoffice.org/30258
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
118 files changed, 513 insertions, 755 deletions
diff --git a/drawinglayer/qa/unit/border.cxx b/drawinglayer/qa/unit/border.cxx index 7e8791d19faa..60a698927143 100644 --- a/drawinglayer/qa/unit/border.cxx +++ b/drawinglayer/qa/unit/border.cxx @@ -62,7 +62,8 @@ void DrawinglayerBorderTest::testDoubleDecompositionSolid() // Decompose it into polygons. drawinglayer::geometry::ViewInformation2D aView; - drawinglayer::primitive2d::Primitive2DContainer aContainer = aBorder->get2DDecomposition(aView); + drawinglayer::primitive2d::Primitive2DContainer aContainer; + aBorder->get2DDecomposition(aContainer, aView); // Make sure it results in two borders as it's a double one. CPPUNIT_ASSERT_EQUAL(static_cast<std::size_t>(2), aContainer.size()); diff --git a/drawinglayer/source/primitive2d/animatedprimitive2d.cxx b/drawinglayer/source/primitive2d/animatedprimitive2d.cxx index 2ea970a84ea0..713c4bd52bcd 100644 --- a/drawinglayer/source/primitive2d/animatedprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/animatedprimitive2d.cxx @@ -70,7 +70,7 @@ namespace drawinglayer return false; } - Primitive2DContainer AnimatedSwitchPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void AnimatedSwitchPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { if(!getChildren().empty()) { @@ -84,10 +84,8 @@ namespace drawinglayer } const Primitive2DReference xRef(getChildren()[nIndex], uno::UNO_QUERY_THROW); - return Primitive2DContainer { xRef }; + rContainer.push_back(xRef); } - - return Primitive2DContainer(); } // provide unique ID @@ -108,7 +106,7 @@ namespace drawinglayer { } - Primitive2DContainer AnimatedBlinkPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void AnimatedBlinkPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { if(!getChildren().empty()) { @@ -116,11 +114,9 @@ namespace drawinglayer if(fState < 0.5) { - return getChildren(); + getChildren(rContainer); } } - - return Primitive2DContainer(); } // provide unique ID @@ -151,7 +147,7 @@ namespace drawinglayer } } - Primitive2DContainer AnimatedInterpolatePrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void AnimatedInterpolatePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { const sal_uInt32 nSize(maMatrixStack.size()); @@ -198,11 +194,11 @@ namespace drawinglayer // create new transform primitive reference, return new sequence const Primitive2DReference xRef(new TransformPrimitive2D(aTargetTransform, getChildren())); - return Primitive2DContainer { xRef }; + rContainer.push_back(xRef); } else { - return getChildren(); + getChildren(rContainer); } } diff --git a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx index 7086a3cec354..20afb0df0de8 100644 --- a/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx @@ -33,17 +33,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer BackgroundColorPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void BackgroundColorPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { if(!rViewInformation.getViewport().isEmpty()) { const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(rViewInformation.getViewport())); - const Primitive2DReference xRef(new PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aOutline), getBColor())); - return Primitive2DContainer { xRef }; - } - else - { - return Primitive2DContainer(); + rContainer.push_back(new PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aOutline), getBColor())); } } @@ -75,7 +70,7 @@ namespace drawinglayer return rViewInformation.getViewport(); } - Primitive2DContainer BackgroundColorPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void BackgroundColorPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -92,7 +87,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/baseprimitive2d.cxx b/drawinglayer/source/primitive2d/baseprimitive2d.cxx index 84833c36966a..bcc96c731b8e 100644 --- a/drawinglayer/source/primitive2d/baseprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/baseprimitive2d.cxx @@ -52,18 +52,21 @@ namespace drawinglayer basegfx::B2DRange BasePrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const { - return get2DDecomposition(rViewInformation).getB2DRange(rViewInformation); + Primitive2DContainer aContainer; + get2DDecomposition(aContainer, rViewInformation); + return aContainer.getB2DRange(rViewInformation); } - Primitive2DContainer BasePrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void BasePrimitive2D::get2DDecomposition(Primitive2DContainer& /*rContainer*/, const geometry::ViewInformation2D& /*rViewInformation*/) const { - return Primitive2DContainer(); } Primitive2DSequence SAL_CALL BasePrimitive2D::getDecomposition( const uno::Sequence< beans::PropertyValue >& rViewParameters ) throw ( uno::RuntimeException, std::exception ) { const geometry::ViewInformation2D aViewInformation(rViewParameters); - return comphelper::containerToSequence(get2DDecomposition(aViewInformation)); + Primitive2DContainer aContainer; + get2DDecomposition(aContainer, aViewInformation); + return comphelper::containerToSequence(aContainer); } css::geometry::RealRectangle2D SAL_CALL BasePrimitive2D::getRange( const uno::Sequence< beans::PropertyValue >& rViewParameters ) throw ( uno::RuntimeException, std::exception ) @@ -85,9 +88,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer BufferedDecompositionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void BufferedDecompositionPrimitive2D::create2DDecomposition(Primitive2DContainer& /*rContainer*/, const geometry::ViewInformation2D& /*rViewInformation*/) const { - return Primitive2DContainer(); } BufferedDecompositionPrimitive2D::BufferedDecompositionPrimitive2D() @@ -96,17 +98,18 @@ namespace drawinglayer { } - Primitive2DContainer BufferedDecompositionPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void BufferedDecompositionPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); if(getBuffered2DDecomposition().empty()) { - const Primitive2DContainer aNewSequence(create2DDecomposition(rViewInformation)); + Primitive2DContainer aNewSequence; + create2DDecomposition(aNewSequence, rViewInformation); const_cast< BufferedDecompositionPrimitive2D* >(this)->setBuffered2DDecomposition(aNewSequence); } - return getBuffered2DDecomposition(); + rContainer.insert(rContainer.end(), getBuffered2DDecomposition().begin(), getBuffered2DDecomposition().end()); } } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx index 63736d6d2ee1..671143f309fa 100644 --- a/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/borderlineprimitive2d.cxx @@ -174,15 +174,13 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( return basegfx::B2DPolyPolygon( clipPolygon ); } - Primitive2DContainer BorderLinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void BorderLinePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - return createDecomposition(rViewInformation, false); + createDecomposition(rContainer, rViewInformation, false); } - Primitive2DContainer BorderLinePrimitive2D::createDecomposition(const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const + void BorderLinePrimitive2D::createDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const { - Primitive2DContainer xRetval; - if(!getStart().equal(getEnd()) && ( isInsideUsed() || isOutsideUsed() ) ) { // get data and vectors @@ -199,8 +197,6 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( const basegfx::B2DPoint aTmpStart(getStart() - (fExt * aVector)); const basegfx::B2DPoint aTmpEnd(getEnd() + (fExt * aVector)); - xRetval.resize(2); - double fLeftWidth = getLeftWidth(); bool bLeftHairline = lcl_UseHairline(fLeftWidth, getStart(), getEnd(), rViewInformation); if (bLeftHairline) @@ -214,25 +210,25 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( // "inside" line if (bLeftHairline) - xRetval[0] = makeHairLinePrimitive( - getStart(), getEnd(), aVector, getRGBColorLeft(), 0.0); + rContainer.push_back(makeHairLinePrimitive( + getStart(), getEnd(), aVector, getRGBColorLeft(), 0.0)); else { double fWidth = bPixelCorrection ? std::round(fLeftWidth) : fLeftWidth; - xRetval[0] = makeSolidLinePrimitive( - aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fWidth, -fLeftWidth/2.0); + rContainer.push_back(makeSolidLinePrimitive( + aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorLeft(), fWidth, -fLeftWidth/2.0)); } // "outside" line if (bRightHairline) - xRetval[1] = makeHairLinePrimitive( - getStart(), getEnd(), aVector, getRGBColorRight(), fLeftWidth+mfDistance); + rContainer.push_back(makeHairLinePrimitive( + getStart(), getEnd(), aVector, getRGBColorRight(), fLeftWidth+mfDistance)); else { double fWidth = bPixelCorrection ? std::round(fRightWidth) : fRightWidth; - xRetval[1] = makeSolidLinePrimitive( - aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fWidth, mfDistance+fRightWidth/2.0); + rContainer.push_back(makeSolidLinePrimitive( + aClipRegion, aTmpStart, aTmpEnd, aVector, getRGBColorRight(), fWidth, mfDistance+fRightWidth/2.0)); } } else @@ -263,8 +259,7 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( aPolygon.append( getStart() ); aPolygon.append( getEnd() ); - xRetval.resize(1); - xRetval[0] = Primitive2DReference(new PolygonHairlinePrimitive2D( + rContainer.push_back(new PolygonHairlinePrimitive2D( aPolygon, aColor)); } @@ -300,7 +295,6 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( } sal_uInt32 n = aDashed.count(); - xRetval.resize(n); for (sal_uInt32 i = 0; i < n; ++i) { basegfx::B2DPolygon aDash = aDashed.getB2DPolygon(i); @@ -311,20 +305,18 @@ primitive2d::Primitive2DReference makeSolidLinePrimitive( basegfx::B2DRange aRange = aDash.getB2DRange(); aDash2.append(basegfx::B2DPoint(aRange.getMinX(), aRange.getMinY())); aDash2.append(basegfx::B2DPoint(aRange.getMaxX(), aRange.getMinY())); - xRetval[i] = Primitive2DReference( + rContainer.push_back( new PolygonHairlinePrimitive2D(aDash2, aColor)); } else { - xRetval[i] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aDash), aColor)); } } } } } - - return xRetval; } BorderLinePrimitive2D::BorderLinePrimitive2D( diff --git a/drawinglayer/source/primitive2d/controlprimitive2d.cxx b/drawinglayer/source/primitive2d/controlprimitive2d.cxx index 6a62af0ad014..8a06c039a235 100644 --- a/drawinglayer/source/primitive2d/controlprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/controlprimitive2d.cxx @@ -237,7 +237,7 @@ namespace drawinglayer return xRetval; } - Primitive2DContainer ControlPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ControlPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // try to create a bitmap decomposition. If that fails for some reason, // at least create a replacement decomposition. @@ -248,7 +248,7 @@ namespace drawinglayer xReference = createPlaceholderDecomposition(rViewInformation); } - return Primitive2DContainer { xReference }; + rContainer.push_back(xReference); } ControlPrimitive2D::ControlPrimitive2D( @@ -329,7 +329,7 @@ namespace drawinglayer return aRetval; } - Primitive2DContainer ControlPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ControlPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // this primitive is view-dependent related to the scaling. If scaling has changed, // destroy existing decomposition. To detect change, use size of unit size in view coordinates @@ -352,7 +352,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/cropprimitive2d.cxx b/drawinglayer/source/primitive2d/cropprimitive2d.cxx index 65648537dde0..c3644e269fd2 100644 --- a/drawinglayer/source/primitive2d/cropprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/cropprimitive2d.cxx @@ -66,10 +66,8 @@ namespace drawinglayer return false; } - Primitive2DContainer CropPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void CropPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; - if(!getChildren().empty()) { // get original object scale in unit coordinates (no mirroring) @@ -128,7 +126,7 @@ namespace drawinglayer { // the new range is completely inside the old range (unit range), // so no masking is needed - xRetval = Primitive2DContainer { xTransformPrimitive }; + rContainer.push_back(xTransformPrimitive); } else { @@ -142,13 +140,11 @@ namespace drawinglayer aMaskPolyPolygon, Primitive2DContainer { xTransformPrimitive })); - xRetval = Primitive2DContainer { xMask }; + rContainer.push_back(xMask); } } } } - - return xRetval; } // provide unique ID diff --git a/drawinglayer/source/primitive2d/discretebitmapprimitive2d.cxx b/drawinglayer/source/primitive2d/discretebitmapprimitive2d.cxx index 6f8fc6274401..5d6310d8cb1a 100644 --- a/drawinglayer/source/primitive2d/discretebitmapprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/discretebitmapprimitive2d.cxx @@ -26,12 +26,11 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer DiscreteBitmapPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void DiscreteBitmapPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // use getViewTransformation() and getObjectTransformation() from // ObjectAndViewTransformationDependentPrimitive2D to create a BitmapPrimitive2D // with the correct mapping - Primitive2DContainer xRetval; if(!getBitmapEx().IsEmpty()) { @@ -65,11 +64,8 @@ namespace drawinglayer aObjectTransform = aInverseObjectTransformation * aObjectTransform; // create BitmapPrimitive2D with now object-local coordinate data - const Primitive2DReference xRef(new BitmapPrimitive2D(getBitmapEx(), aObjectTransform)); - xRetval = Primitive2DContainer { xRef }; + rContainer.push_back(new BitmapPrimitive2D(getBitmapEx(), aObjectTransform)); } - - return xRetval; } DiscreteBitmapPrimitive2D::DiscreteBitmapPrimitive2D( diff --git a/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx b/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx index b4cb1f4ee3a9..95acd391f4cf 100644 --- a/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/discreteshadowprimitive2d.cxx @@ -161,7 +161,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer DiscreteShadowPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void DiscreteShadowPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DContainer xRetval; @@ -259,15 +259,11 @@ namespace drawinglayer fBorderY + fSingleY))); // put all in object transformation to get to target positions - const Primitive2DReference xTransformed( + rContainer.push_back( new TransformPrimitive2D( getTransform(), xRetval)); - - xRetval = Primitive2DContainer { xTransformed }; } - - return xRetval; } DiscreteShadowPrimitive2D::DiscreteShadowPrimitive2D( diff --git a/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx b/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx index 4cca95c15fda..8b557ceb83c3 100644 --- a/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx @@ -63,15 +63,13 @@ namespace drawinglayer return !maShadowPrimitives.empty(); } - Primitive2DContainer Embedded3DPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void Embedded3DPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // use info to create a yellow 2d rectangle, similar to empty 3d scenes and/or groups const basegfx::B2DRange aLocal2DRange(getB2DRange(rViewInformation)); const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aLocal2DRange)); const basegfx::BColor aYellow(1.0, 1.0, 0.0); - const Primitive2DReference xRef(new PolygonHairlinePrimitive2D(aOutline, aYellow)); - - return Primitive2DContainer { xRef }; + rContainer.push_back(new PolygonHairlinePrimitive2D(aOutline, aYellow)); } Embedded3DPrimitive2D::Embedded3DPrimitive2D( diff --git a/drawinglayer/source/primitive2d/epsprimitive2d.cxx b/drawinglayer/source/primitive2d/epsprimitive2d.cxx index 6d29e7a5afbb..197a0b1d9032 100644 --- a/drawinglayer/source/primitive2d/epsprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/epsprimitive2d.cxx @@ -25,9 +25,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer EpsPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void EpsPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; const GDIMetaFile& rSubstituteContent = getMetaFile(); if( rSubstituteContent.GetActionSize() ) @@ -35,15 +34,12 @@ namespace drawinglayer // the default decomposition will use the Metafile replacement visualisation. // To really use the Eps data, a renderer has to know and interpret this primitive // directly. - xRetval.resize(1); - xRetval[0] = Primitive2DReference( + rContainer.push_back( new MetafilePrimitive2D( getEpsTransform(), rSubstituteContent)); } - - return xRetval; } EpsPrimitive2D::EpsPrimitive2D( diff --git a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx index 4fba3c8c24b8..1848d0165369 100644 --- a/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx @@ -148,17 +148,14 @@ namespace drawinglayer } } - Primitive2DContainer FillGradientPrimitive2D::createOverlappingFill( + void FillGradientPrimitive2D::createOverlappingFill( + Primitive2DContainer& rContainer, const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, const basegfx::BColor& rOuterColor, const basegfx::B2DPolygon& rUnitPolygon) const { - // prepare return value - Primitive2DContainer aRetval; - aRetval.resize(rEntries.size() + 1); - // create solid fill with outmost color - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon( basegfx::tools::createPolygonFromRect(getOutputRange())), @@ -173,24 +170,19 @@ namespace drawinglayer aNewPoly.transform(rEntries[a].maB2DHomMatrix); // create solid fill - aRetval[a + 1] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon(aNewPoly), rEntries[a].maBColor)); } - - return aRetval; } - Primitive2DContainer FillGradientPrimitive2D::createNonOverlappingFill( + void FillGradientPrimitive2D::createNonOverlappingFill( + Primitive2DContainer& rContainer, const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, const basegfx::BColor& rOuterColor, const basegfx::B2DPolygon& rUnitPolygon) const { - // prepare return value - Primitive2DContainer aRetval; - aRetval.resize(rEntries.size() + 1); - // get outmost visible range from object basegfx::B2DRange aOutmostRange(getOutputRange()); basegfx::B2DPolyPolygon aCombinedPolyPoly; @@ -207,7 +199,7 @@ namespace drawinglayer // add outmost range to combined polypolygon (in 1st place), create first primitive aCombinedPolyPoly.insert(0, basegfx::tools::createPolygonFromRect(aOutmostRange)); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D( aCombinedPolyPoly, rOuterColor)); @@ -226,7 +218,7 @@ namespace drawinglayer aCombinedPolyPoly.append(aNextPoly); // create primitive with correct color - aRetval[a + 1] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D( aCombinedPolyPoly, rEntries[a].maBColor)); @@ -236,16 +228,14 @@ namespace drawinglayer } // add last inner polygon with last color - aRetval[rEntries.size()] = Primitive2DReference( + rContainer.push_back( new PolyPolygonColorPrimitive2D( aCombinedPolyPoly, rEntries[rEntries.size() - 1].maBColor)); } - - return aRetval; } - Primitive2DContainer FillGradientPrimitive2D::createFill(bool bOverlapping) const + void FillGradientPrimitive2D::createFill(Primitive2DContainer& rContainer, bool bOverlapping) const { // prepare shape of the Unit Polygon basegfx::B2DPolygon aUnitPolygon; @@ -274,15 +264,15 @@ namespace drawinglayer if(bOverlapping) { - return createOverlappingFill(aEntries, aOuterColor, aUnitPolygon); + createOverlappingFill(rContainer, aEntries, aOuterColor, aUnitPolygon); } else { - return createNonOverlappingFill(aEntries, aOuterColor, aUnitPolygon); + createNonOverlappingFill(rContainer, aEntries, aOuterColor, aUnitPolygon); } } - Primitive2DContainer FillGradientPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void FillGradientPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // default creates overlapping fill which works with AntiAliasing and without. // The non-overlapping version does not create single filled polygons, but @@ -295,11 +285,7 @@ namespace drawinglayer { static bool bOverlapping(true); // allow to test non-overlapping in the debugger - return createFill(bOverlapping); - } - else - { - return Primitive2DContainer(); + createFill(rContainer, bOverlapping); } } diff --git a/drawinglayer/source/primitive2d/fillgraphicprimitive2d.cxx b/drawinglayer/source/primitive2d/fillgraphicprimitive2d.cxx index f90c9239de55..4f658322aab0 100644 --- a/drawinglayer/source/primitive2d/fillgraphicprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/fillgraphicprimitive2d.cxx @@ -37,9 +37,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer FillGraphicPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void FillGraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; const attribute::FillGraphicAttribute& rAttribute = getFillGraphic(); if(!rAttribute.isDefault()) @@ -64,18 +63,18 @@ namespace drawinglayer // get matrices and realloc retval aTiling.appendTransformations(aMatrices); - aRetval.resize(aMatrices.size()); // prepare content primitive - const Primitive2DContainer xSeq = create2DDecompositionOfGraphic( + Primitive2DContainer xSeq; + create2DDecompositionOfGraphic(xSeq, rGraphic, basegfx::B2DHomMatrix()); for(size_t a(0); a < aMatrices.size(); a++) { - aRetval[a] = new TransformPrimitive2D( + rContainer.push_back(new TransformPrimitive2D( getTransformation() * aMatrices[a], - xSeq); + xSeq)); } } else @@ -86,15 +85,13 @@ namespace drawinglayer rAttribute.getGraphicRange().getRange(), rAttribute.getGraphicRange().getMinimum())); - aRetval = create2DDecompositionOfGraphic( + create2DDecompositionOfGraphic(rContainer, rGraphic, aObjectTransform); } } } } - - return aRetval; } FillGraphicPrimitive2D::FillGraphicPrimitive2D( diff --git a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx index 5e4a7cc4ae8c..c5eb9139993a 100644 --- a/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx @@ -35,10 +35,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer FillHatchPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void FillHatchPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; - if(!getFillHatch().isDefault()) { // create hatch @@ -103,17 +101,15 @@ namespace drawinglayer // prepare return value const bool bFillBackground(getFillHatch().isFillBackground()); - aRetval.resize(bFillBackground ? aMatrices.size() + 1L : aMatrices.size()); // evtl. create filled background if(bFillBackground) { // create primitive for background - const Primitive2DReference xRef( + rContainer.push_back( new PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon( basegfx::tools::createPolygonFromRect(getOutputRange())), getBColor())); - aRetval[0] = xRef; } // create primitives @@ -129,12 +125,9 @@ namespace drawinglayer aNewLine.append(rMatrix * aEnd); // create hairline - const Primitive2DReference xRef(new PolygonHairlinePrimitive2D(aNewLine, aHatchColor)); - aRetval[bFillBackground ? (a + 1) : a] = xRef; + rContainer.push_back(new PolygonHairlinePrimitive2D(aNewLine, aHatchColor)); } } - - return aRetval; } FillHatchPrimitive2D::FillHatchPrimitive2D( @@ -183,7 +176,7 @@ namespace drawinglayer return getOutputRange(); } - Primitive2DContainer FillHatchPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void FillHatchPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); bool bAdaptDistance(0 != getFillHatch().getMinimalDiscreteDistance()); @@ -191,12 +184,12 @@ namespace drawinglayer if(bAdaptDistance) { // behave view-dependent - return DiscreteMetricDependentPrimitive2D::get2DDecomposition(rViewInformation); + DiscreteMetricDependentPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } else { // behave view-independent - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } diff --git a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx index 94ae60c058a3..e0b344a32130 100644 --- a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx @@ -32,15 +32,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer GraphicPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& - ) const + void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& ) const { - Primitive2DContainer aRetval; - if(255L == getGraphicAttr().GetTransparency()) { // content is invisible, done - return aRetval; + return; } // do not apply mirroring from GraphicAttr to the Metafile by calling @@ -106,14 +103,16 @@ namespace drawinglayer // create sub-content; helper takes care of correct handling of // bitmap, svg or metafile content - aRetval = create2DDecompositionOfGraphic( + Primitive2DContainer aRetval; + create2DDecompositionOfGraphic( + aRetval, aTransformedGraphic, aTransform); if(!aRetval.size()) { // content is invisible, done - return aRetval; + return; } if(isAdjusted || isDrawMode) @@ -134,7 +133,7 @@ namespace drawinglayer if(!aRetval.size()) { // content is invisible, done - return aRetval; + return; } } @@ -182,7 +181,7 @@ namespace drawinglayer aRetval = Primitive2DContainer { xPrimitive }; } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } GraphicPrimitive2D::GraphicPrimitive2D( diff --git a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx index 5c278a553542..4c48cf70b815 100644 --- a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx @@ -323,7 +323,7 @@ namespace drawinglayer virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; /// override to deliver the correct expected frame dependent of timing - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; AnimatedGraphicPrimitive2D::AnimatedGraphicPrimitive2D( @@ -392,11 +392,11 @@ namespace drawinglayer && getGraphic() == pCompare->getGraphic()); } - Primitive2DContainer AnimatedGraphicPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void AnimatedGraphicPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { if (isValidData()) { - Primitive2DContainer aRetval(1); + Primitive2DReference aRetval; const double fState(getAnimationEntry().getStateAtTime(rViewInformation.getViewTime())); const sal_uInt32 nLen(maAnimation.Count()); sal_uInt32 nIndex(basegfx::fround(fState * (double)nLen)); @@ -409,11 +409,12 @@ namespace drawinglayer } // check buffering shortcuts, may already be created - aRetval[0] = tryTogetFromBuffer(nIndex); + aRetval = tryTogetFromBuffer(nIndex); - if (aRetval[0].is()) + if (aRetval.is()) { - return aRetval; + rContainer.push_back(aRetval); + return; } // if huge size (and not the buffered 1st frame) simply @@ -427,20 +428,19 @@ namespace drawinglayer const_cast<AnimatedGraphicPrimitive2D*>(this)->createFrame(nIndex); // try to get from buffer again, may have been added from createFrame - aRetval[0] = tryTogetFromBuffer(nIndex); + aRetval = tryTogetFromBuffer(nIndex); - if (aRetval[0].is()) + if (aRetval.is()) { - return aRetval; + rContainer.push_back(aRetval); + return; } // did not work (not buffered and not 1st frame), create from buffer - aRetval[0] = createFromBuffer(); + aRetval = createFromBuffer(); - return aRetval; + rContainer.push_back(aRetval); } - - return Primitive2DContainer(); } } // end of namespace primitive2d @@ -450,7 +450,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer create2DDecompositionOfGraphic( + void create2DDecompositionOfGraphic( + Primitive2DContainer& rContainer, const Graphic& rGraphic, const basegfx::B2DHomMatrix& rTransform) { @@ -546,7 +547,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } Primitive2DContainer create2DColorModifierEmbeddingsAsNeeded( diff --git a/drawinglayer/source/primitive2d/gridprimitive2d.cxx b/drawinglayer/source/primitive2d/gridprimitive2d.cxx index a74735c909d3..49594f455426 100644 --- a/drawinglayer/source/primitive2d/gridprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/gridprimitive2d.cxx @@ -33,10 +33,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer GridPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void GridPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - Primitive2DContainer aRetval; - if(!rViewInformation.getViewport().isEmpty() && getWidth() > 0.0 && getHeight() > 0.0) { // decompose grid matrix to get logic size @@ -229,15 +227,11 @@ namespace drawinglayer // prepare return value const sal_uInt32 nCountPoint(aPositionsPoint.size()); const sal_uInt32 nCountCross(aPositionsCross.size()); - const sal_uInt32 nRetvalCount((nCountPoint ? 1 : 0) + (nCountCross ? 1 : 0)); - sal_uInt32 nInsertCounter(0); - - aRetval.resize(nRetvalCount); // add PointArrayPrimitive2D if point markers were added if(nCountPoint) { - aRetval[nInsertCounter++] = Primitive2DReference(new PointArrayPrimitive2D(aPositionsPoint, getBColor())); + rContainer.push_back(new PointArrayPrimitive2D(aPositionsPoint, getBColor())); } // add MarkerArrayPrimitive2D if cross markers were added @@ -247,17 +241,15 @@ namespace drawinglayer { // no subdivisions, so fall back to points at grid positions, no need to // visualize a difference between divisions and sub-divisions - aRetval[nInsertCounter++] = Primitive2DReference(new PointArrayPrimitive2D(aPositionsCross, getBColor())); + rContainer.push_back(new PointArrayPrimitive2D(aPositionsCross, getBColor())); } else { - aRetval[nInsertCounter++] = Primitive2DReference(new MarkerArrayPrimitive2D(aPositionsCross, getCrossMarker())); + rContainer.push_back(new MarkerArrayPrimitive2D(aPositionsCross, getCrossMarker())); } } } } - - return aRetval; } GridPrimitive2D::GridPrimitive2D( @@ -317,7 +309,7 @@ namespace drawinglayer return aUnitRange; } - Primitive2DContainer GridPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void GridPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -338,7 +330,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/groupprimitive2d.cxx b/drawinglayer/source/primitive2d/groupprimitive2d.cxx index b5582a0a3e08..fb3f6b9b794c 100644 --- a/drawinglayer/source/primitive2d/groupprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/groupprimitive2d.cxx @@ -51,9 +51,9 @@ namespace drawinglayer } /// default: just return children, so all renderers not supporting group will use its content - Primitive2DContainer GroupPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void GroupPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - return getChildren(); + getChildren(rContainer); } sal_Int64 SAL_CALL GroupPrimitive2D::estimateUsage() diff --git a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx index d51c4db65a52..b8cc0df1eafe 100644 --- a/drawinglayer/source/primitive2d/helplineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/helplineprimitive2d.cxx @@ -33,10 +33,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer HelplinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void HelplinePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - std::vector< BasePrimitive2D* > aTempPrimitiveTarget; - if(!rViewInformation.getViewport().isEmpty() && !getDirection().equalZero()) { // position to view coordinates, DashLen and DashLen in logic @@ -57,7 +55,7 @@ namespace drawinglayer aLineA.append(aEndA); aLineA.transform(rViewInformation.getInverseObjectToViewTransformation()); PolygonMarkerPrimitive2D* pNewA = new PolygonMarkerPrimitive2D(aLineA, getRGBColA(), getRGBColB(), getDiscreteDashLength()); - aTempPrimitiveTarget.push_back(pNewA); + rContainer.push_back(pNewA); const basegfx::B2DVector aPerpendicularNormalizedDirection(basegfx::getPerpendicular(aNormalizedDirection)); const basegfx::B2DPoint aStartB(aViewPosition - aPerpendicularNormalizedDirection); @@ -67,7 +65,7 @@ namespace drawinglayer aLineB.append(aEndB); aLineB.transform(rViewInformation.getInverseObjectToViewTransformation()); PolygonMarkerPrimitive2D* pNewB = new PolygonMarkerPrimitive2D(aLineB, getRGBColA(), getRGBColB(), getDiscreteDashLength()); - aTempPrimitiveTarget.push_back(pNewB); + rContainer.push_back(pNewB); break; } @@ -118,7 +116,7 @@ namespace drawinglayer basegfx::B2DPolygon aPart(aResult.getB2DPolygon(a)); aPart.transform(rViewInformation.getInverseObjectToViewTransformation()); PolygonMarkerPrimitive2D* pNew = new PolygonMarkerPrimitive2D(aPart, getRGBColA(), getRGBColB(), getDiscreteDashLength()); - aTempPrimitiveTarget.push_back(pNew); + rContainer.push_back(pNew); } } @@ -126,17 +124,6 @@ namespace drawinglayer } } } - - // prepare return value - Primitive2DContainer aRetval(aTempPrimitiveTarget.size()); - - for(size_t a(0); a < aTempPrimitiveTarget.size(); a++) - { - const Primitive2DReference xRef(aTempPrimitiveTarget[a]); - aRetval[a] = xRef; - } - - return aRetval; } HelplinePrimitive2D::HelplinePrimitive2D( @@ -175,7 +162,7 @@ namespace drawinglayer return false; } - Primitive2DContainer HelplinePrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void HelplinePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -196,7 +183,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx b/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx index 7fa01510a813..f437a3fa8a0c 100644 --- a/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/hiddengeometryprimitive2d.cxx @@ -39,9 +39,8 @@ namespace drawinglayer return getChildren().getB2DRange(rViewInformation); } - Primitive2DContainer HiddenGeometryPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void HiddenGeometryPrimitive2D::get2DDecomposition(Primitive2DContainer& /*rContainer*/, const geometry::ViewInformation2D& /*rViewInformation*/) const { - return Primitive2DContainer(); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/markerarrayprimitive2d.cxx b/drawinglayer/source/primitive2d/markerarrayprimitive2d.cxx index 465ea68a093d..f7d4e619488d 100644 --- a/drawinglayer/source/primitive2d/markerarrayprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/markerarrayprimitive2d.cxx @@ -34,9 +34,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer MarkerArrayPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void MarkerArrayPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - Primitive2DContainer xRetval; const std::vector< basegfx::B2DPoint >& rPositions = getPositions(); const sal_uInt32 nMarkerCount(rPositions.size()); @@ -54,9 +53,6 @@ namespace drawinglayer // use half size for expand aLogicHalfSize *= 0.5; - // number of primitives is known; realloc accordingly - xRetval.resize(nMarkerCount); - for(sal_uInt32 a(0); a < nMarkerCount; a++) { const basegfx::B2DPoint& rPosition(rPositions[a]); @@ -68,12 +64,10 @@ namespace drawinglayer aTransform.set(0, 2, aRange.getMinX()); aTransform.set(1, 2, aRange.getMinY()); - xRetval[a] = Primitive2DReference(new BitmapPrimitive2D(getMarker(), aTransform)); + rContainer.push_back(new BitmapPrimitive2D(getMarker(), aTransform)); } } } - - return xRetval; } MarkerArrayPrimitive2D::MarkerArrayPrimitive2D( diff --git a/drawinglayer/source/primitive2d/mediaprimitive2d.cxx b/drawinglayer/source/primitive2d/mediaprimitive2d.cxx index 620ecdfe1a11..0578907ab340 100644 --- a/drawinglayer/source/primitive2d/mediaprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/mediaprimitive2d.cxx @@ -33,7 +33,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer MediaPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void MediaPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { Primitive2DContainer xRetval; xRetval.resize(1); @@ -90,7 +90,7 @@ namespace drawinglayer } } - return xRetval; + rContainer.insert(rContainer.end(), xRetval.begin(), xRetval.end()); } MediaPrimitive2D::MediaPrimitive2D( diff --git a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx index de1c22bba9b0..00cfdbfe72ea 100644 --- a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx @@ -528,7 +528,7 @@ namespace drawinglayer { protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition( + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: @@ -541,16 +541,13 @@ namespace drawinglayer } }; - Primitive2DContainer NonOverlappingFillGradientPrimitive2D::create2DDecomposition( + void NonOverlappingFillGradientPrimitive2D::create2DDecomposition( + Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getFillGradient().isDefault()) { - return createFill(false); - } - else - { - return Primitive2DContainer(); + createFill(rContainer, false); } } } // end of namespace primitive2d @@ -3165,7 +3162,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer MetafilePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void MetafilePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // prepare target and porperties; each will have one default entry TargetHolders aTargetHolders; @@ -3214,7 +3211,7 @@ namespace drawinglayer xRetval = Primitive2DContainer { aEmbeddedTransform }; } - return xRetval; + rContainer.insert(rContainer.end(), xRetval.begin(), xRetval.end()); } MetafilePrimitive2D::MetafilePrimitive2D( diff --git a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx index 5cb7232e9af0..1b8c941537e7 100644 --- a/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx @@ -33,9 +33,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PagePreviewPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void PagePreviewPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - Primitive2DContainer xRetval; Primitive2DContainer aContent(getPageContent()); if(!aContent.empty() @@ -98,12 +97,9 @@ namespace drawinglayer aPageTrans = aCombined * aPageTrans; // embed in necessary transformation to map from SdrPage to SdrPageObject - const Primitive2DReference xReferenceB(new TransformPrimitive2D(aPageTrans, aContent)); - xRetval = Primitive2DContainer { xReferenceB }; + rContainer.push_back(new TransformPrimitive2D(aPageTrans, aContent)); } } - - return xRetval; } PagePreviewPrimitive2D::PagePreviewPrimitive2D( diff --git a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx index 82d397d2c293..7faa924fb529 100644 --- a/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/patternfillprimitive2d.cxx @@ -159,7 +159,7 @@ namespace drawinglayer return aContent; } - Primitive2DContainer PatternFillPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void PatternFillPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { Primitive2DContainer aRetval; @@ -208,19 +208,15 @@ namespace drawinglayer // embed result in mask { - const Primitive2DReference xRef( + rContainer.push_back( new MaskPrimitive2D( getMask(), aRetval)); - - aRetval = Primitive2DContainer { xRef }; } } } } - - return aRetval; } PatternFillPrimitive2D::PatternFillPrimitive2D( @@ -255,7 +251,7 @@ namespace drawinglayer return getMask().getB2DRange(); } - Primitive2DContainer PatternFillPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void PatternFillPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // The existing bufferd decomposition uses a buffer in the remembered // size or none if sizes are zero. Get new needed sizes which depend on @@ -311,7 +307,7 @@ namespace drawinglayer } // call parent - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } sal_Int64 SAL_CALL PatternFillPrimitive2D::estimateUsage() diff --git a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx index 76fc498d34d5..2ebd32a4f5e0 100644 --- a/drawinglayer/source/primitive2d/polygonprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/polygonprimitive2d.cxx @@ -91,7 +91,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolygonMarkerPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void PolygonMarkerPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // calculate logic DashLength const basegfx::B2DVector aDashVector(rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(getDiscreteDashLength(), 0.0)); @@ -108,18 +108,12 @@ namespace drawinglayer aDash.push_back(fLogicDashLength); basegfx::tools::applyLineDashing(getB2DPolygon(), aDash, &aDashedPolyPolyA, &aDashedPolyPolyB, 2.0 * fLogicDashLength); - // prepare return value - Primitive2DContainer aRetval(2); - - aRetval[0] = Primitive2DReference(new PolyPolygonHairlinePrimitive2D(aDashedPolyPolyA, getRGBColorA())); - aRetval[1] = Primitive2DReference(new PolyPolygonHairlinePrimitive2D(aDashedPolyPolyB, getRGBColorB())); - - return aRetval; + rContainer.push_back(new PolyPolygonHairlinePrimitive2D(aDashedPolyPolyA, getRGBColorA())); + rContainer.push_back(new PolyPolygonHairlinePrimitive2D(aDashedPolyPolyB, getRGBColorB())); } else { - const Primitive2DReference xRef(new PolygonHairlinePrimitive2D(getB2DPolygon(), getRGBColorA())); - return Primitive2DContainer { xRef }; + rContainer.push_back(new PolygonHairlinePrimitive2D(getB2DPolygon(), getRGBColorA())); } } @@ -174,7 +168,7 @@ namespace drawinglayer return aRetval; } - Primitive2DContainer PolygonMarkerPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void PolygonMarkerPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); bool bNeedNewDecomposition(false); @@ -201,7 +195,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID @@ -222,7 +216,7 @@ namespace drawinglayer namespace primitive2d { - Primitive2DContainer PolygonStrokePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolygonStrokePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(getB2DPolygon().count()) { @@ -267,9 +261,6 @@ namespace drawinglayer fMiterMinimumAngle)); } - // prepare return value - Primitive2DContainer aRetval(aAreaPolyPolygon.count()); - // create primitive for(sal_uInt32 b(0L); b < aAreaPolyPolygon.count(); b++) { @@ -281,27 +272,17 @@ namespace drawinglayer const basegfx::BColor aColor(bTestByUsingRandomColor ? basegfx::BColor(tools::getRandomColorRange(), tools::getRandomColorRange(), tools::getRandomColorRange()) : getLineAttribute().getColor()); - const Primitive2DReference xRef(new PolyPolygonColorPrimitive2D(aNewPolyPolygon, aColor)); - aRetval[b] = xRef; + rContainer.push_back(new PolyPolygonColorPrimitive2D(aNewPolyPolygon, aColor)); } - - return aRetval; } else { - // prepare return value - const Primitive2DReference xRef( + rContainer.push_back( new PolyPolygonHairlinePrimitive2D( aHairLinePolyPolygon, getLineAttribute().getColor())); - - return Primitive2DContainer { xRef }; } } - else - { - return Primitive2DContainer(); - } } PolygonStrokePrimitive2D::PolygonStrokePrimitive2D( @@ -410,10 +391,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolygonWavePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolygonWavePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; - if(getB2DPolygon().count()) { const bool bHasWidth(!basegfx::fTools::equalZero(getWaveWidth())); @@ -423,18 +402,14 @@ namespace drawinglayer { // create waveline curve const basegfx::B2DPolygon aWaveline(basegfx::tools::createWaveline(getB2DPolygon(), getWaveWidth(), getWaveHeight())); - const Primitive2DReference xRef(new PolygonStrokePrimitive2D(aWaveline, getLineAttribute(), getStrokeAttribute())); - aRetval = Primitive2DContainer { xRef }; + rContainer.push_back(new PolygonStrokePrimitive2D(aWaveline, getLineAttribute(), getStrokeAttribute())); } else { // flat waveline, decompose to simple line primitive - const Primitive2DReference xRef(new PolygonStrokePrimitive2D(getB2DPolygon(), getLineAttribute(), getStrokeAttribute())); - aRetval = Primitive2DContainer { xRef }; + rContainer.push_back(new PolygonStrokePrimitive2D(getB2DPolygon(), getLineAttribute(), getStrokeAttribute())); } } - - return aRetval; } PolygonWavePrimitive2D::PolygonWavePrimitive2D( @@ -522,7 +497,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolygonStrokeArrowPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolygonStrokeArrowPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // copy local polygon, it may be changed basegfx::B2DPolygon aLocalPolygon(getB2DPolygon()); @@ -569,33 +544,24 @@ namespace drawinglayer } } - // prepare return value - Primitive2DContainer aRetval(1L + (aArrowA.count() ? 1L : 0L) + (aArrowB.count() ? 1L : 0L)); - sal_uInt32 nInd(0L); - // add shaft - const Primitive2DReference xRefShaft(new + rContainer.push_back(new PolygonStrokePrimitive2D( aLocalPolygon, getLineAttribute(), getStrokeAttribute())); - aRetval[nInd++] = xRefShaft; if(aArrowA.count()) { - const Primitive2DReference xRefA( + rContainer.push_back( new PolyPolygonColorPrimitive2D( aArrowA, getLineAttribute().getColor())); - aRetval[nInd++] = xRefA; } if(aArrowB.count()) { - const Primitive2DReference xRefB( + rContainer.push_back( new PolyPolygonColorPrimitive2D( aArrowB, getLineAttribute().getColor())); - aRetval[nInd++] = xRefB; } - - return aRetval; } PolygonStrokeArrowPrimitive2D::PolygonStrokeArrowPrimitive2D( diff --git a/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx b/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx index 921359608e2a..87bdcb4dc2e5 100644 --- a/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx @@ -40,25 +40,17 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonHairlinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonHairlinePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { const basegfx::B2DPolyPolygon aPolyPolygon(getB2DPolyPolygon()); const sal_uInt32 nCount(aPolyPolygon.count()); if(nCount) { - Primitive2DContainer aRetval(nCount); - for(sal_uInt32 a(0L); a < nCount; a++) { - aRetval[a] = Primitive2DReference(new PolygonHairlinePrimitive2D(aPolyPolygon.getB2DPolygon(a), getBColor())); + rContainer.push_back(new PolygonHairlinePrimitive2D(aPolyPolygon.getB2DPolygon(a), getBColor())); } - - return aRetval; - } - else - { - return Primitive2DContainer(); } } @@ -99,30 +91,22 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonMarkerPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonMarkerPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { const basegfx::B2DPolyPolygon aPolyPolygon(getB2DPolyPolygon()); const sal_uInt32 nCount(aPolyPolygon.count()); if(nCount) { - Primitive2DContainer aRetval(nCount); - for(sal_uInt32 a(0L); a < nCount; a++) { - aRetval[a] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aPolyPolygon.getB2DPolygon(a), getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); } - - return aRetval; - } - else - { - return Primitive2DContainer(); } } @@ -171,27 +155,19 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonStrokePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonStrokePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { const basegfx::B2DPolyPolygon aPolyPolygon(getB2DPolyPolygon()); const sal_uInt32 nCount(aPolyPolygon.count()); if(nCount) { - Primitive2DContainer aRetval(nCount); - for(sal_uInt32 a(0L); a < nCount; a++) { - aRetval[a] = Primitive2DReference( + rContainer.push_back( new PolygonStrokePrimitive2D( aPolyPolygon.getB2DPolygon(a), getLineAttribute(), getStrokeAttribute())); } - - return aRetval; - } - else - { - return Primitive2DContainer(); } } @@ -294,7 +270,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonGradientPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonGradientPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getFillGradient().isDefault()) { @@ -308,14 +284,7 @@ namespace drawinglayer const Primitive2DContainer aSubSequence { xSubRef }; // create mask primitive - MaskPrimitive2D* pNewMask = new MaskPrimitive2D(getB2DPolyPolygon(), aSubSequence); - const Primitive2DReference xRef(pNewMask); - - return Primitive2DContainer { xRef }; - } - else - { - return Primitive2DContainer(); + rContainer.push_back(new MaskPrimitive2D(getB2DPolyPolygon(), aSubSequence)); } } @@ -365,7 +334,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonHatchPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonHatchPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getFillHatch().isDefault()) { @@ -380,14 +349,7 @@ namespace drawinglayer const Primitive2DContainer aSubSequence { xSubRef }; // create mask primitive - MaskPrimitive2D* pNewMask = new MaskPrimitive2D(getB2DPolyPolygon(), aSubSequence); - const Primitive2DReference xRef(pNewMask); - - return Primitive2DContainer { xRef }; - } - else - { - return Primitive2DContainer(); + rContainer.push_back(new MaskPrimitive2D(getB2DPolyPolygon(), aSubSequence)); } } @@ -442,7 +404,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonGraphicPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonGraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(!getFillGraphic().isDefault()) { @@ -510,17 +472,13 @@ namespace drawinglayer } // embed to mask primitive - const Primitive2DReference xRef( + rContainer.push_back( new MaskPrimitive2D( getB2DPolyPolygon(), Primitive2DContainer { xSubRef })); - - return Primitive2DContainer { xRef }; } } } - - return Primitive2DContainer(); } PolyPolygonGraphicPrimitive2D::PolyPolygonGraphicPrimitive2D( @@ -569,7 +527,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer PolyPolygonSelectionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void PolyPolygonSelectionPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DContainer aRetval; @@ -611,7 +569,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } PolyPolygonSelectionPrimitive2D::PolyPolygonSelectionPrimitive2D( diff --git a/drawinglayer/source/primitive2d/primitivetools2d.cxx b/drawinglayer/source/primitive2d/primitivetools2d.cxx index 591e744cffc0..509bff79a83e 100644 --- a/drawinglayer/source/primitive2d/primitivetools2d.cxx +++ b/drawinglayer/source/primitive2d/primitivetools2d.cxx @@ -26,7 +26,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer DiscreteMetricDependentPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void DiscreteMetricDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -47,7 +47,7 @@ namespace drawinglayer } // call base implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -57,7 +57,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer ViewportDependentPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ViewportDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -77,7 +77,7 @@ namespace drawinglayer } // call base implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -87,7 +87,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer ViewTransformationDependentPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -107,7 +107,7 @@ namespace drawinglayer } // call base implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -117,7 +117,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer ObjectAndViewTransformationDependentPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ObjectAndViewTransformationDependentPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -147,7 +147,7 @@ namespace drawinglayer } // call base implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx index d863d21eb7a5..63d30349c0d4 100644 --- a/drawinglayer/source/primitive2d/sceneprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/sceneprimitive2d.cxx @@ -221,7 +221,7 @@ namespace drawinglayer } } - Primitive2DContainer ScenePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ScenePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { Primitive2DContainer aRetval; @@ -494,7 +494,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } Primitive2DContainer ScenePrimitive2D::getGeometry2D() const @@ -638,7 +638,7 @@ namespace drawinglayer return aRetval; } - Primitive2DContainer ScenePrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void ScenePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -695,7 +695,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx index d50e9d2f3d37..f1e4b9f03118 100644 --- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx @@ -64,10 +64,8 @@ namespace drawinglayer return aRetval; } - Primitive2DContainer ShadowPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void ShadowPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; - if(!getChildren().empty()) { // create a modifiedColorPrimitive containing the shadow color and the content @@ -81,11 +79,8 @@ namespace drawinglayer const Primitive2DContainer aSequenceB { xRefA }; // build transformed primitiveVector with shadow offset and add to target - const Primitive2DReference xRefB(new TransformPrimitive2D(getShadowTransform(), aSequenceB)); - aRetval = Primitive2DContainer { xRefB }; + rContainer.push_back(new TransformPrimitive2D(getShadowTransform(), aSequenceB)); } - - return aRetval; } // provide unique ID diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx index 4283610901b2..9721e4e06c85 100644 --- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx @@ -62,11 +62,10 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SvgGradientHelper::createSingleGradientEntryFill() const + void SvgGradientHelper::createSingleGradientEntryFill(Primitive2DContainer& rContainer) const { const SvgGradientEntryVector& rEntries = getGradientEntries(); const sal_uInt32 nCount(rEntries.size()); - Primitive2DContainer xRetval; if(nCount) { @@ -90,15 +89,13 @@ namespace drawinglayer 1.0 - fOpacity)); } - xRetval = Primitive2DContainer { xRef }; + rContainer.push_back(xRef); } } else { OSL_ENSURE(false, "Single gradient entry construction without entry (!)"); } - - return xRetval; } void SvgGradientHelper::checkPreconditions() @@ -235,13 +232,13 @@ namespace drawinglayer return fPos; } - Primitive2DContainer SvgGradientHelper::createResult( + void SvgGradientHelper::createResult( + Primitive2DContainer& rContainer, const Primitive2DContainer& rTargetColor, const Primitive2DContainer& rTargetOpacity, const basegfx::B2DHomMatrix& rUnitGradientToObject, bool bInvert) const { - Primitive2DContainer xRetval; const Primitive2DContainer aTargetColorEntries(rTargetColor.maybeInvert(bInvert)); const Primitive2DContainer aTargetOpacityEntries(rTargetOpacity.maybeInvert(bInvert)); @@ -266,14 +263,10 @@ namespace drawinglayer aTargetColorEntries); } - xRefContent = new MaskPrimitive2D( + rContainer.push_back(new MaskPrimitive2D( getPolyPolygon(), - Primitive2DContainer { xRefContent }); - - xRetval = Primitive2DContainer { xRefContent }; + Primitive2DContainer { xRefContent })); } - - return xRetval; } SvgGradientHelper::SvgGradientHelper( @@ -372,10 +365,8 @@ namespace drawinglayer } } - Primitive2DContainer SvgLinearGradientPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void SvgLinearGradientPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; - if(!getPreconditionsChecked()) { const_cast< SvgLinearGradientPrimitive2D* >(this)->checkPreconditions(); @@ -384,7 +375,7 @@ namespace drawinglayer if(getSingleEntry()) { // fill with last existing color - xRetval = createSingleGradientEntryFill(); + createSingleGradientEntryFill(rContainer); } else if(getCreatesContent()) { @@ -550,10 +541,8 @@ namespace drawinglayer } } - xRetval = createResult(aTargetColor, aTargetOpacity, aUnitGradientToObject); + createResult(rContainer, aTargetColor, aTargetOpacity, aUnitGradientToObject); } - - return xRetval; } SvgLinearGradientPrimitive2D::SvgLinearGradientPrimitive2D( @@ -715,10 +704,8 @@ namespace drawinglayer } } - Primitive2DContainer SvgRadialGradientPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void SvgRadialGradientPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; - if(!getPreconditionsChecked()) { const_cast< SvgRadialGradientPrimitive2D* >(this)->checkPreconditions(); @@ -727,7 +714,7 @@ namespace drawinglayer if(getSingleEntry()) { // fill with last existing color - xRetval = createSingleGradientEntryFill(); + createSingleGradientEntryFill(rContainer); } else if(getCreatesContent()) { @@ -837,10 +824,8 @@ namespace drawinglayer } } - xRetval = createResult(aTargetColor, aTargetOpacity, aUnitGradientToObject, true); + createResult(rContainer, aTargetColor, aTargetOpacity, aUnitGradientToObject, true); } - - return xRetval; } SvgRadialGradientPrimitive2D::SvgRadialGradientPrimitive2D( @@ -919,9 +904,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SvgLinearAtomPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void SvgLinearAtomPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; const double fDelta(getOffsetB() - getOffsetA()); if(!basegfx::fTools::equalZero(fDelta)) @@ -945,21 +929,16 @@ namespace drawinglayer double fUnitScale(0.0); const double fUnitStep(1.0 / nSteps); - // prepare result set (known size) - xRetval.resize(nSteps); - for(sal_uInt32 a(0); a < nSteps; a++, fUnitScale += fUnitStep) { basegfx::B2DPolygon aNew(aPolygon); aNew.transform(basegfx::tools::createTranslateB2DHomMatrix(fDelta * fUnitScale, 0.0)); - xRetval[a] = new PolyPolygonColorPrimitive2D( + rContainer.push_back(new PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon(aNew), - basegfx::interpolate(getColorA(), getColorB(), fUnitScale)); + basegfx::interpolate(getColorA(), getColorB(), fUnitScale))); } } - - return xRetval; } SvgLinearAtomPrimitive2D::SvgLinearAtomPrimitive2D( @@ -1006,9 +985,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SvgRadialAtomPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void SvgRadialAtomPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; const double fDeltaScale(getScaleB() - getScaleA()); if(!basegfx::fTools::equalZero(fDeltaScale)) @@ -1023,9 +1001,6 @@ namespace drawinglayer double fUnitScale(0.0); const double fUnitStep(1.0 / nSteps); - // prepare result set (known size) - xRetval.resize(nSteps); - for(sal_uInt32 a(0); a < nSteps; a++, fUnitScale += fUnitStep) { basegfx::B2DHomMatrix aTransform; @@ -1055,13 +1030,11 @@ namespace drawinglayer basegfx::B2DPolygon aNew(basegfx::tools::createPolygonFromUnitCircle()); aNew.transform(aTransform); - xRetval[a] = new PolyPolygonColorPrimitive2D( + rContainer.push_back(new PolyPolygonColorPrimitive2D( basegfx::B2DPolyPolygon(aNew), - basegfx::interpolate(getColorB(), getColorA(), fUnitScale)); + basegfx::interpolate(getColorB(), getColorA(), fUnitScale))); } } - - return xRetval; } SvgRadialAtomPrimitive2D::SvgRadialAtomPrimitive2D( diff --git a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx index c2222b242372..22efbb16c985 100644 --- a/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx @@ -154,7 +154,7 @@ namespace drawinglayer // TODO: Handle Font Emphasis Above/Below } - Primitive2DContainer TextDecoratedPortionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void TextDecoratedPortionPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { if(getWordLineMode()) { @@ -166,7 +166,8 @@ namespace drawinglayer if(!aBroken.empty()) { // was indeed split to several words, use as result - return aBroken; + rContainer.insert(rContainer.end(), aBroken.begin(), aBroken.end()); + return; } else { @@ -303,7 +304,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } TextDecoratedPortionPrimitive2D::TextDecoratedPortionPrimitive2D( diff --git a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx index 2e0838d33c0a..c0965a531444 100644 --- a/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/texteffectprimitive2d.cxx @@ -31,10 +31,8 @@ namespace drawinglayer { static double fDiscreteSize(1.1); - Primitive2DContainer TextEffectPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void TextEffectPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { - Primitive2DContainer aRetval; - // get the distance of one discrete units from target display. Use between 1.0 and sqrt(2) to // have good results on rotated objects, too const basegfx::B2DVector aDistance(rViewInformation.getInverseObjectToViewTransformation() * @@ -65,7 +63,6 @@ namespace drawinglayer TextEffectStyle2D::ReliefEmbossedDefault == getTextEffectStyle2D() || TextEffectStyle2D::ReliefEngravedDefault == getTextEffectStyle2D()); basegfx::B2DHomMatrix aTransform(aBackTransform); - aRetval.resize(2); if(bEmbossed) { @@ -91,7 +88,7 @@ namespace drawinglayer getTextContent(), aBColorModifierToGray)); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new TransformPrimitive2D( aTransform, Primitive2DContainer { xModifiedColor })); @@ -101,7 +98,7 @@ namespace drawinglayer new basegfx::BColorModifier_replace( basegfx::BColor(1.0))); - aRetval[1] = Primitive2DReference( + rContainer.push_back( new ModifiedColorPrimitive2D( getTextContent(), aBColorModifierToWhite)); @@ -117,13 +114,13 @@ namespace drawinglayer getTextContent(), aBColorModifierToGray)); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new TransformPrimitive2D( aTransform, Primitive2DContainer { xModifiedColor })); // add original, too - aRetval[1] = Primitive2DReference(new GroupPrimitive2D(getTextContent())); + rContainer.push_back(new GroupPrimitive2D(getTextContent())); } break; @@ -132,45 +129,44 @@ namespace drawinglayer { // create transform primitives in all directions basegfx::B2DHomMatrix aTransform; - aRetval.resize(9); aTransform.set(0, 2, aDistance.getX()); aTransform.set(1, 2, 0.0); - aRetval[0] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, aDiagonalDistance.getX()); aTransform.set(1, 2, aDiagonalDistance.getY()); - aRetval[1] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, 0.0); aTransform.set(1, 2, aDistance.getY()); - aRetval[2] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, -aDiagonalDistance.getX()); aTransform.set(1, 2, aDiagonalDistance.getY()); - aRetval[3] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, -aDistance.getX()); aTransform.set(1, 2, 0.0); - aRetval[4] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, -aDiagonalDistance.getX()); aTransform.set(1, 2, -aDiagonalDistance.getY()); - aRetval[5] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, 0.0); aTransform.set(1, 2, -aDistance.getY()); - aRetval[6] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); aTransform.set(0, 2, aDiagonalDistance.getX()); aTransform.set(1, 2, -aDiagonalDistance.getY()); - aRetval[7] = Primitive2DReference(new TransformPrimitive2D(aTransform, getTextContent())); + rContainer.push_back(new TransformPrimitive2D(aTransform, getTextContent())); // at last, place original over it, but force to white const basegfx::BColorModifierSharedPtr aBColorModifierToWhite( new basegfx::BColorModifier_replace( basegfx::BColor(1.0, 1.0, 1.0))); - aRetval[8] = Primitive2DReference( + rContainer.push_back( new ModifiedColorPrimitive2D( getTextContent(), aBColorModifierToWhite)); @@ -178,8 +174,6 @@ namespace drawinglayer break; } } - - return aRetval; } TextEffectPrimitive2D::TextEffectPrimitive2D( @@ -223,7 +217,7 @@ namespace drawinglayer return aRetval; } - Primitive2DContainer TextEffectPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void TextEffectPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { ::osl::MutexGuard aGuard( m_aMutex ); @@ -243,7 +237,7 @@ namespace drawinglayer } // use parent implementation - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/drawinglayer/source/primitive2d/textlineprimitive2d.cxx b/drawinglayer/source/primitive2d/textlineprimitive2d.cxx index 0beacdb03b3c..dee8af23ac88 100644 --- a/drawinglayer/source/primitive2d/textlineprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/textlineprimitive2d.cxx @@ -30,10 +30,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer TextLinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void TextLinePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer xRetval; - if(TEXT_LINE_NONE != getTextLine()) { bool bDoubleLine(false); @@ -218,7 +216,7 @@ namespace drawinglayer } // add primitive - xRetval.push_back(aNewPrimitive); + rContainer.push_back(aNewPrimitive); if(bDoubleLine) { @@ -245,11 +243,9 @@ namespace drawinglayer // add transform primitive const Primitive2DContainer aContent { aNewPrimitive }; - xRetval.push_back( Primitive2DReference(new TransformPrimitive2D(aTransform, aContent))); + rContainer.push_back( new TransformPrimitive2D(aTransform, aContent) ); } } - - return xRetval; } TextLinePrimitive2D::TextLinePrimitive2D( diff --git a/drawinglayer/source/primitive2d/textprimitive2d.cxx b/drawinglayer/source/primitive2d/textprimitive2d.cxx index be1c4e70f710..2b3e85c78e52 100644 --- a/drawinglayer/source/primitive2d/textprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/textprimitive2d.cxx @@ -164,7 +164,7 @@ namespace drawinglayer } } - Primitive2DContainer TextSimplePortionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void TextSimplePortionPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DContainer aRetval; @@ -212,7 +212,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } TextSimplePortionPrimitive2D::TextSimplePortionPrimitive2D( diff --git a/drawinglayer/source/primitive2d/textstrikeoutprimitive2d.cxx b/drawinglayer/source/primitive2d/textstrikeoutprimitive2d.cxx index 300800a5486d..6ff212425852 100644 --- a/drawinglayer/source/primitive2d/textstrikeoutprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/textstrikeoutprimitive2d.cxx @@ -64,7 +64,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer TextCharacterStrikeoutPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void TextCharacterStrikeoutPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // strikeout with character const OUString aSingleCharString(getStrikeoutChar()); @@ -95,7 +95,7 @@ namespace drawinglayer aDXArray[a] = (a + 1) * fStrikeCharWidth; } - Primitive2DReference xReference( + rContainer.push_back( new TextSimplePortionPrimitive2D( getObjectTransformation(), aStrikeoutString, @@ -105,8 +105,6 @@ namespace drawinglayer getFontAttribute(), getLocale(), getFontColor())); - - return Primitive2DContainer { xReference }; } TextCharacterStrikeoutPrimitive2D::TextCharacterStrikeoutPrimitive2D( @@ -148,7 +146,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer TextGeometryStrikeoutPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void TextGeometryStrikeoutPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { OSL_ENSURE(TEXT_STRIKEOUT_SLASH != getTextStrikeout() && TEXT_STRIKEOUT_X != getTextStrikeout(), "Wrong TEXT_STRIKEOUT type; a TextCharacterStrikeoutPrimitive2D should be used (!)"); @@ -231,7 +229,7 @@ namespace drawinglayer xRetval))); } - return xRetval; + rContainer.insert(rContainer.end(), xRetval.begin(), xRetval.end()); } TextGeometryStrikeoutPrimitive2D::TextGeometryStrikeoutPrimitive2D( diff --git a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx index 02578ac07fb3..cce531f5dac0 100644 --- a/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d.cxx @@ -61,12 +61,12 @@ namespace drawinglayer return getChildren().getB2DRange( rViewInformation); } - Primitive2DContainer UnifiedTransparencePrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void UnifiedTransparencePrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { if(0.0 == getTransparence()) { // no transparence used, so just use the content - return getChildren(); + getChildren(rContainer); } else if(getTransparence() > 0.0 && getTransparence() < 1.0) { @@ -95,13 +95,11 @@ namespace drawinglayer aTransparenceContent[1] = Primitive2DReference(new PolygonHairlinePrimitive2D(aPolygon, aGray)); // create sub-transparence group with a gray-colored rectangular fill polygon - const Primitive2DReference xRefB(new TransparencePrimitive2D(getChildren(), aTransparenceContent)); - return Primitive2DContainer { xRefB }; + rContainer.push_back(new TransparencePrimitive2D(getChildren(), aTransparenceContent)); } else { // completely transparent or invalid definition, add nothing - return Primitive2DContainer(); } } diff --git a/drawinglayer/source/primitive2d/wallpaperprimitive2d.cxx b/drawinglayer/source/primitive2d/wallpaperprimitive2d.cxx index 87893b1ba209..b5280ad2f31c 100644 --- a/drawinglayer/source/primitive2d/wallpaperprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/wallpaperprimitive2d.cxx @@ -32,9 +32,9 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer WallpaperBitmapPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void WallpaperBitmapPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; + Primitive2DReference aRetval; if(!getLocalObjectRange().isEmpty() && !getBitmapEx().IsEmpty()) { @@ -58,7 +58,7 @@ namespace drawinglayer getBitmapEx(), aObjectTransform)); - aRetval = Primitive2DContainer { xReference }; + aRetval = xReference; } else { @@ -156,7 +156,7 @@ namespace drawinglayer new BitmapPrimitive2D( getBitmapEx(), aObjectTransform)); - aRetval = Primitive2DContainer { xReference }; + aRetval = xReference; // clip when not completely inside object range bNeedsClipping = !getLocalObjectRange().isInside(aTargetRange); @@ -193,7 +193,7 @@ namespace drawinglayer new drawinglayer::primitive2d::FillGraphicPrimitive2D( aObjectTransform, aFillGraphicAttribute)); - aRetval = Primitive2DContainer { xFillBitmap }; + aRetval = xFillBitmap; // always embed tiled fill to clipping bNeedsClipping = true; @@ -207,14 +207,15 @@ namespace drawinglayer const drawinglayer::primitive2d::Primitive2DReference xClippedFill( new drawinglayer::primitive2d::MaskPrimitive2D( aPolyPolygon, - aRetval)); - aRetval = Primitive2DContainer { xClippedFill }; + { aRetval })); + aRetval = xClippedFill; } } } } - return aRetval; + if (aRetval.is()) + rContainer.push_back(aRetval); } WallpaperBitmapPrimitive2D::WallpaperBitmapPrimitive2D( diff --git a/drawinglayer/source/primitive2d/wrongspellprimitive2d.cxx b/drawinglayer/source/primitive2d/wrongspellprimitive2d.cxx index 02ffcd60f950..f0e780264b36 100644 --- a/drawinglayer/source/primitive2d/wrongspellprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/wrongspellprimitive2d.cxx @@ -28,7 +28,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer WrongSpellPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void WrongSpellPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // ATM this decompose is view-independent, what the original VCL-Display is not. To mimic // the old behaviour here if wanted it is necessary to add get2DDecomposition and implement @@ -66,10 +66,7 @@ namespace drawinglayer const attribute::LineAttribute aLineAttribute(getColor()); // create the waveline primitive - Primitive2DReference xPrimitive(new PolygonWavePrimitive2D(aPolygon, aLineAttribute, fWaveWidth, 0.5 * fWaveWidth)); - Primitive2DContainer xRetval { xPrimitive }; - - return xRetval; + rContainer.push_back(new PolygonWavePrimitive2D(aPolygon, aLineAttribute, fWaveWidth, 0.5 * fWaveWidth)); } WrongSpellPrimitive2D::WrongSpellPrimitive2D( diff --git a/drawinglayer/source/processor2d/baseprocessor2d.cxx b/drawinglayer/source/processor2d/baseprocessor2d.cxx index 59324188bbcb..5f5dcf7e02ca 100644 --- a/drawinglayer/source/processor2d/baseprocessor2d.cxx +++ b/drawinglayer/source/processor2d/baseprocessor2d.cxx @@ -41,6 +41,13 @@ namespace drawinglayer { } + void BaseProcessor2D::process(const primitive2d::BasePrimitive2D& rCandidate) + { + primitive2d::Primitive2DContainer aContainer; + rCandidate.get2DDecomposition(aContainer, getViewInformation2D()); + process(aContainer); + } + void BaseProcessor2D::process(const primitive2d::Primitive2DContainer& rSource) { if(!rSource.empty()) diff --git a/drawinglayer/source/processor2d/contourextractor2d.cxx b/drawinglayer/source/processor2d/contourextractor2d.cxx index 030444f3f698..16228d263e8f 100644 --- a/drawinglayer/source/processor2d/contourextractor2d.cxx +++ b/drawinglayer/source/processor2d/contourextractor2d.cxx @@ -183,7 +183,7 @@ namespace drawinglayer default : { // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } } diff --git a/drawinglayer/source/processor2d/hittestprocessor2d.cxx b/drawinglayer/source/processor2d/hittestprocessor2d.cxx index fc20f0a51f9f..214259cb04b0 100644 --- a/drawinglayer/source/processor2d/hittestprocessor2d.cxx +++ b/drawinglayer/source/processor2d/hittestprocessor2d.cxx @@ -293,7 +293,7 @@ namespace drawinglayer { // if line is mitered, use decomposition since mitered line // geometry may use more space than the geometry grown by half line width - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } else { @@ -535,7 +535,7 @@ namespace drawinglayer default : { // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } diff --git a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx index e1951eb6a2dc..d04c5b42cbe3 100644 --- a/drawinglayer/source/processor2d/linegeometryextractor2d.cxx +++ b/drawinglayer/source/processor2d/linegeometryextractor2d.cxx @@ -53,7 +53,7 @@ namespace drawinglayer // enter a line geometry group (with or without LineEnds) bool bOldState(mbInLineGeometry); mbInLineGeometry = true; - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); mbInLineGeometry = bOldState; break; } @@ -119,7 +119,7 @@ namespace drawinglayer default : { // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } } diff --git a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx index 830a189f3091..de194d520710 100644 --- a/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx +++ b/drawinglayer/source/processor2d/textaspolygonextractor2d.cxx @@ -55,7 +55,7 @@ namespace drawinglayer // encapsulate with flag and use decomposition mnInText++; - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); mnInText--; break; @@ -73,7 +73,7 @@ namespace drawinglayer // encapsulate with flag and use decomposition mnInText++; - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); mnInText--; break; @@ -211,7 +211,7 @@ namespace drawinglayer default : { // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } } diff --git a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx index 19ad8bdb9fb8..885367d3a78f 100644 --- a/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx @@ -794,7 +794,7 @@ namespace drawinglayer } // process recursively and add MetaFile comment - process(rGraphicPrimitive.get2DDecomposition(getViewInformation2D())); + process(rGraphicPrimitive); if(bUsingPDFExtOutDevData) { @@ -965,7 +965,7 @@ namespace drawinglayer // process recursively if not done yet to export as decomposition (bitmap) if(bDoProcessRecursively) { - process(rControlPrimitive.get2DDecomposition(getViewInformation2D())); + process(rControlPrimitive); } } @@ -1001,7 +1001,8 @@ namespace drawinglayer } // process recursively - const primitive2d::Primitive2DContainer rContent = rFieldPrimitive.get2DDecomposition(getViewInformation2D()); + primitive2d::Primitive2DContainer rContent; + rFieldPrimitive.get2DDecomposition(rContent, getViewInformation2D()); process(rContent); // for the end comment the type is not relevant yet, they are all the same. Just add. @@ -1029,7 +1030,7 @@ namespace drawinglayer const OString aCommentString("XTEXT_EOL"); // process recursively and add MetaFile comment - process(rLinePrimitive.get2DDecomposition(getViewInformation2D())); + process(rLinePrimitive); mpMetaFile->AddAction(new MetaCommentAction(aCommentString)); break; @@ -1042,7 +1043,7 @@ namespace drawinglayer const OString aCommentString("XTEXT_EOC"); // process recursively and add MetaFile comment - process(rBulletPrimitive.get2DDecomposition(getViewInformation2D())); + process(rBulletPrimitive); mpMetaFile->AddAction(new MetaCommentAction(aCommentString)); break; @@ -1059,7 +1060,7 @@ namespace drawinglayer } // process recursively and add MetaFile comment - process(rParagraphPrimitive.get2DDecomposition(getViewInformation2D())); + process(rParagraphPrimitive); mpMetaFile->AddAction(new MetaCommentAction(aCommentString)); if(mpPDFExtOutDevData) @@ -1078,7 +1079,7 @@ namespace drawinglayer // add MetaFile comment, process recursively and add MetaFile comment mpMetaFile->AddAction(new MetaCommentAction(aCommentStringA)); - process(rBlockPrimitive.get2DDecomposition(getViewInformation2D())); + process(rBlockPrimitive); mpMetaFile->AddAction(new MetaCommentAction(aCommentStringB)); break; @@ -1269,7 +1270,7 @@ namespace drawinglayer } else { - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } impEndSvtGraphicStroke(pSvtGraphicStroke); @@ -1335,7 +1336,7 @@ namespace drawinglayer } // process sub-line geometry (evtl. filled PolyPolygons) - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); if(bDrawmodeChange) { @@ -1434,7 +1435,7 @@ namespace drawinglayer // Do use decomposition; encapsulate with SvtGraphicFill impStartSvtGraphicFill(pSvtGraphicFill); - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); impEndSvtGraphicFill(pSvtGraphicFill); } @@ -1452,7 +1453,7 @@ namespace drawinglayer // the range which defines the hatch is different from the range of the // geometry (used for writer frames). This cannot be done calling vcl, thus use // decomposition here - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } @@ -1577,7 +1578,7 @@ namespace drawinglayer // transfers. One more reason to *change* these to primitives. // BTW: One more example how useful the principles of primitives are; the decomposition // is by definition a simpler, maybe more expensive representation of the same content. - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } @@ -1589,7 +1590,7 @@ namespace drawinglayer // the range which defines the gradient is different from the range of the // geometry (used for writer frames). This cannot be done calling vcl, thus use // decomposition here - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } @@ -1732,7 +1733,7 @@ namespace drawinglayer { // Use new Metafile decomposition. // TODO EMF+ stuffed into METACOMMENT support required - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } else { @@ -2139,7 +2140,7 @@ namespace drawinglayer default : { // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } } diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx index c77f6365d7a5..b8e979548049 100644 --- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx @@ -634,12 +634,12 @@ namespace drawinglayer maBColorModifierStack)) { // fallback to decomposition (MetaFile) - process(rWrongSpellPrimitive.get2DDecomposition(getViewInformation2D())); + process(rWrongSpellPrimitive); } } else { - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } break; } @@ -658,7 +658,7 @@ namespace drawinglayer } else { - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } // restore DrawMode @@ -681,7 +681,7 @@ namespace drawinglayer } else { - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } // restore DrawMode @@ -758,7 +758,7 @@ namespace drawinglayer else { // use the primitive decomposition of the metafile - process(rPolygonCandidate.get2DDecomposition(getViewInformation2D())); + process(rPolygonCandidate); } } break; @@ -838,7 +838,7 @@ namespace drawinglayer { // use new Metafile decomposition // TODO EMF+ stuffed into METACOMMENT support required - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } else { @@ -1031,7 +1031,7 @@ namespace drawinglayer // DBG_UNHANDLED_EXCEPTION(); // process recursively and use the decomposition as Bitmap - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } break; @@ -1063,7 +1063,7 @@ namespace drawinglayer mnPolygonStrokePrimitive2D++; // with AA there is no need to handle thin lines special - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); // leave PolygonStrokePrimitive2D mnPolygonStrokePrimitive2D--; @@ -1090,7 +1090,7 @@ namespace drawinglayer { // if AA is used (or ignore smoothing is on), there is no need to smooth // hatch painting, use decomposition - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } else { @@ -1202,7 +1202,7 @@ namespace drawinglayer mpOutputDevice->SetAntialiasing(nAntiAliasing & ~AntialiasingFlags::EnableB2dDraw); // process content recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); // restore OutDev mpOutputDevice->Pop(); @@ -1238,9 +1238,13 @@ namespace drawinglayer if (!tryDrawBorderLinePrimitive2DDirect(rBorder)) { if (rBorder.getStyle() == table::BorderLineStyle::DOUBLE) - process(rBorder.createDecomposition(getViewInformation2D(), true)); + { + primitive2d::Primitive2DContainer aContainer; + rBorder.createDecomposition(aContainer, getViewInformation2D(), true); + process(aContainer); + } else - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); } mpOutputDevice->SetAntialiasing(nAntiAliasing); @@ -1250,7 +1254,7 @@ namespace drawinglayer { SAL_INFO("drawinglayer", "default case for " << drawinglayer::primitive2d::idToString(rCandidate.getPrimitive2DID())); // process recursively - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } } diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index 0d5e2a22fca4..8544f4c44d03 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -314,7 +314,7 @@ namespace drawinglayer if(!bPrimitiveAccepted) { // let break down - process(rTextCandidate.get2DDecomposition(getViewInformation2D())); + process(rTextCandidate); } } @@ -589,7 +589,7 @@ namespace drawinglayer if(!bPrimitiveAccepted) { // do not accept, use decomposition - process(rFillBitmapCandidate.get2DDecomposition(getViewInformation2D())); + process(rFillBitmapCandidate); } } @@ -697,7 +697,7 @@ namespace drawinglayer if(!bDone) { // use default decomposition - process(rPolygonCandidate.get2DDecomposition(getViewInformation2D())); + process(rPolygonCandidate); } } @@ -976,7 +976,7 @@ namespace drawinglayer updateViewInformation(aViewInformation2D); // process decomposed content - process(rPagePreviewCandidate.get2DDecomposition(getViewInformation2D())); + process(rPagePreviewCandidate); // restore transformations updateViewInformation(aLastViewInformation2D); @@ -1247,7 +1247,7 @@ namespace drawinglayer mnPolygonStrokePrimitive2D++; // line width is big enough for standard filled polygon visualisation or zero - process(rPolygonStrokeCandidate.get2DDecomposition(getViewInformation2D())); + process(rPolygonStrokeCandidate); // leave PolygonStrokePrimitive2D mnPolygonStrokePrimitive2D--; @@ -1286,7 +1286,7 @@ namespace drawinglayer { // use the decomposition which will correctly handle the // fallback visualisation using full transformation (e.g. rotation) - process(rEpsPrimitive2D.get2DDecomposition(getViewInformation2D())); + process(rEpsPrimitive2D); } } } diff --git a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx index 89782b62c864..580271bac434 100644 --- a/include/drawinglayer/primitive2d/animatedprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/animatedprimitive2d.hxx @@ -99,7 +99,7 @@ namespace drawinglayer depends on the point in time, so the default implementation is not useful here, it needs to be handled locally */ - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer @@ -125,7 +125,7 @@ namespace drawinglayer const Primitive2DContainer& rChildren); /// create local decomposition - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() @@ -160,7 +160,7 @@ namespace drawinglayer const Primitive2DContainer& rChildren); /// create local decomposition - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx b/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx index 868f1a690943..35d0221c3273 100644 --- a/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx @@ -55,7 +55,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -77,7 +77,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// Override standard getDecomposition call to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/baseprimitive2d.hxx b/include/drawinglayer/primitive2d/baseprimitive2d.hxx index b6e3ecd0e1ed..fbfafae783ca 100644 --- a/include/drawinglayer/primitive2d/baseprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/baseprimitive2d.hxx @@ -189,7 +189,7 @@ namespace drawinglayer virtual sal_uInt32 getPrimitive2DID() const = 0; /// The default implementation will return an empty sequence - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const; // Methods from XPrimitive2D @@ -266,7 +266,7 @@ namespace drawinglayer /** method which is to be used to implement the local decomposition of a 2D primitive. The default implementation will just return an empty decomposition */ - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const; public: // constructor/destructor @@ -278,7 +278,7 @@ namespace drawinglayer overridden and the ViewInformation2D for the last decomposition need to be remembered, too, and be used in the next call to decide if the buffered decomposition may be reused or not. */ - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx index 5c73edc6e430..80d3890fe945 100644 --- a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx @@ -94,7 +94,7 @@ namespace drawinglayer const geometry::ViewInformation2D& rViewInformation) const; /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -132,7 +132,7 @@ namespace drawinglayer short getStyle () const { return mnStyle; } double getPatternScale() const { return mfPatternScale; } /// Same as create2DDecomposition(), but can do pixel correction if requested. - Primitive2DContainer createDecomposition(const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const; + void createDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation, bool bPixelCorrection) const; /// compare operator virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; diff --git a/include/drawinglayer/primitive2d/controlprimitive2d.hxx b/include/drawinglayer/primitive2d/controlprimitive2d.hxx index 54df6b63a6c4..554d92d560bb 100644 --- a/include/drawinglayer/primitive2d/controlprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/controlprimitive2d.hxx @@ -63,7 +63,7 @@ namespace drawinglayer protected: /// local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -100,7 +100,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/cropprimitive2d.hxx b/include/drawinglayer/primitive2d/cropprimitive2d.hxx index 51529fead5aa..124d0504f6df 100644 --- a/include/drawinglayer/primitive2d/cropprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/cropprimitive2d.hxx @@ -86,7 +86,7 @@ namespace drawinglayer virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; /// local decomposition - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx b/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx index d4601307184d..9cca4a97a7da 100644 --- a/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx @@ -50,7 +50,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx b/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx index 7d32532290d2..12a06366a4e8 100644 --- a/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/discreteshadowprimitive2d.hxx @@ -90,7 +90,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx index 38d226c7a0e8..42fecfd3421d 100644 --- a/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/embedded3dprimitive2d.hxx @@ -82,7 +82,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/epsprimitive2d.hxx b/include/drawinglayer/primitive2d/epsprimitive2d.hxx index 1b871d5af2bb..42b10d6cf07e 100644 --- a/include/drawinglayer/primitive2d/epsprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/epsprimitive2d.hxx @@ -46,7 +46,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/fillgradientprimitive2d.hxx b/include/drawinglayer/primitive2d/fillgradientprimitive2d.hxx index df0d84fd29ab..65353312b71c 100644 --- a/include/drawinglayer/primitive2d/fillgradientprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/fillgradientprimitive2d.hxx @@ -69,21 +69,23 @@ namespace drawinglayer void generateMatricesAndColors( std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, basegfx::BColor& rOuterColor) const; - Primitive2DContainer createOverlappingFill( + void createOverlappingFill( + Primitive2DContainer& rContainer, const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, const basegfx::BColor& rOuterColor, const basegfx::B2DPolygon& rUnitPolygon) const; - Primitive2DContainer createNonOverlappingFill( + void createNonOverlappingFill( + Primitive2DContainer& rContainer, const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, const basegfx::BColor& rOuterColor, const basegfx::B2DPolygon& rUnitPolygon) const; protected: /// local helper - Primitive2DContainer createFill(bool bOverlapping) const; + void createFill(Primitive2DContainer& rContainer, bool bOverlapping) const; /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructors. The one without definition range will use output range as definition range diff --git a/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx b/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx index 4ae5307a04c8..9008ccc9189b 100644 --- a/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/fillgraphicprimitive2d.hxx @@ -56,7 +56,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx index 3f40a5575ac9..e320b3fa5dd8 100644 --- a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx @@ -66,7 +66,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructors. The one without definition range will use output range as definition range @@ -93,7 +93,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/graphicprimitive2d.hxx b/include/drawinglayer/primitive2d/graphicprimitive2d.hxx index 0108ae68ec5b..f437fbda1667 100644 --- a/include/drawinglayer/primitive2d/graphicprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/graphicprimitive2d.hxx @@ -60,7 +60,7 @@ namespace drawinglayer protected: /// local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor(s) diff --git a/include/drawinglayer/primitive2d/graphicprimitivehelper2d.hxx b/include/drawinglayer/primitive2d/graphicprimitivehelper2d.hxx index 9e5b540b4e61..541168184b88 100644 --- a/include/drawinglayer/primitive2d/graphicprimitivehelper2d.hxx +++ b/include/drawinglayer/primitive2d/graphicprimitivehelper2d.hxx @@ -41,7 +41,8 @@ namespace drawinglayer Bitmaps (with the sub-categories animated bitmap, and SVG), and Metafiles. */ - Primitive2DContainer create2DDecompositionOfGraphic( + void create2DDecompositionOfGraphic( + Primitive2DContainer& rContainer, const Graphic& rGraphic, const basegfx::B2DHomMatrix& rTransform); diff --git a/include/drawinglayer/primitive2d/gridprimitive2d.hxx b/include/drawinglayer/primitive2d/gridprimitive2d.hxx index 7d4a2fac189a..51ef7959e0a2 100644 --- a/include/drawinglayer/primitive2d/gridprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/gridprimitive2d.hxx @@ -71,7 +71,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -107,7 +107,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/groupprimitive2d.hxx b/include/drawinglayer/primitive2d/groupprimitive2d.hxx index 5f6387417359..1928be18b0df 100644 --- a/include/drawinglayer/primitive2d/groupprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/groupprimitive2d.hxx @@ -76,11 +76,13 @@ namespace drawinglayer /// data read access const Primitive2DContainer& getChildren() const { return maChildren; } + void getChildren(Primitive2DContainer& rContainer) const { rContainer.insert(rContainer.end(), maChildren.begin(), maChildren.end()); } + /// compare operator virtual bool operator==( const BasePrimitive2D& rPrimitive ) const override; /// local decomposition. Implementation will just return children - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/helplineprimitive2d.hxx b/include/drawinglayer/primitive2d/helplineprimitive2d.hxx index be3a0569054d..fbc67fe382e8 100644 --- a/include/drawinglayer/primitive2d/helplineprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/helplineprimitive2d.hxx @@ -75,7 +75,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -102,7 +102,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx b/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx index bb59e89964ea..788d09d09b18 100644 --- a/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx @@ -48,7 +48,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// local decomposition. Implementation will return empty Primitive2DSequence - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; // provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx b/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx index e125eb065d56..2dd43e2ff262 100644 --- a/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/markerarrayprimitive2d.hxx @@ -57,7 +57,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/mediaprimitive2d.hxx b/include/drawinglayer/primitive2d/mediaprimitive2d.hxx index 95b89b687d5c..36d8f599580f 100644 --- a/include/drawinglayer/primitive2d/mediaprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/mediaprimitive2d.hxx @@ -60,7 +60,7 @@ namespace drawinglayer protected: /// local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/metafileprimitive2d.hxx b/include/drawinglayer/primitive2d/metafileprimitive2d.hxx index 632507665e95..0d1503809a81 100644 --- a/include/drawinglayer/primitive2d/metafileprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/metafileprimitive2d.hxx @@ -64,7 +64,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor MetafilePrimitive2D( diff --git a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx index f4fe7c2e1528..c6639998f34d 100644 --- a/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx @@ -60,7 +60,7 @@ namespace drawinglayer protected: /// local decomposition. Implementation will just return children - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx index 8a64fdf3e71f..11d064737c45 100644 --- a/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/patternfillprimitive2d.hxx @@ -62,7 +62,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -83,7 +83,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// overload to react on evtl. buffered content - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx index 8ae8fd818765..2a41ac9d3bf2 100644 --- a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx @@ -110,7 +110,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -133,7 +133,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() @@ -168,7 +168,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -220,7 +220,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -276,7 +276,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx index 6a954b93e983..2cbc032e775d 100644 --- a/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/polypolygonprimitive2d.hxx @@ -57,7 +57,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -107,7 +107,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -162,7 +162,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -263,7 +263,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructors. The one without definition range will use output range as definition range @@ -319,7 +319,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructors. The one without definition range will use output range as definition range @@ -375,7 +375,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructors. The one without definition range will use output range as definition range @@ -434,7 +434,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/primitivetools2d.hxx b/include/drawinglayer/primitive2d/primitivetools2d.hxx index 12e234d8bea7..cd0bacea114b 100644 --- a/include/drawinglayer/primitive2d/primitivetools2d.hxx +++ b/include/drawinglayer/primitive2d/primitivetools2d.hxx @@ -65,7 +65,7 @@ namespace drawinglayer double getDiscreteUnit() const { return mfDiscreteUnit; } /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer @@ -103,7 +103,7 @@ namespace drawinglayer const basegfx::B2DRange& getViewport() const { return maViewport; } /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer @@ -141,7 +141,7 @@ namespace drawinglayer const basegfx::B2DHomMatrix& getViewTransformation() const { return maViewTransformation; } /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer @@ -183,7 +183,7 @@ namespace drawinglayer const basegfx::B2DHomMatrix& getObjectTransformation() const { return maObjectTransformation; } /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx index 80c0e2a07e96..ba55c31414b7 100644 --- a/include/drawinglayer/primitive2d/sceneprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/sceneprimitive2d.hxx @@ -98,7 +98,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// public helpers @@ -145,7 +145,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// get local decomposition. Override since this decomposition is view-dependent - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx index b3970df97d0e..13461f82478e 100644 --- a/include/drawinglayer/primitive2d/shadowprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/shadowprimitive2d.hxx @@ -72,7 +72,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// create decomposition - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx index 9fa2cd4be8b8..1ac5b2f978c5 100644 --- a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx @@ -120,7 +120,7 @@ namespace drawinglayer protected: /// local helpers - Primitive2DContainer createSingleGradientEntryFill() const; + void createSingleGradientEntryFill(Primitive2DContainer& rContainer) const; virtual void createAtom( Primitive2DContainer& rTargetColor, Primitive2DContainer& rTargetOpacity, @@ -135,7 +135,8 @@ namespace drawinglayer const SvgGradientEntryVector& rEntries, sal_Int32 nOffset) const; virtual void checkPreconditions(); - Primitive2DContainer createResult( + void createResult( + Primitive2DContainer& rContainer, const Primitive2DContainer& rTargetColor, const Primitive2DContainer& rTargetOpacity, const basegfx::B2DHomMatrix& rUnitGradientToObject, @@ -196,7 +197,7 @@ namespace drawinglayer virtual void checkPreconditions() override; /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -264,7 +265,7 @@ namespace drawinglayer virtual void checkPreconditions() override; /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -319,7 +320,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -381,7 +382,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx index 0ab2a29d2f6e..c1b0a57277a0 100644 --- a/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx @@ -74,7 +74,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx b/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx index 6b16520dcd4c..733234ff6369 100644 --- a/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/texteffectprimitive2d.hxx @@ -64,7 +64,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -93,7 +93,7 @@ namespace drawinglayer DeclPrimitive2DIDBlock() /// Override standard getDecomposition to be view-dependent here - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; }; } // end of namespace primitive2d } // end of namespace drawinglayer diff --git a/include/drawinglayer/primitive2d/textlineprimitive2d.hxx b/include/drawinglayer/primitive2d/textlineprimitive2d.hxx index 2fb9a4a5ec17..e9f5efe70c82 100644 --- a/include/drawinglayer/primitive2d/textlineprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/textlineprimitive2d.hxx @@ -47,7 +47,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/textprimitive2d.hxx b/include/drawinglayer/primitive2d/textprimitive2d.hxx index bed20c5de4b2..c9b250ceea78 100644 --- a/include/drawinglayer/primitive2d/textprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/textprimitive2d.hxx @@ -135,7 +135,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx b/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx index 5008fe41b307..b3771c56e8c6 100644 --- a/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx @@ -76,7 +76,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor @@ -116,7 +116,7 @@ namespace drawinglayer protected: /// local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx b/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx index 6341d088f90a..e24f8f3a5474 100644 --- a/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx @@ -60,7 +60,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; /// create decomposition - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; /// provide unique ID DeclPrimitive2DIDBlock() diff --git a/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx b/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx index af3f256f147e..e6927398edad 100644 --- a/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/wallpaperprimitive2d.hxx @@ -53,7 +53,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx b/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx index 90c2bb2362c4..996d70362288 100644 --- a/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx +++ b/include/drawinglayer/primitive2d/wrongspellprimitive2d.hxx @@ -60,7 +60,7 @@ namespace drawinglayer protected: /// create local decomposition - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: /// constructor diff --git a/include/drawinglayer/processor2d/baseprocessor2d.hxx b/include/drawinglayer/processor2d/baseprocessor2d.hxx index 622828a9a50b..4ace7d8fa8a1 100644 --- a/include/drawinglayer/processor2d/baseprocessor2d.hxx +++ b/include/drawinglayer/processor2d/baseprocessor2d.hxx @@ -174,6 +174,9 @@ namespace drawinglayer */ virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate); + void process(const primitive2d::BasePrimitive2D& rCandidate); + + public: /// constructor/destructor explicit BaseProcessor2D(const geometry::ViewInformation2D& rViewInformation); diff --git a/svx/inc/sdr/overlay/overlaytools.hxx b/svx/inc/sdr/overlay/overlaytools.hxx index 197cc715106b..f267d444a73c 100644 --- a/svx/inc/sdr/overlay/overlaytools.hxx +++ b/svx/inc/sdr/overlay/overlaytools.hxx @@ -41,7 +41,7 @@ private: double mfRotation; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayStaticRectanglePrimitive( @@ -87,7 +87,7 @@ namespace drawinglayer double mfRotation; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayBitmapExPrimitive( @@ -132,7 +132,7 @@ namespace drawinglayer double mfDiscreteDashLength; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayCrosshairPrimitive( @@ -180,7 +180,7 @@ namespace drawinglayer double mfRotation; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayRectanglePrimitive( @@ -236,7 +236,7 @@ namespace drawinglayer double mfDiscreteDashLength; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayHelplineStripedPrimitive( @@ -281,7 +281,7 @@ namespace drawinglayer double mfDiscreteDashLength; protected: - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: OverlayRollingRectanglePrimitive( diff --git a/svx/inc/sdr/primitive2d/sdrcaptionprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrcaptionprimitive2d.hxx index 656e8ea72384..a22cf0a5cc5d 100644 --- a/svx/inc/sdr/primitive2d/sdrcaptionprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrcaptionprimitive2d.hxx @@ -44,7 +44,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrCaptionPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrconnectorprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrconnectorprimitive2d.hxx index fee50356d936..393520139ce9 100644 --- a/svx/inc/sdr/primitive2d/sdrconnectorprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrconnectorprimitive2d.hxx @@ -40,7 +40,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrConnectorPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx index 8697e1931ba1..1fe8b512bf4a 100644 --- a/svx/inc/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx @@ -49,7 +49,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrCustomShapePrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrellipseprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrellipseprimitive2d.hxx index 942c7026b0c2..b1951b845fc9 100644 --- a/svx/inc/sdr/primitive2d/sdrellipseprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrellipseprimitive2d.hxx @@ -40,7 +40,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrEllipsePrimitive2D( @@ -76,7 +76,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrEllipseSegmentPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx index f92736db29a7..f8b09a182884 100644 --- a/svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrgrafprimitive2d.hxx @@ -43,7 +43,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrGrafPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrmeasureprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrmeasureprimitive2d.hxx index 70d669275202..f155f309cc7d 100644 --- a/svx/inc/sdr/primitive2d/sdrmeasureprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrmeasureprimitive2d.hxx @@ -74,7 +74,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrMeasurePrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrole2primitive2d.hxx b/svx/inc/sdr/primitive2d/sdrole2primitive2d.hxx index 58579d8b1cf0..0855f028887a 100644 --- a/svx/inc/sdr/primitive2d/sdrole2primitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrole2primitive2d.hxx @@ -54,7 +54,7 @@ namespace drawinglayer virtual bool operator==(const BasePrimitive2D& rPrimitive) const override; // local decomposition. - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; // provide unique ID DeclPrimitive2DIDBlock() diff --git a/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx index e5999985017b..393c235af00c 100644 --- a/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrolecontentprimitive2d.hxx @@ -47,7 +47,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrOleContentPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrpathprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrpathprimitive2d.hxx index 035a183f66f5..b60e9b3df565 100644 --- a/svx/inc/sdr/primitive2d/sdrpathprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrpathprimitive2d.hxx @@ -42,7 +42,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrPathPrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrrectangleprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrrectangleprimitive2d.hxx index dc2411ca8c88..5b0896daae6d 100644 --- a/svx/inc/sdr/primitive2d/sdrrectangleprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrrectangleprimitive2d.hxx @@ -45,7 +45,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrRectanglePrimitive2D( diff --git a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx index 9346f5d7e02f..523d70f7c0f2 100644 --- a/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx +++ b/svx/inc/sdr/primitive2d/sdrtextprimitive2d.hxx @@ -76,7 +76,7 @@ namespace drawinglayer protected: // support for XTEXT_PAINTSHAPE_BEGIN/XTEXT_PAINTSHAPE_END Metafile comments - static Primitive2DContainer encapsulateWithTextHierarchyBlockPrimitive2D(const Primitive2DContainer& rCandidate); + static void encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer& rContainer, const Primitive2DContainer& rCandidate); public: SdrTextPrimitive2D( @@ -92,7 +92,7 @@ namespace drawinglayer // own get2DDecomposition to take aspect of decomposition with or without spell checker // into account - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; // transformed clone operator virtual SdrTextPrimitive2D* createTransformedClone(const basegfx::B2DHomMatrix& rTransform) const = 0; @@ -116,7 +116,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrContourTextPrimitive2D( @@ -157,7 +157,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrPathTextPrimitive2D( @@ -205,7 +205,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrBlockTextPrimitive2D( @@ -257,7 +257,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrStretchTextPrimitive2D( @@ -296,7 +296,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrAutoFitTextPrimitive2D( @@ -333,7 +333,7 @@ namespace drawinglayer ::basegfx::B2DHomMatrix maTextRangeTransform; // text range transformation from unit range ([0.0 .. 1.0]) to text range protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrChainedTextPrimitive2D( diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx index c4c336bff959..89b763deb3ef 100644 --- a/svx/source/sdr/contact/viewcontactofgraphic.cxx +++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx @@ -283,9 +283,7 @@ namespace sdr // decompose immediately with neutral ViewInformation. This will // layout the text to more simple TextPrimitives from drawinglayer const drawinglayer::geometry::ViewInformation2D aViewInformation2D; - - drawinglayer::primitive2d::Primitive2DContainer aDecomposition(xBlockTextPrimitive->get2DDecomposition(aViewInformation2D)); - xRetval.insert(xRetval.end(), aDecomposition.begin(), aDecomposition.end()); + xBlockTextPrimitive->get2DDecomposition(xRetval, aViewInformation2D); } } diff --git a/svx/source/sdr/contact/viewobjectcontact.cxx b/svx/source/sdr/contact/viewobjectcontact.cxx index af86f2d4079d..d3fe81986103 100644 --- a/svx/source/sdr/contact/viewobjectcontact.cxx +++ b/svx/source/sdr/contact/viewobjectcontact.cxx @@ -143,7 +143,7 @@ void AnimatedExtractingProcessor2D::processBasePrimitive2D(const drawinglayer::p case PRIMITIVE2D_ID_MASKPRIMITIVE2D : case PRIMITIVE2D_ID_GROUPPRIMITIVE2D : { - process(rCandidate.get2DDecomposition(getViewInformation2D())); + process(rCandidate); break; } diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx index 6e6b0559fc7c..06009352fa80 100644 --- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx +++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx @@ -779,13 +779,14 @@ namespace sdr { namespace contact { typedef ::drawinglayer::primitive2d::BufferedDecompositionPrimitive2D BufferedDecompositionPrimitive2D; protected: - virtual ::drawinglayer::primitive2d::Primitive2DContainer + virtual void get2DDecomposition( + ::drawinglayer::primitive2d::Primitive2DContainer& rContainer, const ::drawinglayer::geometry::ViewInformation2D& rViewInformation ) const override; - virtual ::drawinglayer::primitive2d::Primitive2DContainer - create2DDecomposition( + virtual void create2DDecomposition( + ::drawinglayer::primitive2d::Primitive2DContainer& rContainer, const ::drawinglayer::geometry::ViewInformation2D& rViewInformation ) const override; @@ -1528,7 +1529,7 @@ namespace sdr { namespace contact { } - ::drawinglayer::primitive2d::Primitive2DContainer LazyControlCreationPrimitive2D::get2DDecomposition( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const + void LazyControlCreationPrimitive2D::get2DDecomposition( ::drawinglayer::primitive2d::Primitive2DContainer& rContainer, const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const { #if OSL_DEBUG_LEVEL > 0 ::basegfx::B2DVector aScale, aTranslate; @@ -1537,11 +1538,11 @@ namespace sdr { namespace contact { #endif if ( m_pVOCImpl->hasControl() ) impl_positionAndZoomControl( _rViewInformation ); - return BufferedDecompositionPrimitive2D::get2DDecomposition( _rViewInformation ); + BufferedDecompositionPrimitive2D::get2DDecomposition( rContainer, _rViewInformation ); } - ::drawinglayer::primitive2d::Primitive2DContainer LazyControlCreationPrimitive2D::create2DDecomposition( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const + void LazyControlCreationPrimitive2D::create2DDecomposition( ::drawinglayer::primitive2d::Primitive2DContainer& rContainer, const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation ) const { #if OSL_DEBUG_LEVEL > 0 ::basegfx::B2DVector aScale, aTranslate; @@ -1568,17 +1569,19 @@ namespace sdr { namespace contact { // check if we already have an XControl. if ( !xControlModel.is() || !rControl.is() ) + { // use the default mechanism. This will create a ControlPrimitive2D without // handing over a XControl. If not even a XControlModel exists, it will // create the SdrObject fallback visualisation - return rViewContactOfUnoControl.getViewIndependentPrimitive2DSequence(); + drawinglayer::primitive2d::Primitive2DContainer aTmp = rViewContactOfUnoControl.getViewIndependentPrimitive2DSequence(); + rContainer.insert(rContainer.end(), aTmp.begin(), aTmp.end()); + return; + } // create a primitive and hand over the existing xControl. This will // allow the primitive to not need to create another one on demand. - const drawinglayer::primitive2d::Primitive2DReference xRetval( new ::drawinglayer::primitive2d::ControlPrimitive2D( + rContainer.push_back( new ::drawinglayer::primitive2d::ControlPrimitive2D( m_aTransformation, xControlModel, rControl.getControl() ) ); - - return drawinglayer::primitive2d::Primitive2DContainer { xRetval }; } diff --git a/svx/source/sdr/overlay/overlaytools.cxx b/svx/source/sdr/overlay/overlaytools.cxx index 75bcee0de02b..c0a5acc66fa5 100644 --- a/svx/source/sdr/overlay/overlaytools.cxx +++ b/svx/source/sdr/overlay/overlaytools.cxx @@ -54,7 +54,7 @@ OverlayStaticRectanglePrimitive::OverlayStaticRectanglePrimitive( , mfRotation(fRotation) {} -Primitive2DContainer OverlayStaticRectanglePrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const +void OverlayStaticRectanglePrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DContainer aPrimitive2DSequence; const double fHalfWidth = maSize.getX() * getDiscreteUnit() / 2.0; @@ -99,7 +99,7 @@ Primitive2DContainer OverlayStaticRectanglePrimitive::create2DDecomposition(cons } } - return aPrimitive2DSequence; + rContainer.insert(rContainer.end(), aPrimitive2DSequence.begin(), aPrimitive2DSequence.end()); } bool OverlayStaticRectanglePrimitive::operator==(const BasePrimitive2D& rPrimitive) const @@ -143,9 +143,8 @@ namespace drawinglayer mfRotation(fRotation) {} - Primitive2DContainer OverlayBitmapExPrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void OverlayBitmapExPrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; const Size aBitmapSize(getBitmapEx().GetSizePixel()); if(aBitmapSize.Width() && aBitmapSize.Height() && basegfx::fTools::more(getDiscreteUnit(), 0.0)) @@ -183,11 +182,8 @@ namespace drawinglayer // add BasePosition aTransform.translate(getBasePosition().getX(), getBasePosition().getY()); - const Primitive2DReference aPrimitive(new BitmapPrimitive2D(getBitmapEx(), aTransform)); - aRetval = Primitive2DContainer { aPrimitive }; + rContainer.push_back(new BitmapPrimitive2D(getBitmapEx(), aTransform)); } - - return aRetval; } bool OverlayBitmapExPrimitive::operator==( const BasePrimitive2D& rPrimitive ) const @@ -229,20 +225,18 @@ namespace drawinglayer mfDiscreteDashLength(fDiscreteDashLength) {} - Primitive2DContainer OverlayCrosshairPrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void OverlayCrosshairPrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // use the prepared Viewport information accessible using getViewport() - Primitive2DContainer aRetval; if(!getViewport().isEmpty()) { - aRetval.resize(2); basegfx::B2DPolygon aPolygon; aPolygon.append(basegfx::B2DPoint(getViewport().getMinX(), getBasePosition().getY())); aPolygon.append(basegfx::B2DPoint(getViewport().getMaxX(), getBasePosition().getY())); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aPolygon, getRGBColorA(), @@ -253,15 +247,13 @@ namespace drawinglayer aPolygon.append(basegfx::B2DPoint(getBasePosition().getX(), getViewport().getMinY())); aPolygon.append(basegfx::B2DPoint(getBasePosition().getX(), getViewport().getMaxY())); - aRetval[1] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aPolygon, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); } - - return aRetval; } bool OverlayCrosshairPrimitive::operator==( const BasePrimitive2D& rPrimitive ) const @@ -305,7 +297,7 @@ namespace drawinglayer mfRotation(fRotation) {} - Primitive2DContainer OverlayRectanglePrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void OverlayRectanglePrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { Primitive2DContainer aRetval; basegfx::B2DRange aInnerRange(getObjectRange()); @@ -392,7 +384,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } bool OverlayRectanglePrimitive::operator==( const BasePrimitive2D& rPrimitive ) const @@ -436,10 +428,9 @@ namespace drawinglayer mfDiscreteDashLength(fDiscreteDashLength) {} - Primitive2DContainer OverlayHelplineStripedPrimitive::create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void OverlayHelplineStripedPrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // use the prepared Viewport information accessible using getViewport() - Primitive2DContainer aRetval; if(!getViewport().isEmpty()) { @@ -447,13 +438,12 @@ namespace drawinglayer { case HELPLINESTYLE_VERTICAL : { - aRetval.resize(1); basegfx::B2DPolygon aLine; aLine.append(basegfx::B2DPoint(getBasePosition().getX(), getViewport().getMinY())); aLine.append(basegfx::B2DPoint(getBasePosition().getX(), getViewport().getMaxY())); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aLine, getRGBColorA(), @@ -464,13 +454,12 @@ namespace drawinglayer case HELPLINESTYLE_HORIZONTAL : { - aRetval.resize(1); basegfx::B2DPolygon aLine; aLine.append(basegfx::B2DPoint(getViewport().getMinX(), getBasePosition().getY())); aLine.append(basegfx::B2DPoint(getViewport().getMaxX(), getBasePosition().getY())); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aLine, getRGBColorA(), @@ -482,13 +471,12 @@ namespace drawinglayer default: // case HELPLINESTYLE_POINT : { const double fDiscreteUnit((rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)).getLength()); - aRetval.resize(2); basegfx::B2DPolygon aLineA, aLineB; aLineA.append(basegfx::B2DPoint(getBasePosition().getX(), getBasePosition().getY() - fDiscreteUnit)); aLineA.append(basegfx::B2DPoint(getBasePosition().getX(), getBasePosition().getY() + fDiscreteUnit)); - aRetval[0] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aLineA, getRGBColorA(), @@ -498,7 +486,7 @@ namespace drawinglayer aLineB.append(basegfx::B2DPoint(getBasePosition().getX() - fDiscreteUnit, getBasePosition().getY())); aLineB.append(basegfx::B2DPoint(getBasePosition().getX() + fDiscreteUnit, getBasePosition().getY())); - aRetval[1] = Primitive2DReference( + rContainer.push_back( new PolygonMarkerPrimitive2D( aLineB, getRGBColorA(), @@ -509,8 +497,6 @@ namespace drawinglayer } } } - - return aRetval; } bool OverlayHelplineStripedPrimitive::operator==( const BasePrimitive2D& rPrimitive ) const @@ -551,61 +537,57 @@ namespace drawinglayer mfDiscreteDashLength(fDiscreteDashLength) {} - Primitive2DContainer OverlayRollingRectanglePrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void OverlayRollingRectanglePrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { // use the prepared Viewport information accessible using getViewport() - Primitive2DContainer aRetval; if(!getViewport().isEmpty()) { basegfx::B2DPolygon aLine; - aRetval.resize(8); // Left lines aLine.append(basegfx::B2DPoint(getViewport().getMinX(), getRollingRectangle().getMinY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getRollingRectangle().getMinY())); - aRetval[0] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); aLine.clear(); aLine.append(basegfx::B2DPoint(getViewport().getMinX(), getRollingRectangle().getMaxY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getRollingRectangle().getMaxY())); - aRetval[1] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); // Right lines aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getRollingRectangle().getMinY())); aLine.append(basegfx::B2DPoint(getViewport().getMaxX(), getRollingRectangle().getMinY())); - aRetval[2] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getRollingRectangle().getMaxY())); aLine.append(basegfx::B2DPoint(getViewport().getMaxX(), getRollingRectangle().getMaxY())); - aRetval[3] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); // Top lines aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getViewport().getMinY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getRollingRectangle().getMinY())); - aRetval[4] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getViewport().getMinY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getRollingRectangle().getMinY())); - aRetval[5] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); // Bottom lines aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getRollingRectangle().getMaxY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMinX(), getViewport().getMaxY())); - aRetval[6] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); aLine.clear(); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getRollingRectangle().getMaxY())); aLine.append(basegfx::B2DPoint(getRollingRectangle().getMaxX(), getViewport().getMaxY())); - aRetval[7] = Primitive2DReference(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); + rContainer.push_back(new PolygonMarkerPrimitive2D(aLine, getRGBColorA(), getRGBColorB(), getDiscreteDashLength())); } - - return aRetval; } bool OverlayRollingRectanglePrimitive::operator==( const BasePrimitive2D& rPrimitive ) const diff --git a/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx index 434290324386..62c4133bce57 100644 --- a/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx @@ -32,7 +32,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrCaptionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrCaptionPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -120,7 +120,7 @@ namespace drawinglayer aRetval = createEmbeddedShadowPrimitive(aRetval, getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrCaptionPrimitive2D::SdrCaptionPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx index 784aabb76165..b40dda55e69c 100644 --- a/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx @@ -33,7 +33,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrConnectorPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrConnectorPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -76,7 +76,7 @@ namespace drawinglayer getSdrLSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrConnectorPrimitive2D::SdrConnectorPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx index df9b6e7a9937..5677fb20f86d 100644 --- a/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx @@ -33,7 +33,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrCustomShapePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrCustomShapePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval(getSubPrimitives()); @@ -72,7 +72,7 @@ namespace drawinglayer } } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrCustomShapePrimitive2D::SdrCustomShapePrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx index 93755067adc3..fd8a34330ef4 100644 --- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx +++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx @@ -438,7 +438,8 @@ namespace drawinglayer // use the decomposition to force to simple text primitives, those will no longer // need the outliner for formatting (alternatively it is also possible to just add // pNew to aNewPrimitiveSequence) - Primitive2DContainer aAnimSequence(pNew->get2DDecomposition(aViewInformation2D)); + Primitive2DContainer aAnimSequence; + pNew->get2DDecomposition(aAnimSequence, aViewInformation2D); delete pNew; // create a new animatedInterpolatePrimitive and add it diff --git a/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx index 6fbcb8a168ee..f9a02ff47031 100644 --- a/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx @@ -35,7 +35,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrEllipsePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrEllipsePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -109,7 +109,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrEllipsePrimitive2D::SdrEllipsePrimitive2D( @@ -145,7 +145,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrEllipseSegmentPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrEllipseSegmentPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -228,7 +228,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrEllipseSegmentPrimitive2D::SdrEllipseSegmentPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx index 9c37d4a84f3a..8c7814de0f9d 100644 --- a/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx @@ -32,7 +32,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrGrafPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrGrafPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -126,7 +126,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrGrafPrimitive2D::SdrGrafPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx index ecedcea23397..29eb158b776b 100644 --- a/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx @@ -82,7 +82,7 @@ namespace drawinglayer aLineStartEnd); } - Primitive2DContainer SdrMeasurePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrMeasurePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; rtl::Reference<SdrBlockTextPrimitive2D> xBlockText; @@ -434,7 +434,7 @@ namespace drawinglayer getSdrLSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrMeasurePrimitive2D::SdrMeasurePrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx b/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx index ce032ab4454e..7fe161f3b14d 100644 --- a/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx @@ -66,7 +66,7 @@ namespace drawinglayer return false; } - Primitive2DContainer SdrOle2Primitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrOle2Primitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { // to take care of getSdrLFSTAttribute() later, the same as in SdrGrafPrimitive2D::create2DDecomposition // should happen. For the moment we only need the OLE itself @@ -170,7 +170,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } // provide unique ID diff --git a/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx index 83ced58e54a8..27bdb899a3ab 100644 --- a/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx @@ -33,9 +33,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrOleContentPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrOleContentPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { - Primitive2DContainer aRetval; const SdrOle2Obj* pSource = (mpSdrOle2Obj.is() ? static_cast< SdrOle2Obj* >(mpSdrOle2Obj.get()) : nullptr); bool bScaleContent(false); Graphic aGraphic; @@ -98,7 +97,7 @@ namespace drawinglayer aInnerObjectMatrix, aGraphicObject, aGraphicAttr)); - aRetval.push_back(aGraphicPrimitive); + rContainer.push_back(aGraphicPrimitive); } } else @@ -109,7 +108,7 @@ namespace drawinglayer getObjectTransform(), aGraphicObject, aGraphicAttr)); - aRetval.push_back(aGraphicPrimitive); + rContainer.push_back(aGraphicPrimitive); } // a standard gray outline is created for scaled content @@ -125,13 +124,10 @@ namespace drawinglayer aOutline.transform(getObjectTransform()); const drawinglayer::primitive2d::Primitive2DReference xOutline( new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(aOutline, aVclColor.getBColor())); - aRetval.push_back(xOutline); + rContainer.push_back(xOutline); } } } - - // get graphic and check scale content state - return aRetval; } SdrOleContentPrimitive2D::SdrOleContentPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx index 8abcd06555b2..9f7e1bcdc1f9 100644 --- a/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx @@ -32,7 +32,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrPathPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrPathPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -102,7 +102,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrPathPrimitive2D::SdrPathPrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx index 22b3a061a410..466292606557 100644 --- a/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx @@ -33,7 +33,7 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrRectanglePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrRectanglePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { Primitive2DContainer aRetval; @@ -111,7 +111,7 @@ namespace drawinglayer getSdrLFSTAttribute().getShadow()); } - return aRetval; + rContainer.insert(rContainer.end(), aRetval.begin(), aRetval.end()); } SdrRectanglePrimitive2D::SdrRectanglePrimitive2D( diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx index 0e1606697598..ab8ca841a889 100644 --- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx +++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx @@ -90,12 +90,9 @@ namespace drawinglayer // support for XTEXT_PAINTSHAPE_BEGIN/XTEXT_PAINTSHAPE_END Metafile comments // for slideshow. This uses TextHierarchyBlockPrimitive2D to mark a text block. // ATM there is only one text block per SdrObject, this may get more in the future - Primitive2DContainer SdrTextPrimitive2D::encapsulateWithTextHierarchyBlockPrimitive2D(const Primitive2DContainer& rCandidate) + void SdrTextPrimitive2D::encapsulateWithTextHierarchyBlockPrimitive2D(Primitive2DContainer& rContainer, const Primitive2DContainer& rCandidate) { - Primitive2DReference xReference(new TextHierarchyBlockPrimitive2D(rCandidate)); - Primitive2DContainer xRetval { xReference }; - - return xRetval; + rContainer.push_back(new TextHierarchyBlockPrimitive2D(rCandidate)); } SdrTextPrimitive2D::SdrTextPrimitive2D( @@ -140,7 +137,7 @@ namespace drawinglayer return false; } - Primitive2DContainer SdrTextPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void SdrTextPrimitive2D::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { uno::Reference< drawing::XDrawPage > xCurrentlyVisualizingPage; bool bCurrentlyVisualizingPageIsSet(false); @@ -237,7 +234,7 @@ namespace drawinglayer } // call parent - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } } // end of namespace primitive2d } // end of namespace drawinglayer @@ -247,12 +244,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrContourTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrContourTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposeContourTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } SdrContourTextPrimitive2D::SdrContourTextPrimitive2D( @@ -299,12 +296,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrPathTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrPathTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposePathTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } SdrPathTextPrimitive2D::SdrPathTextPrimitive2D( @@ -354,12 +351,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrBlockTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrBlockTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposeBlockTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } SdrBlockTextPrimitive2D::SdrBlockTextPrimitive2D( @@ -430,12 +427,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrAutoFitTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrAutoFitTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposeAutoFitTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } SdrAutoFitTextPrimitive2D::SdrAutoFitTextPrimitive2D( @@ -486,12 +483,12 @@ namespace drawinglayer maTextRangeTransform(rTextRangeTransform) { } - Primitive2DContainer SdrChainedTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrChainedTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposeChainedTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } bool SdrChainedTextPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const @@ -521,12 +518,12 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SdrStretchTextPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const + void SdrStretchTextPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const { Primitive2DContainer aRetval; getSdrText()->GetObject().impDecomposeStretchTextPrimitive(aRetval, *this, aViewInformation); - return encapsulateWithTextHierarchyBlockPrimitive2D(aRetval); + encapsulateWithTextHierarchyBlockPrimitive2D(rContainer, aRetval); } SdrStretchTextPrimitive2D::SdrStretchTextPrimitive2D( diff --git a/svx/source/table/viewcontactoftableobj.cxx b/svx/source/table/viewcontactoftableobj.cxx index 6c19f3dab40e..24fc6655b86e 100644 --- a/svx/source/table/viewcontactoftableobj.cxx +++ b/svx/source/table/viewcontactoftableobj.cxx @@ -58,7 +58,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrCellPrimitive2D( @@ -81,10 +81,9 @@ namespace drawinglayer DeclPrimitive2DIDBlock() }; - Primitive2DContainer SdrCellPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrCellPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { // prepare unit polygon - Primitive2DContainer aRetval; const basegfx::B2DPolyPolygon aUnitPolyPolygon(basegfx::tools::createUnitPolygon()); // add fill @@ -93,7 +92,7 @@ namespace drawinglayer basegfx::B2DPolyPolygon aTransformed(aUnitPolyPolygon); aTransformed.transform(getTransform()); - aRetval.push_back( + rContainer.push_back( createPolyPolygonFillPrimitive( aTransformed, getSdrFTAttribute().getFill(), @@ -102,7 +101,7 @@ namespace drawinglayer else { // if no fill create one for HitTest and BoundRect fallback - aRetval.push_back( + rContainer.push_back( createHiddenGeometryPrimitives2D( true, aUnitPolyPolygon, @@ -112,7 +111,7 @@ namespace drawinglayer // add text if(!getSdrFTAttribute().getText().isDefault()) { - aRetval.push_back( + rContainer.push_back( createTextPrimitive( aUnitPolyPolygon, getTransform(), @@ -122,8 +121,6 @@ namespace drawinglayer false, false)); } - - return aRetval; } bool SdrCellPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const @@ -176,7 +173,7 @@ namespace drawinglayer protected: // local decomposition. - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& aViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& aViewInformation) const override; public: SdrBorderlinePrimitive2D( @@ -279,10 +276,8 @@ namespace drawinglayer return (double)nValue; } - Primitive2DContainer SdrBorderlinePrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*aViewInformation*/) const + void SdrBorderlinePrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*aViewInformation*/) const { - Primitive2DContainer xRetval(4); - sal_uInt32 nInsert(0); const double fTwipsToMM(127.0 / 72.0); if(!getLeftLine().isEmpty()) @@ -303,7 +298,7 @@ namespace drawinglayer const double fExtendOS(getExtend(maTopFromLLine, getTopLine())); const double fExtendOE(getExtend(maBottomFromLLine, getBottomLine())); - xRetval[nInsert++] = Primitive2DReference(new BorderLinePrimitive2D( + rContainer.push_back(new BorderLinePrimitive2D( aStart, aEnd, getChangedValue(getLeftLine().GetOutWidth(), true/*InTwips*/), @@ -334,7 +329,7 @@ namespace drawinglayer const double fExtendOS(getExtend(maLeftFromBLine, getLeftLine())); const double fExtendOE(getExtend(maRightFromBLine, getRightLine())); - xRetval[nInsert++] = Primitive2DReference(new BorderLinePrimitive2D( + rContainer.push_back(new BorderLinePrimitive2D( aStart, aEnd, getChangedValue(getBottomLine().GetOutWidth(), true/*InTwips*/), @@ -365,7 +360,7 @@ namespace drawinglayer const double fExtendOS(getExtend(maTopFromRLine, getTopLine())); const double fExtendOE(getExtend(maBottomFromRLine, getBottomLine())); - xRetval[nInsert++] = Primitive2DReference(new BorderLinePrimitive2D( + rContainer.push_back(new BorderLinePrimitive2D( aStart, aEnd, getChangedValue(getRightLine().GetOutWidth(), true/*InTwips*/), @@ -401,7 +396,7 @@ namespace drawinglayer const double fExtendOS(getExtend(maLeftFromTLine, getLeftLine())); const double fExtendOE(getExtend(maRightFromTLine, getRightLine())); - xRetval[nInsert++] = Primitive2DReference(new BorderLinePrimitive2D( + rContainer.push_back(new BorderLinePrimitive2D( aStart, aEnd, getChangedValue(getTopLine().GetOutWidth(), true/*InTwips*/), @@ -418,9 +413,6 @@ namespace drawinglayer getTopLine().GetBorderLineStyle())); } } - - xRetval.resize(nInsert); - return xRetval; } bool SdrBorderlinePrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const diff --git a/sw/source/core/draw/dflyobj.cxx b/sw/source/core/draw/dflyobj.cxx index 18e24fd286d2..fd85ace26495 100644 --- a/sw/source/core/draw/dflyobj.cxx +++ b/sw/source/core/draw/dflyobj.cxx @@ -154,7 +154,7 @@ namespace drawinglayer protected: /// method which is to be used to implement the local decomposition of a 2D primitive - virtual Primitive2DContainer create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; public: SwVirtFlyDrawObjPrimitive( @@ -171,7 +171,7 @@ namespace drawinglayer virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const override; // override to allow callbacks to wrap_DoPaintObject - virtual Primitive2DContainer get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const override; + virtual void get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const override; // data read access const SwVirtFlyDrawObj& getSwVirtFlyDrawObj() const { return mrSwVirtFlyDrawObj; } @@ -187,10 +187,8 @@ namespace drawinglayer { namespace primitive2d { - Primitive2DContainer SwVirtFlyDrawObjPrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + void SwVirtFlyDrawObjPrimitive::create2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DContainer aRetval; - if(!getOuterRange().isEmpty()) { // currently this SW object has no primitive representation. As long as this is the case, @@ -199,15 +197,11 @@ namespace drawinglayer // the old SwVirtFlyDrawObj::CheckHit implementation are handled now in SwDrawView::PickObj; // this removed the 'hack' to get a view from inside model data or to react on null-tolerance // as it was done in the old implementation - const Primitive2DReference aHitTestReference( + rContainer.push_back( createHiddenGeometryPrimitives2D( true, getOuterRange())); - - aRetval = Primitive2DContainer { aHitTestReference }; } - - return aRetval; } bool SwVirtFlyDrawObjPrimitive::operator==(const BasePrimitive2D& rPrimitive) const @@ -228,7 +222,7 @@ namespace drawinglayer return getOuterRange(); } - Primitive2DContainer SwVirtFlyDrawObjPrimitive::get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const + void SwVirtFlyDrawObjPrimitive::get2DDecomposition(Primitive2DContainer& rContainer, const geometry::ViewInformation2D& rViewInformation) const { // This is the callback to keep the FlyFrame painting in SW alive as long as it // is not changed to primitives. This is the method which will be called by the processors @@ -238,7 +232,7 @@ namespace drawinglayer getSwVirtFlyDrawObj().wrap_DoPaintObject(rViewInformation); // call parent - return BufferedDecompositionPrimitive2D::get2DDecomposition(rViewInformation); + BufferedDecompositionPrimitive2D::get2DDecomposition(rContainer, rViewInformation); } // provide unique ID diff --git a/sw/source/uibase/docvw/AnchorOverlayObject.cxx b/sw/source/uibase/docvw/AnchorOverlayObject.cxx index c3a6ea8a863d..b92574c3036c 100644 --- a/sw/source/uibase/docvw/AnchorOverlayObject.cxx +++ b/sw/source/uibase/docvw/AnchorOverlayObject.cxx @@ -50,7 +50,8 @@ private: bool mbLineSolid : 1; protected: - virtual drawinglayer::primitive2d::Primitive2DContainer create2DDecomposition( + virtual void create2DDecomposition( + drawinglayer::primitive2d::Primitive2DContainer& rContainer, const drawinglayer::geometry::ViewInformation2D& rViewInformation) const override; public: @@ -81,11 +82,10 @@ public: DeclPrimitive2DIDBlock() }; -drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecomposition( +void AnchorPrimitive::create2DDecomposition( + drawinglayer::primitive2d::Primitive2DContainer& rContainer, const drawinglayer::geometry::ViewInformation2D& /*rViewInformation*/) const { - drawinglayer::primitive2d::Primitive2DContainer aRetval; - if ( AS_TRI == maAnchorState || AS_ALL == maAnchorState || AS_START == maAnchorState ) @@ -96,7 +96,7 @@ drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecompo basegfx::B2DPolyPolygon(maTriangle), getColor())); - aRetval.push_back(aTriangle); + rContainer.push_back(aTriangle); } // prepare view-independent LineWidth and color @@ -115,7 +115,7 @@ drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecompo getLine(), aLineAttribute)); - aRetval.push_back(aSolidLine); + rContainer.push_back(aSolidLine); } else { @@ -136,7 +136,7 @@ drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecompo aLineAttribute, aStrokeAttribute)); - aRetval.push_back(aStrokedLine); + rContainer.push_back(aStrokedLine); } } @@ -150,10 +150,8 @@ drawinglayer::primitive2d::Primitive2DContainer AnchorPrimitive::create2DDecompo maLineTop, aLineAttribute)); - aRetval.push_back(aLineTop); + rContainer.push_back(aLineTop); } - - return aRetval; } bool AnchorPrimitive::operator==( const drawinglayer::primitive2d::BasePrimitive2D& rPrimitive ) const diff --git a/sw/source/uibase/docvw/ShadowOverlayObject.cxx b/sw/source/uibase/docvw/ShadowOverlayObject.cxx index 7bf63c5ca7b0..526a6162aad9 100644 --- a/sw/source/uibase/docvw/ShadowOverlayObject.cxx +++ b/sw/source/uibase/docvw/ShadowOverlayObject.cxx @@ -44,7 +44,8 @@ private: ShadowState maShadowState; protected: - virtual drawinglayer::primitive2d::Primitive2DContainer create2DDecomposition( + virtual void create2DDecomposition( + drawinglayer::primitive2d::Primitive2DContainer& rContainer, const drawinglayer::geometry::ViewInformation2D& rViewInformation) const override; public: @@ -66,11 +67,11 @@ public: DeclPrimitive2DIDBlock() }; -drawinglayer::primitive2d::Primitive2DContainer ShadowPrimitive::create2DDecomposition( +void ShadowPrimitive::create2DDecomposition( + drawinglayer::primitive2d::Primitive2DContainer& rContainer, const drawinglayer::geometry::ViewInformation2D& /*rViewInformation*/) const { // get logic sizes in object coordinate system - drawinglayer::primitive2d::Primitive2DContainer xRetval; basegfx::B2DRange aRange(maBasePosition); switch(maShadowState) @@ -88,12 +89,10 @@ drawinglayer::primitive2d::Primitive2DContainer ShadowPrimitive::create2DDecompo basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0), 2); - const drawinglayer::primitive2d::Primitive2DReference xReference( + rContainer.push_back( new drawinglayer::primitive2d::FillGradientPrimitive2D( aRange, aFillGradientAttribute)); - - xRetval = drawinglayer::primitive2d::Primitive2DContainer { xReference }; break; } case SS_VIEW: @@ -109,12 +108,10 @@ drawinglayer::primitive2d::Primitive2DContainer ShadowPrimitive::create2DDecompo basegfx::BColor(180.0/255.0,180.0/255.0,180.0/255.0), 4); - const drawinglayer::primitive2d::Primitive2DReference xReference( + rContainer.push_back( new drawinglayer::primitive2d::FillGradientPrimitive2D( aRange, aFillGradientAttribute)); - - xRetval = drawinglayer::primitive2d::Primitive2DContainer { xReference }; break; } case SS_EDIT: @@ -130,12 +127,10 @@ drawinglayer::primitive2d::Primitive2DContainer ShadowPrimitive::create2DDecompo basegfx::BColor(83.0/255.0,83.0/255.0,83.0/255.0), 4); - const drawinglayer::primitive2d::Primitive2DReference xReference( + rContainer.push_back( new drawinglayer::primitive2d::FillGradientPrimitive2D( aRange, aFillGradientAttribute)); - - xRetval = drawinglayer::primitive2d::Primitive2DContainer { xReference }; break; } default: @@ -143,8 +138,6 @@ drawinglayer::primitive2d::Primitive2DContainer ShadowPrimitive::create2DDecompo break; } } - - return xRetval; } bool ShadowPrimitive::operator==( const drawinglayer::primitive2d::BasePrimitive2D& rPrimitive ) const |