diff options
author | Armin Weiss <aw@openoffice.org> | 2007-07-10 10:28:08 +0000 |
---|---|---|
committer | Armin Weiss <aw@openoffice.org> | 2007-07-10 10:28:08 +0000 |
commit | 18ef32facdcce5198133be07299a768c70d5ecad (patch) | |
tree | c800959006887b9bd8964e3baa6deaf1c9be8635 /drawinglayer | |
parent | 73c44ff8ba10893524c8e3a6498c70ca62ffd78a (diff) |
#i39532# corrected descriptor, added MapMode pixel change support at process() instead of constructor/destructor
Diffstat (limited to 'drawinglayer')
-rw-r--r-- | drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx | 14 | ||||
-rw-r--r-- | drawinglayer/source/processor2d/vclprocessor2d.cxx | 29 |
2 files changed, 26 insertions, 17 deletions
diff --git a/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx b/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx index 8c88774e34..c502c970fc 100644 --- a/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx +++ b/drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx @@ -4,9 +4,9 @@ * * $RCSfile: vclprocessor2d.hxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: aw $ $Date: 2007-07-09 13:19:09 $ + * last change: $Author: aw $ $Date: 2007-07-10 11:28:08 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -110,7 +110,7 @@ namespace drawinglayer // as tooling, the process() implementation takes over API handling and calls this // virtual render method when the primitive implementation is BasePrimitive2D-based. - virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate) = 0; + virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) = 0; public: // constructor/destructor @@ -120,7 +120,7 @@ namespace drawinglayer virtual ~VclProcessor2D(); // the central processing method - // This VCL base implementation takes over the API handling and calls processBasePrinitive2D + // This VCL base implementation takes over the API handling and calls processBasePrimitive2D // directly when it's a BasePrinitive2D implementation. This is used as tooling from derived // implementations virtual void process(const primitive2d::Primitive2DSequence& rSource); @@ -139,7 +139,7 @@ namespace drawinglayer protected: // the local processor for BasePrinitive2D-Implementation based primitives, // called from the common process()-implementation - virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate); + virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate); public: // constructor/destructor @@ -162,7 +162,7 @@ namespace drawinglayer protected: // the local processor for BasePrinitive2D-Implementation based primitives, // called from the common process()-implementation - virtual void processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate); + virtual void processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate); public: // constructor/destructor @@ -171,6 +171,8 @@ namespace drawinglayer OutputDevice& rOutDev); virtual ~VclPixelProcessor2D(); + // overloaded here to reset the MapMode at the target OutDev + virtual void process(const primitive2d::Primitive2DSequence& rSource); }; } // end of namespace processor2d } // end of namespace drawinglayer diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index 267afe788b..5d4105202b 100644 --- a/drawinglayer/source/processor2d/vclprocessor2d.cxx +++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx @@ -4,9 +4,9 @@ * * $RCSfile: vclprocessor2d.cxx,v $ * - * $Revision: 1.9 $ + * $Revision: 1.10 $ * - * last change: $Author: aw $ $Date: 2007-07-09 13:19:09 $ + * last change: $Author: aw $ $Date: 2007-07-10 11:28:08 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -800,7 +800,7 @@ namespace drawinglayer if(pBasePrimitive) { // it is a BasePrimitive2D implementation, use local processor - processBasePrinitive2D(*pBasePrimitive); + processBasePrimitive2D(*pBasePrimitive); } else { @@ -852,7 +852,7 @@ namespace drawinglayer // MapMode was not changed, no restore necessary } - void VclMetafileProcessor2D::processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate) + void VclMetafileProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) { switch(rCandidate.getPrimitiveID()) { @@ -951,19 +951,13 @@ namespace drawinglayer { // prepare maCurrentTransformation matrix with viewTransformation to target directly to pixels maCurrentTransformation = rViewInformation.getViewTransformation(); - - // prepare output to pixels - mpOutputDevice->Push(PUSH_MAPMODE); - mpOutputDevice->SetMapMode(); } VclPixelProcessor2D::~VclPixelProcessor2D() { - // restore MapMode - mpOutputDevice->Pop(); } - void VclPixelProcessor2D::processBasePrinitive2D(const primitive2d::BasePrimitive2D& rCandidate) + void VclPixelProcessor2D::processBasePrimitive2D(const primitive2d::BasePrimitive2D& rCandidate) { switch(rCandidate.getPrimitiveID()) { @@ -1048,6 +1042,19 @@ namespace drawinglayer } } } + + void VclPixelProcessor2D::process(const primitive2d::Primitive2DSequence& rSource) + { + // prepare output directly to pixels + mpOutputDevice->Push(PUSH_MAPMODE); + mpOutputDevice->SetMapMode(); + + // call parent + VclProcessor2D::process(rSource); + + // restore MapMode + mpOutputDevice->Pop(); + } } // end of namespace processor2d } // end of namespace drawinglayer |