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 /include/svx/sdr/overlay | |
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 'include/svx/sdr/overlay')
-rw-r--r-- | include/svx/sdr/overlay/overlayanimatedbitmapex.hxx | 2 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlaybitmapex.hxx | 2 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlayobject.hxx | 16 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlayobjectcell.hxx | 2 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlaypolypolygon.hxx | 2 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx | 8 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlayselection.hxx | 6 | ||||
-rw-r--r-- | include/svx/sdr/overlay/overlaytriangle.hxx | 2 |
8 files changed, 20 insertions, 20 deletions
diff --git a/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx b/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx index 8594e683ce71..af77c3a4ca40 100644 --- a/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx +++ b/include/svx/sdr/overlay/overlayanimatedbitmapex.hxx @@ -54,7 +54,7 @@ namespace sdr bool mbOverlayState : 1; // geometry creation for OverlayObject - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: OverlayAnimatedBitmapEx( diff --git a/include/svx/sdr/overlay/overlaybitmapex.hxx b/include/svx/sdr/overlay/overlaybitmapex.hxx index 25913c1633dc..e98bd4953220 100644 --- a/include/svx/sdr/overlay/overlaybitmapex.hxx +++ b/include/svx/sdr/overlay/overlaybitmapex.hxx @@ -44,7 +44,7 @@ namespace sdr double mfShearX; double mfRotation; - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: OverlayBitmapEx( diff --git a/include/svx/sdr/overlay/overlayobject.hxx b/include/svx/sdr/overlay/overlayobject.hxx index d4ada5a75804..6a4da0b11336 100644 --- a/include/svx/sdr/overlay/overlayobject.hxx +++ b/include/svx/sdr/overlay/overlayobject.hxx @@ -64,21 +64,21 @@ namespace sdr // OverlayManager, do not change Yourself. OverlayManager* mpOverlayManager; - // Primitive2DSequence of the OverlayObject - drawinglayer::primitive2d::Primitive2DSequence maPrimitive2DSequence; + // Primitive2DContainer of the OverlayObject + drawinglayer::primitive2d::Primitive2DContainer maPrimitive2DSequence; protected: // access methods to maPrimitive2DSequence. The usage of this methods may allow // later thread-safe stuff to be added if needed. Only to be used by getPrimitive2DSequence() // implementations for buffering the last decomposition. - const drawinglayer::primitive2d::Primitive2DSequence& getPrimitive2DSequence() const { return maPrimitive2DSequence; } - void setPrimitive2DSequence(const drawinglayer::primitive2d::Primitive2DSequence& rNew) { maPrimitive2DSequence = rNew; } + const drawinglayer::primitive2d::Primitive2DContainer& getPrimitive2DSequence() const { return maPrimitive2DSequence; } + void setPrimitive2DSequence(const drawinglayer::primitive2d::Primitive2DContainer& rNew) { maPrimitive2DSequence = rNew; } - // the creation method for Primitive2DSequence. Called when getPrimitive2DSequence() + // the creation method for Primitive2DContainer. Called when getPrimitive2DSequence() // sees that maPrimitive2DSequence is empty. Needs to be supported by all // OverlayObject implementations. Default implementation will assert // a missing implementation - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence(); + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence(); // #i53216# check blink time value range (currently 25 < mnBlinkTime < 10000) static sal_uInt32 impCheckBlinkTimeValueRange(sal_uInt64 nBlinkTime); @@ -123,10 +123,10 @@ namespace sdr // get OverlayManager OverlayManager* getOverlayManager() const { return mpOverlayManager; } - // the access method for Primitive2DSequence. Will use createPrimitive2DSequence and + // the access method for Primitive2DContainer. Will use createPrimitive2DSequence and // setPrimitive2DSequence if needed. Overriding may be used to allow disposal of last // created primitives to react on changed circumstances and to re-create primitives - virtual drawinglayer::primitive2d::Primitive2DSequence getOverlayObjectPrimitive2DSequence() const; + virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const; // access to visibility state bool isVisible() const { return mbIsVisible; } diff --git a/include/svx/sdr/overlay/overlayobjectcell.hxx b/include/svx/sdr/overlay/overlayobjectcell.hxx index 989c7c903e89..08e41ca85343 100644 --- a/include/svx/sdr/overlay/overlayobjectcell.hxx +++ b/include/svx/sdr/overlay/overlayobjectcell.hxx @@ -44,7 +44,7 @@ namespace sdr RangeVector maRectangles; // geometry creation for OverlayObject - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: OverlayObjectCell( CellOverlayType eType, const Color& rColor, const RangeVector& rRects); diff --git a/include/svx/sdr/overlay/overlaypolypolygon.hxx b/include/svx/sdr/overlay/overlaypolypolygon.hxx index 4e331b0356f1..998b805dcb85 100644 --- a/include/svx/sdr/overlay/overlaypolypolygon.hxx +++ b/include/svx/sdr/overlay/overlaypolypolygon.hxx @@ -37,7 +37,7 @@ namespace sdr basegfx::B2DPolyPolygon maLinePolyPolygon; // geometry creation for OverlayObject - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: explicit OverlayPolyPolygonStripedAndFilled( diff --git a/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx b/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx index dcaf3c7ed886..2c63a1f6e77a 100644 --- a/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx +++ b/include/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx @@ -34,18 +34,18 @@ namespace sdr { protected: // the sequence of primitives to show - const drawinglayer::primitive2d::Primitive2DSequence maSequence; + const drawinglayer::primitive2d::Primitive2DContainer maSequence; // geometry creation for OverlayObject - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: - explicit OverlayPrimitive2DSequenceObject(const drawinglayer::primitive2d::Primitive2DSequence& rSequence); + explicit OverlayPrimitive2DSequenceObject(const drawinglayer::primitive2d::Primitive2DContainer& rSequence); virtual ~OverlayPrimitive2DSequenceObject(); // data read access - const drawinglayer::primitive2d::Primitive2DSequence& getSequence() const { return maSequence; } + const drawinglayer::primitive2d::Primitive2DContainer& getSequence() const { return maSequence; } }; } // end of namespace overlay } // end of namespace sdr diff --git a/include/svx/sdr/overlay/overlayselection.hxx b/include/svx/sdr/overlay/overlayselection.hxx index 297a1e08a48d..cdd3448e10ed 100644 --- a/include/svx/sdr/overlay/overlayselection.hxx +++ b/include/svx/sdr/overlay/overlayselection.hxx @@ -47,7 +47,7 @@ namespace sdr std::vector< basegfx::B2DRange > maRanges; // Values of last primitive creation. These are checked in getOverlayObjectPrimitive2DSequence - // to evtl. get rid of last Primitive2DSequence. This ensures that these values are up-to-date + // to evtl. get rid of last Primitive2DContainer. This ensures that these values are up-to-date // and are usable when creating primitives OverlayType maLastOverlayType; sal_uInt16 mnLastTransparence; @@ -56,7 +56,7 @@ namespace sdr bool mbBorder : 1; // geometry creation for OverlayObject, can use local *Last* values - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: OverlaySelection( @@ -71,7 +71,7 @@ namespace sdr bool getBorder() const { return mbBorder; } /// override to check conditions for last createOverlayObjectPrimitive2DSequence - virtual drawinglayer::primitive2d::Primitive2DSequence getOverlayObjectPrimitive2DSequence() const override; + virtual drawinglayer::primitive2d::Primitive2DContainer getOverlayObjectPrimitive2DSequence() const override; // data write access void setRanges(const std::vector< basegfx::B2DRange >& rNew); diff --git a/include/svx/sdr/overlay/overlaytriangle.hxx b/include/svx/sdr/overlay/overlaytriangle.hxx index a05d6de6ef30..3dcbc52f1151 100644 --- a/include/svx/sdr/overlay/overlaytriangle.hxx +++ b/include/svx/sdr/overlay/overlaytriangle.hxx @@ -34,7 +34,7 @@ namespace sdr basegfx::B2DPoint maThirdPosition; // geometry creation for OverlayObject - virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence() override; + virtual drawinglayer::primitive2d::Primitive2DContainer createOverlayObjectPrimitive2DSequence() override; public: OverlayTriangle( |