diff options
author | Noel Grandin <noel@peralex.com> | 2015-12-10 12:27:50 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2015-12-11 10:11:23 +0200 |
commit | 58d8d8ac67aa9b907f1304a48efa0f7a473d9de4 (patch) | |
tree | a0d88f3c8a57ce9d08d97c803ea0ec83a3dd8b62 /drawinglayer/source/primitive2d/shadowprimitive2d.cxx | |
parent | 44ad6aca0dee29841ec7cd15c6d0ad9b3dcaedbe (diff) |
tdf#69977: uno::Sequence is expensive
when used as a mutable data-structure. Plain std::vector halves the time
taken to display the chart dialog
Create a class to represent the std::vector we are going to be passing
around, and move some of the utility methods into it to make the code
prettier.
Also create an optimised append(&&) method for the common case of
appending small temporaries.
Change-Id: I7f5b43fb4a8a84e40e6a52fcb7e9f974091b4485
Diffstat (limited to 'drawinglayer/source/primitive2d/shadowprimitive2d.cxx')
-rw-r--r-- | drawinglayer/source/primitive2d/shadowprimitive2d.cxx | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx index abdce86fcbcb..3467d95b295c 100644 --- a/drawinglayer/source/primitive2d/shadowprimitive2d.cxx +++ b/drawinglayer/source/primitive2d/shadowprimitive2d.cxx @@ -39,7 +39,7 @@ namespace drawinglayer ShadowPrimitive2D::ShadowPrimitive2D( const basegfx::B2DHomMatrix& rShadowTransform, const basegfx::BColor& rShadowColor, - const Primitive2DSequence& rChildren) + const Primitive2DContainer& rChildren) : GroupPrimitive2D(rChildren), maShadowTransform(rShadowTransform), maShadowColor(rShadowColor) @@ -61,16 +61,16 @@ namespace drawinglayer basegfx::B2DRange ShadowPrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const { - basegfx::B2DRange aRetval(getB2DRangeFromPrimitive2DSequence(getChildren(), rViewInformation)); + basegfx::B2DRange aRetval(getChildren().getB2DRange(rViewInformation)); aRetval.transform(getShadowTransform()); return aRetval; } - Primitive2DSequence ShadowPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const + Primitive2DContainer ShadowPrimitive2D::get2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const { - Primitive2DSequence aRetval; + Primitive2DContainer aRetval; - if(getChildren().hasElements()) + if(!getChildren().empty()) { // create a modifiedColorPrimitive containing the shadow color and the content const basegfx::BColorModifierSharedPtr aBColorModifier( @@ -80,11 +80,11 @@ namespace drawinglayer new ModifiedColorPrimitive2D( getChildren(), aBColorModifier)); - const Primitive2DSequence aSequenceB(&xRefA, 1L); + const Primitive2DContainer aSequenceB { xRefA }; // build transformed primitiveVector with shadow offset and add to target const Primitive2DReference xRefB(new TransformPrimitive2D(getShadowTransform(), aSequenceB)); - aRetval = Primitive2DSequence(&xRefB, 1L); + aRetval = Primitive2DContainer { xRefB }; } return aRetval; |