[Libreoffice-commits] core.git: Branch 'feature/slideshowprimitives' - 7 commits - canvas/source cppcanvas/CppunitTest_cppcanvas_test.mk cppcanvas/Library_cppcanvas.mk cppcanvas/Library_mtfrenderer.mk cppcanvas/Makefile cppcanvas/Module_cppcanvas.mk cppcanvas/qa cppcanvas/README cppcanvas/source drawinglayer/Library_drawinglayer.mk drawinglayer/source include/canvas offapi/com postprocess/Rdb_services.mk sd/CppunitTest_sd_uimpress.mk sdext/source sd/Library_sd.mk sd/Library_sdui.mk sd/source slideshow/CppunitTest_slideshow.mk slideshow/Executable_demoshow.mk slideshow/inc slideshow/Library_slideshow.mk slideshow/source slideshow/test slideshow/TODO

Thorsten Behrens thb at documentfoundation.org
Wed Nov 6 02:37:38 CET 2013


Rebased ref, commits from common ancestor:
commit d5d5a3437311f6f0c695fbdcde01012192d3d681
Author: Thorsten Behrens <thb at documentfoundation.org>
Date:   Sun Nov 3 21:20:00 2013 +0100

    Wrap up plain XCanvas with view-specific render state.
    
    Since XCanvas is stateless, we'd need to convey some state around,
    e.g. transformations and clips.
    
    Change-Id: I96ce2f4f1ab97c139e09938555d53f4f1edd2c02

diff --git a/slideshow/TODO b/slideshow/TODO
index bc1f820..5fc1c36 100644
--- a/slideshow/TODO
+++ b/slideshow/TODO
@@ -1,6 +1,8 @@
 Stuff left doing
 ================
 
+ - remove extraneous throw specs from canvas and slideshow - or does
+   that break dbgutil builds?
  - grep for TODO-NYI
  - migrate emf+ renderer over to primitives
  - implement stateful canvas processor (e.g. for the color changes?)
@@ -10,5 +12,3 @@ Stuff left doing
  - how much of the wrapper state in cppcanvas _was_ actually useful?
  - review canvas api - e.g. for the createBitmap / createSprite
    methods, is anyone *not* creating a Size struct on the fly?
-
- - when all of that is done -> git rm cppcanvas
diff --git a/slideshow/source/engine/animatedsprite.cxx b/slideshow/source/engine/animatedsprite.cxx
index bb33250..74273a2 100644
--- a/slideshow/source/engine/animatedsprite.cxx
+++ b/slideshow/source/engine/animatedsprite.cxx
@@ -65,9 +65,9 @@ namespace slideshow
                              "AnimatedSprite::AnimatedSprite(): Could not create sprite" );
         }
 
-        uno::Reference< rendering::XCanvas > AnimatedSprite::getContentCanvas() const
+        const Canvas& AnimatedSprite::getContentCanvas() const
         {
-            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().mxCanvas.is(),
                              "AnimatedSprite::getContentCanvas(): No view layer canvas" );
 
             const uno::Reference< rendering::XCanvas > pContentCanvas( mpSprite->getContentCanvas() );
@@ -88,8 +88,7 @@ namespace slideshow
             // apply linear part of canvas view transformation to sprite canvas
             // TODO-NYI
             //pContentCanvas->setTransformation( aLinearTransform );
-
-            return pContentCanvas;
+            //return pContentCanvas;
         }
 
         bool AnimatedSprite::resize( const ::basegfx::B2DSize& rSpriteSizePixel )
diff --git a/slideshow/source/engine/rehearsetimingsactivity.cxx b/slideshow/source/engine/rehearsetimingsactivity.cxx
index 4aa7560..4d3dea2 100644
--- a/slideshow/source/engine/rehearsetimingsactivity.cxx
+++ b/slideshow/source/engine/rehearsetimingsactivity.cxx
@@ -306,7 +306,7 @@ void RehearseTimingsActivity::end()
 
 basegfx::B2DRange RehearseTimingsActivity::calcSpriteRectangle( UnoViewSharedPtr const& rView ) const
 {
-    const Reference<rendering::XBitmap> xBitmap( rView->getCanvas(),
+    const Reference<rendering::XBitmap> xBitmap( rView->getCanvas().mxCanvas,
                                                  UNO_QUERY );
     if( !xBitmap.is() )
         return basegfx::B2DRange();
diff --git a/slideshow/source/engine/shapes/drawshape.cxx b/slideshow/source/engine/shapes/drawshape.cxx
index 8ea1d22..07bf2ea 100644
--- a/slideshow/source/engine/shapes/drawshape.cxx
+++ b/slideshow/source/engine/shapes/drawshape.cxx
@@ -299,7 +299,7 @@ namespace slideshow
                     // always assuming full bounds?
 
                     css::uno::Reference< css::rendering::XCanvas > pDestinationCanvas(
-                        maViewShapes.front()->getViewLayer()->getCanvas() );
+                        maViewShapes.front()->getViewLayer()->getCanvas().mxCanvas );
 
 #if 0
                     // TODO-NYI
@@ -1003,7 +1003,7 @@ namespace slideshow
                 // view-agnostic, it might not stay like that.
                 ViewShapeSharedPtr const& pViewShape = maViewShapes.front();
                 css::uno::Reference< css::rendering::XCanvas > const pCanvas(
-                    pViewShape->getViewLayer()->getCanvas() );
+                    pViewShape->getViewLayer()->getCanvas().mxCanvas );
 
 #if 0
                 // TODO-NYI
diff --git a/slideshow/source/engine/shapes/shapeimporter.cxx b/slideshow/source/engine/shapes/shapeimporter.cxx
index 824ae15..f24d89f 100644
--- a/slideshow/source/engine/shapes/shapeimporter.cxx
+++ b/slideshow/source/engine/shapes/shapeimporter.cxx
@@ -497,7 +497,7 @@ void ShapeImporter::importPolygons(uno::Reference<beans::XPropertySet> const& xP
     {
         uno::Reference< rendering::XPolyPolygon2D > xPoly=
             basegfx::unotools::xPolyPolygonFromB2DPolygon(
-                (*aIter)->getCanvas()->getDevice(),
+                (*aIter)->getCanvas().mxCanvas->getDevice(),
                 aPoly);
 #if 0
         // TODO-NYI
diff --git a/slideshow/source/engine/shapes/viewappletshape.cxx b/slideshow/source/engine/shapes/viewappletshape.cxx
index 65165d6..0961d56 100644
--- a/slideshow/source/engine/shapes/viewappletshape.cxx
+++ b/slideshow/source/engine/shapes/viewappletshape.cxx
@@ -72,7 +72,7 @@ namespace slideshow
         {
             ENSURE_OR_THROW( rxShape.is(), "ViewAppletShape::ViewAppletShape(): Invalid Shape" );
             ENSURE_OR_THROW( mpViewLayer, "ViewAppletShape::ViewAppletShape(): Invalid View" );
-            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(), "ViewAppletShape::ViewAppletShape(): Invalid ViewLayer canvas" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().mxCanvas.is(), "ViewAppletShape::ViewAppletShape(): Invalid ViewLayer canvas" );
             ENSURE_OR_THROW( mxComponentContext.is(), "ViewAppletShape::ViewAppletShape(): Invalid component context" );
 
             uno::Reference<lang::XMultiComponentFactory> xFactory(
@@ -127,11 +127,11 @@ namespace slideshow
 
         bool ViewAppletShape::startApplet( const ::basegfx::B2DRectangle& rBounds )
         {
-            ENSURE_OR_RETURN_FALSE( mpViewLayer && mpViewLayer->getCanvas().is(),
+            ENSURE_OR_RETURN_FALSE( mpViewLayer && mpViewLayer->getCanvas().mxCanvas.is(),
                                     "ViewAppletShape::startApplet(): Invalid or disposed view" );
             try
             {
-                css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
+                css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas().mxCanvas;
 
                 uno::Reference< beans::XPropertySet > xPropSet( pCanvas->getDevice(),
                                                                 uno::UNO_QUERY_THROW );
@@ -231,15 +231,15 @@ namespace slideshow
 
         bool ViewAppletShape::render( const ::basegfx::B2DRectangle& rBounds ) const
         {
-            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
+            const Canvas& rCanvas = mpViewLayer->getCanvas();
 
-            if( !pCanvas.is() )
+            if( !rCanvas.mxCanvas.is() )
                 return false;
 
             if( !mxFrame.is() )
             {
                 // fill the shape background with white
-                fillRect( pCanvas,
+                fillRect( rCanvas,
                           rBounds,
                           basegfx::BColor(1.0) );
             }
diff --git a/slideshow/source/engine/shapes/viewbackgroundshape.cxx b/slideshow/source/engine/shapes/viewbackgroundshape.cxx
index dfa3daa..fc6400a 100644
--- a/slideshow/source/engine/shapes/viewbackgroundshape.cxx
+++ b/slideshow/source/engine/shapes/viewbackgroundshape.cxx
@@ -141,7 +141,7 @@ namespace slideshow
         {
             ENSURE_OR_THROW( mpViewLayer,
                              "ViewBackgroundShape::ViewBackgroundShape(): Invalid View" );
-            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().mxCanvas.is(),
                              "ViewBackgroundShape::ViewBackgroundShape(): Invalid ViewLayer canvas" );
         }
 
@@ -154,7 +154,7 @@ namespace slideshow
         {
             SAL_INFO( "slideshow", "::presentation::internal::ViewBackgroundShape::draw()" );
 
-            const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas( mpViewLayer->getCanvas() );
+            const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas( mpViewLayer->getCanvas().mxCanvas );
 
             if( !prefetch( rDestinationCanvas, rMtf ) )
                 return false;
diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx
index 2e6f8bc..35eb4e6 100644
--- a/slideshow/source/engine/shapes/viewmediashape.cxx
+++ b/slideshow/source/engine/shapes/viewmediashape.cxx
@@ -79,7 +79,7 @@ namespace slideshow
         {
             ENSURE_OR_THROW( mxShape.is(), "ViewMediaShape::ViewMediaShape(): Invalid Shape" );
             ENSURE_OR_THROW( mpViewLayer, "ViewMediaShape::ViewMediaShape(): Invalid View" );
-            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(), "ViewMediaShape::ViewMediaShape(): Invalid ViewLayer canvas" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().mxCanvas.is(), "ViewMediaShape::ViewMediaShape(): Invalid ViewLayer canvas" );
             ENSURE_OR_THROW( mxComponentContext.is(), "ViewMediaShape::ViewMediaShape(): Invalid component context" );
 
             UnoViewSharedPtr pUnoView (::boost::dynamic_pointer_cast<UnoView>(rViewLayer));
@@ -177,7 +177,7 @@ namespace slideshow
 
         bool ViewMediaShape::render( const ::basegfx::B2DRectangle& rBounds ) const
         {
-            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
+            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas().mxCanvas;
 
             if( !pCanvas.is() )
                 return false;
@@ -220,7 +220,7 @@ namespace slideshow
         {
             maBounds = rNewBounds;
 
-            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
+            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas().mxCanvas;
 
             if( !pCanvas.is() )
                 return false;
@@ -283,10 +283,10 @@ namespace slideshow
         {
             if( !mxPlayer.is() && mxShape.is() )
             {
-                ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().is(),
+                ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().mxCanvas.is(),
                                         "ViewMediaShape::update(): Invalid layer canvas" );
 
-                uno::Reference< rendering::XCanvas > xCanvas( mpViewLayer->getCanvas() );
+                uno::Reference< rendering::XCanvas > xCanvas( mpViewLayer->getCanvas().mxCanvas );
 
                 if( xCanvas.is() )
                 {
diff --git a/slideshow/source/engine/shapes/viewshape.cxx b/slideshow/source/engine/shapes/viewshape.cxx
index e3d8579..2d92f71 100644
--- a/slideshow/source/engine/shapes/viewshape.cxx
+++ b/slideshow/source/engine/shapes/viewshape.cxx
@@ -508,7 +508,7 @@ namespace slideshow
             // sprite needs repaint - output to sprite canvas
             // ==============================================
 
-            css::uno::Reference< css::rendering::XCanvas > pContentCanvas( mpSprite->getContentCanvas() );
+            css::uno::Reference< css::rendering::XCanvas > pContentCanvas( mpSprite->getContentCanvas().mxCanvas );
 
             return draw( pContentCanvas,
                          xShape,
@@ -838,7 +838,7 @@ namespace slideshow
 
         ::basegfx::B2DSize ViewShape::getAntialiasingBorder() const
         {
-            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().mxCanvas.is(),
                               "ViewShape::getAntialiasingBorder(): Invalid ViewLayer canvas" );
 
 #if 0
@@ -884,7 +884,7 @@ namespace slideshow
                                 int                                       nUpdateFlags,
                                 bool                                      bIsVisible ) const
         {
-            ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().is(),
+            ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().mxCanvas.is(),
                                     "ViewShape::update(): Invalid layer canvas" );
 
             // Shall we render to a sprite, or to a plain canvas?
@@ -902,7 +902,7 @@ namespace slideshow
                                      rArgs.mnShapePriority,
                                      bIsVisible );
             else
-                return render( mpViewLayer->getCanvas(),
+                return render( mpViewLayer->getCanvas().mxCanvas,
                                xShape,
                                xPage,
                                xPrimitives,
diff --git a/slideshow/source/engine/slide/layermanager.cxx b/slideshow/source/engine/slide/layermanager.cxx
index f6b1e4a..7f82e2e 100644
--- a/slideshow/source/engine/slide/layermanager.cxx
+++ b/slideshow/source/engine/slide/layermanager.cxx
@@ -608,9 +608,10 @@ namespace slideshow
                     return true; // visible on all views
                 }
 
-                virtual css::uno::Reference< css::rendering::XCanvas > getCanvas() const
+                virtual const Canvas& getCanvas() const
                 {
-                    return mpCanvas;
+                    // TODO-NYI
+                    //return mpCanvas;
                 }
 
                 virtual void clear() const
diff --git a/slideshow/source/engine/slide/slideimpl.cxx b/slideshow/source/engine/slide/slideimpl.cxx
index ec3fb75..7582c9d 100644
--- a/slideshow/source/engine/slide/slideimpl.cxx
+++ b/slideshow/source/engine/slide/slideimpl.cxx
@@ -308,8 +308,8 @@ public:
         // fully clear view content to background color
         rView->clearAll();
 
-        SlideBitmapSharedPtr         pBitmap( mrSlide.getCurrentSlideBitmap( rView ) );
-        css::uno::Reference< css::rendering::XCanvas > pCanvas( rView->getCanvas() );
+        SlideBitmapSharedPtr pBitmap( mrSlide.getCurrentSlideBitmap( rView ) );
+        const Canvas&        rCanvas( rView->getCanvas() );
 
         const ::basegfx::B2DHomMatrix   aViewTransform( rView->getTransformation() );
         const ::basegfx::B2DPoint       aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
@@ -748,7 +748,7 @@ bool SlideImpl::isAnimated()
 SlideBitmapSharedPtr SlideImpl::createCurrentSlideBitmap( const UnoViewSharedPtr&   rView,
                                                           const ::basegfx::B2ISize& rBmpSize ) const
 {
-    ENSURE_OR_THROW( rView && rView->getCanvas().is(),
+    ENSURE_OR_THROW( rView && rView->getCanvas().mxCanvas.is(),
                       "SlideImpl::createCurrentSlideBitmap(): Invalid view" );
     ENSURE_OR_THROW( mpLayerManager,
                       "SlideImpl::createCurrentSlideBitmap(): Invalid layer manager" );
@@ -756,7 +756,7 @@ SlideBitmapSharedPtr SlideImpl::createCurrentSlideBitmap( const UnoViewSharedPtr
                       "SlideImpl::createCurrentSlideBitmap(): No show loaded" );
 
     uno::Reference< rendering::XCanvas > pCanvas(
-        rView->getCanvas() );
+        rView->getCanvas().mxCanvas );
 
     // create a bitmap of appropriate size
     uno::Reference< rendering::XBitmap > pBitmap(
diff --git a/slideshow/source/engine/slide/userpaintoverlay.cxx b/slideshow/source/engine/slide/userpaintoverlay.cxx
index 788a9bd..d19bd7a 100644
--- a/slideshow/source/engine/slide/userpaintoverlay.cxx
+++ b/slideshow/source/engine/slide/userpaintoverlay.cxx
@@ -145,7 +145,7 @@ namespace slideshow
 
                         //get via SlideImpl instance the bitmap of the slide unmodified to redraw it
                         SlideBitmapSharedPtr         pBitmap( mrSlide.getCurrentSlideBitmap( (*aIter) ) );
-                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas() );
+                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas().mxCanvas );
 
                         const ::basegfx::B2DHomMatrix   aViewTransform( (*aIter)->getTransformation() );
                         const ::basegfx::B2DPoint       aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
@@ -374,7 +374,7 @@ namespace slideshow
 
                         //get via SlideImpl instance the bitmap of the slide unmodified to redraw it
                         SlideBitmapSharedPtr pBitmap( mrSlide.getCurrentSlideBitmap( (*aIter) ) );
-                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas() );
+                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas().mxCanvas );
 
                         ::basegfx::B2DHomMatrix   aViewTransform( (*aIter)->getTransformation() );
                         const ::basegfx::B2DPoint aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
@@ -425,7 +425,7 @@ namespace slideshow
                         {
                             uno::Reference< rendering::XPolyPolygon2D > pPolyPoly(
                                 basegfx::unotools::xPolyPolygonFromB2DPolygon(
-                                    (*aIter)->getCanvas()->getDevice(),
+                                    (*aIter)->getCanvas().mxCanvas->getDevice(),
                                     aPoly ) );
 
                             if( pPolyPoly.is() )
diff --git a/slideshow/source/engine/slidebitmap.cxx b/slideshow/source/engine/slidebitmap.cxx
index df9a39b..f983d69 100644
--- a/slideshow/source/engine/slidebitmap.cxx
+++ b/slideshow/source/engine/slidebitmap.cxx
@@ -50,9 +50,9 @@ namespace slideshow
             ENSURE_OR_THROW( mxBitmap.is(), "SlideBitmap::SlideBitmap(): Invalid bitmap" );
         }
 
-        bool SlideBitmap::draw( const css::uno::Reference< css::rendering::XCanvas >& rCanvas ) const
+        bool SlideBitmap::draw( const Canvas& rCanvas ) const
         {
-            ENSURE_OR_RETURN_FALSE( rCanvas.is(),
+            ENSURE_OR_RETURN_FALSE( rCanvas.mxCanvas.is(),
                                     "SlideBitmap::draw(): Invalid canvas" );
 
             // selectively only copy the transformation from current viewstate,
@@ -74,13 +74,13 @@ namespace slideshow
                     // TODO(P1): Buffer the clip polygon
                     aRenderState.Clip =
                         ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(
-                            rCanvas->getDevice(),
+                            rCanvas.mxCanvas->getDevice(),
                             maClipPoly );
                 }
 
-                rCanvas->drawBitmap( mxBitmap,
-                                     aViewState,
-                                     aRenderState );
+                rCanvas.mxCanvas->drawBitmap( mxBitmap,
+                                              aViewState,
+                                              aRenderState );
             }
             catch( uno::Exception& )
             {
diff --git a/slideshow/source/engine/slideview.cxx b/slideshow/source/engine/slideview.cxx
index 0a00611..aa921e7 100644
--- a/slideshow/source/engine/slideview.cxx
+++ b/slideshow/source/engine/slideview.cxx
@@ -591,7 +591,7 @@ private:
         return rView.get() == mpParentView;
     }
 
-    virtual uno::Reference<rendering::XCanvas> getCanvas() const
+    virtual const Canvas& getCanvas() const
     {
         if( !mpOutputCanvas.is() )
         {
@@ -652,7 +652,8 @@ private:
 #endif
         }
 
-        return mpOutputCanvas;
+        // TODO-NYI
+        // return mpOutputCanvas;
     }
 
     virtual void setClip( const basegfx::B2DPolyPolygon& rClip )
@@ -719,7 +720,7 @@ private:
     virtual bool isOnView(boost::shared_ptr<View> const& rView) const;
     virtual void clear() const;
     virtual void clearAll() const;
-    virtual css::uno::Reference<rendering::XCanvas> getCanvas() const;
+    virtual const Canvas& getCanvas() const;
     virtual css::uno::Reference<rendering::XCustomSprite> createSprite( const ::basegfx::B2DSize& rSpriteSizePixel,
                                                            double                    nPriority ) const;
     virtual void setPriority( const basegfx::B1DRange& rRange );
@@ -942,14 +943,15 @@ bool SlideView::isOnView(boost::shared_ptr<View> const& rView) const
     return rView.get() == this;
 }
 
-css::uno::Reference< css::rendering::XCanvas > SlideView::getCanvas() const
+const Canvas& SlideView::getCanvas() const
 {
     osl::MutexGuard aGuard( m_aMutex );
 
     ENSURE_OR_THROW( mpCanvas.is(),
                       "SlideView::getCanvas(): Disposed" );
 
-    return mpCanvas;
+    // TODO-NYI
+    // return mpCanvas;
 }
 
 css::uno::Reference< css::rendering::XCustomSprite > SlideView::createSprite(
diff --git a/slideshow/source/engine/tools.cxx b/slideshow/source/engine/tools.cxx
index 59865ab..120d13e 100644
--- a/slideshow/source/engine/tools.cxx
+++ b/slideshow/source/engine/tools.cxx
@@ -669,23 +669,22 @@ namespace slideshow
                              static_cast< sal_uInt8 >( nColor )        / 255.0 );
         }
 
-        void fillRect( const uno::Reference< rendering::XCanvas >& xCanvas,
-                       const ::basegfx::B2DRectangle&              rRect,
-                       const basegfx::BColor&                      rFillColor )
+        void fillRect( const Canvas&                  rCanvas,
+                       const ::basegfx::B2DRectangle& rRect,
+                       const basegfx::BColor&         rFillColor )
         {
             // TODO-NYI
-            rendering::ViewState aViewState;
             rendering::RenderState aRenderState;
             canvas::tools::initRenderState(aRenderState);
             aRenderState.DeviceColor =
                 rFillColor.colorToDoubleSequence(
-                    xCanvas->getDevice());
+                    rCanvas.mxCanvas->getDevice());
 
-            xCanvas->fillPolyPolygon(
+            rCanvas.mxCanvas->fillPolyPolygon(
                 basegfx::unotools::xPolyPolygonFromB2DPolygon(
-                    xCanvas->getDevice(),
+                    rCanvas.mxCanvas->getDevice(),
                     ::basegfx::tools::createPolygonFromRect( rRect )),
-                aViewState,  aRenderState);
+                rCanvas.maViewState,  aRenderState);
         }
 
         ::basegfx::B2DRectangle getAPIShapeBounds( const uno::Reference< drawing::XShape >& xShape )
diff --git a/slideshow/source/engine/transitions/combtransition.cxx b/slideshow/source/engine/transitions/combtransition.cxx
index 94f920b..f80a194 100644
--- a/slideshow/source/engine/transitions/combtransition.cxx
+++ b/slideshow/source/engine/transitions/combtransition.cxx
@@ -92,7 +92,7 @@ void CombTransition::renderComb( double           ,
                                  const ViewEntry& rViewEntry ) const
 {
     const SlideBitmapSharedPtr& pEnteringBitmap = getEnteringBitmap(rViewEntry);
-    const uno::Reference<rendering::XCanvas> pCanvas = rViewEntry.mpView->getCanvas();
+    const uno::Reference<rendering::XCanvas> pCanvas = rViewEntry.mpView->getCanvas().mxCanvas;
 
     if( !pEnteringBitmap || !pCanvas.is() )
         return;
diff --git a/slideshow/source/engine/transitions/slidechangebase.cxx b/slideshow/source/engine/transitions/slidechangebase.cxx
index d33da9c..38aaed3 100644
--- a/slideshow/source/engine/transitions/slidechangebase.cxx
+++ b/slideshow/source/engine/transitions/slidechangebase.cxx
@@ -102,7 +102,7 @@ SlideBitmapSharedPtr SlideChangeBase::createBitmap( const UnoViewSharedPtr&
             getSlideSizePixel( basegfx::B2DSize( mpEnteringSlide->getSlideSize() ),
                                rView ));
 
-        uno::Reference<rendering::XCanvas> pCanvas( rView->getCanvas() );
+        uno::Reference<rendering::XCanvas> pCanvas( rView->getCanvas().mxCanvas );
 
         // create a bitmap of appropriate size
         uno::Reference<rendering::XBitmap> pBitmap(
@@ -200,7 +200,7 @@ void SlideChangeBase::start( const AnimatableShapeSharedPtr&     rShape,
 
     // get the subclasses a chance to do any specific initialization before run
     for ( ViewsVecT::const_iterator aCurr( beginViews() ), aEnd( endViews() ); aCurr != aEnd; ++aCurr )
-        prepareForRun( *aCurr, aCurr->mpView->getCanvas() );
+        prepareForRun( *aCurr, aCurr->mpView->getCanvas().mxCanvas );
 
     // start accompanying sound effect, if any
     if( mpSoundPlayer )
@@ -232,7 +232,7 @@ void SlideChangeBase::end()
             pSlideBitmap->clip( basegfx::B2DPolyPolygon() /* no clipping */ );
             aCurr->mpView->clearAll();
             renderBitmap( pSlideBitmap,
-                          aCurr->mpView->getCanvas() );
+                          aCurr->mpView->getCanvas().mxCanvas );
 
             ++aCurr;
         }
@@ -277,7 +277,7 @@ bool SlideChangeBase::operator()( double nValue )
         // (i.e. pixel).
 
         ViewEntry& rViewEntry( maViewData[i] );
-        const uno::Reference<rendering::XCanvas>& rCanvas( rViewEntry.mpView->getCanvas() );
+        const uno::Reference<rendering::XCanvas>& rCanvas( rViewEntry.mpView->getCanvas().mxCanvas );
         uno::Reference<rendering::XCustomSprite>& rInSprite( rViewEntry.mpInSprite );
         uno::Reference<rendering::XCustomSprite>& rOutSprite( rViewEntry.mpOutSprite );
 
@@ -316,8 +316,9 @@ bool SlideChangeBase::operator()( double nValue )
 
                     // render the content
                     OSL_ASSERT( getLeavingBitmap( rViewEntry ) );
-                    if( getLeavingBitmap( rViewEntry ) )
-                        getLeavingBitmap( rViewEntry )->draw( pOutContentCanvas );
+                    // TODO-NYI
+                    //if( getLeavingBitmap( rViewEntry ) )
+                        //getLeavingBitmap( rViewEntry )->draw( pOutContentCanvas );
                 }
             }
 
@@ -335,7 +336,8 @@ bool SlideChangeBase::operator()( double nValue )
                     // between different canvases!
 
                     // render the content
-                    getEnteringBitmap( rViewEntry )->draw( pInContentCanvas );
+                    // TODO-NYI
+                    //getEnteringBitmap( rViewEntry )->draw( pInContentCanvas );
                 }
             }
         }
diff --git a/slideshow/source/inc/animatedsprite.hxx b/slideshow/source/inc/animatedsprite.hxx
index 8be16d0..5c0cb1e 100644
--- a/slideshow/source/inc/animatedsprite.hxx
+++ b/slideshow/source/inc/animatedsprite.hxx
@@ -21,7 +21,6 @@
 #define INCLUDED_SLIDESHOW_ANIMATEDSPRITE_HXX
 
 #include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/rendering/XCanvas.hpp>
 #include <com/sun/star/rendering/XCustomSprite.hpp>
 
 #include <basegfx/matrix/b2dhommatrix.hxx>
@@ -29,6 +28,7 @@
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 
+#include "canvas.hxx"
 #include "viewlayer.hxx"
 
 #include <boost/optional.hpp>
@@ -106,7 +106,7 @@ namespace slideshow
                 canvas is already correctly setup, matching the
                 associated destination canvas.
              */
-            css::uno::Reference< css::rendering::XCanvas > getContentCanvas() const;
+            const Canvas& getContentCanvas() const;
 
             /** Move the sprite in device pixel space.
 
diff --git a/slideshow/source/inc/canvas.hxx b/slideshow/source/inc/canvas.hxx
new file mode 100644
index 0000000..bd955af
--- /dev/null
+++ b/slideshow/source/inc/canvas.hxx
@@ -0,0 +1,34 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_SLIDESHOW_CANVAS_HXX
+#define INCLUDED_SLIDESHOW_CANVAS_HXX
+
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/rendering/XCanvas.hpp>
+#include <com/sun/star/rendering/ViewState.hpp>
+#include <drawinglayer/geometry/viewinformation2d.hxx>
+
+namespace slideshow
+{
+    namespace internal
+    {
+        /// XCanvas and state parameters to render stuff
+        struct Canvas
+        {
+            css::uno::Reference< css::rendering::XCanvas > mxCanvas;
+            css::rendering::ViewState                      maViewState;
+            ::drawinglayer::geometry::ViewInformation2D    maViewInfo;
+        };
+    }
+}
+
+#endif /* INCLUDED_SLIDESHOW_CANVAS_HXX */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/slideshow/source/inc/slidebitmap.hxx b/slideshow/source/inc/slidebitmap.hxx
index 2856fd8..f0fd9b3 100644
--- a/slideshow/source/inc/slidebitmap.hxx
+++ b/slideshow/source/inc/slidebitmap.hxx
@@ -21,13 +21,14 @@
 #define INCLUDED_SLIDESHOW_SLIDEBITMAP_HXX
 
 #include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/rendering/XCanvas.hpp>
 #include <com/sun/star/rendering/XBitmap.hpp>
 
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/vector/b2isize.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 
+#include "canvas.hxx"
+
 #include <boost/shared_ptr.hpp>
 #include <boost/noncopyable.hpp>
 
@@ -63,7 +64,7 @@ namespace slideshow
         public:
             SlideBitmap( const css::uno::Reference< css::rendering::XBitmap >& rBitmap );
 
-            bool                draw( const css::uno::Reference< css::rendering::XCanvas >& rCanvas ) const;
+            bool                draw( const Canvas& rCanvas ) const;
             ::basegfx::B2ISize  getSize() const;
             ::basegfx::B2DPoint getOutputPos() const{return maOutputPos;}
             void                move( const ::basegfx::B2DPoint& rNewPos );
diff --git a/slideshow/source/inc/tools.hxx b/slideshow/source/inc/tools.hxx
index c2053e0..7caf742 100644
--- a/slideshow/source/inc/tools.hxx
+++ b/slideshow/source/inc/tools.hxx
@@ -27,6 +27,7 @@
 
 #include <basegfx/color/bcolor.hxx>
 
+#include "canvas.hxx"
 #include "shapeattributelayer.hxx"
 #include "shape.hxx"
 #include "rgbcolor.hxx"
@@ -274,9 +275,9 @@ namespace slideshow
 
         /** Fill a plain rectangle on the given canvas with the given color
          */
-        void fillRect( const css::uno::Reference< css::rendering::XCanvas >& rCanvas,
-                       const basegfx::B2DRange&                              rRect,
-                       const basegfx::BColor&                                rFillColor );
+        void fillRect( const Canvas&            rCanvas,
+                       const basegfx::B2DRange& rRect,
+                       const basegfx::BColor&   rFillColor );
 
         /// Gets a random ordinal [0,n)
         inline ::std::size_t getRandomOrdinal( const ::std::size_t n )
diff --git a/slideshow/source/inc/viewlayer.hxx b/slideshow/source/inc/viewlayer.hxx
index b412965..8d4cb16 100644
--- a/slideshow/source/inc/viewlayer.hxx
+++ b/slideshow/source/inc/viewlayer.hxx
@@ -24,9 +24,10 @@
 #include <boost/shared_ptr.hpp>
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/geometry/IntegerSize2D.hpp>
-#include <com/sun/star/rendering/XCanvas.hpp>
 #include <com/sun/star/rendering/XCustomSprite.hpp>
 
+#include "canvas.hxx"
+
 namespace basegfx
 {
     class B1DRange;
@@ -45,6 +46,14 @@ namespace slideshow
     {
         class View;
 
+        /** One layer in a View
+
+            One out of possibly many layers in one View (in the MVC
+            sense of view) of the slideshow. We use ViewLayers to
+            group shapes with similar animation state, such that
+            animated effects display at the right 'z' order (i.e. in
+            front or behind other shapes).
+         */
         class ViewLayer
         {
         public:
@@ -62,7 +71,7 @@ namespace slideshow
                 The canvas returned by this method must not change, as
                 long as this object is alive.
             */
-            virtual css::uno::Reference< css::rendering::XCanvas > getCanvas() const = 0;
+            virtual const Canvas& getCanvas() const = 0;
 
             /** Clear the clipped view layer area
 
@@ -98,8 +107,8 @@ namespace slideshow
                 canvas does not support sprites).
             */
             virtual css::uno::Reference< css::rendering::XCustomSprite >
-            createSprite( const basegfx::B2DVector& rSpriteSizePixel,
-                          double                    nPriority ) const = 0;
+                createSprite( const basegfx::B2DVector& rSpriteSizePixel,
+                              double                    nPriority ) const = 0;
 
             /** Set the layer priority range
 
commit 32bd5a13ac09457eebc59b56bdee3cad771dd49b
Author: Thorsten Behrens <thb at documentfoundation.org>
Date:   Fri Nov 1 00:55:26 2013 +0100

    [API CHANGE] Avoid excessive compound struct use for XCanvas.
    
    Avoid excessive use of compound structures like integer or real
    number sizes for bitmap or sprite creation. Everyone has to convert
    into temporary UNO API compound structs at call sites otherwise,
    let's skip that waste.
    
    Change-Id: Ia242175334a48deabaf081675306377c1ba4322c

diff --git a/canvas/source/cairo/cairo_canvascustomsprite.cxx b/canvas/source/cairo/cairo_canvascustomsprite.cxx
index 171336f..05d15b5 100644
--- a/canvas/source/cairo/cairo_canvascustomsprite.cxx
+++ b/canvas/source/cairo/cairo_canvascustomsprite.cxx
@@ -37,16 +37,17 @@ using namespace ::com::sun::star;
 
 namespace cairocanvas
 {
-    CanvasCustomSprite::CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D&   rSpriteSize,
-                                            const SpriteCanvasRef&                          rRefDevice ) :
+    CanvasCustomSprite::CanvasCustomSprite( double width,
+                                            double height,
+                                            const SpriteCanvasRef& rRefDevice ) :
         mpSpriteCanvas( rRefDevice ),
-        maSize( ::canvas::tools::roundUp( rSpriteSize.Width ),
-                ::canvas::tools::roundUp( rSpriteSize.Height ) )
+        maSize( ::canvas::tools::roundUp( width ),
+                ::canvas::tools::roundUp( height ) )
     {
         ENSURE_OR_THROW( rRefDevice.get(),
                           "CanvasCustomSprite::CanvasCustomSprite(): Invalid sprite canvas" );
 
-        SAL_INFO( "canvas.cairo", "sprite size: " << ::canvas::tools::roundUp( rSpriteSize.Width ) << ", " << ::canvas::tools::roundUp( rSpriteSize.Height ));
+        SAL_INFO( "canvas.cairo", "sprite size: " << ::canvas::tools::roundUp( width ) << ", " << ::canvas::tools::roundUp( height ));
 
         mpBufferSurface = mpSpriteCanvas->createSurface( maSize );
 
@@ -55,7 +56,7 @@ namespace cairocanvas
                              rRefDevice.get() );
         maCanvasHelper.setSurface( mpBufferSurface, true );
 
-        maSpriteHelper.init( rSpriteSize,
+        maSpriteHelper.init( width, height,
                              rRefDevice );
         maSpriteHelper.setSurface( mpBufferSurface );
 
diff --git a/canvas/source/cairo/cairo_canvascustomsprite.hxx b/canvas/source/cairo/cairo_canvascustomsprite.hxx
index cfb6377..5a5c2b7 100644
--- a/canvas/source/cairo/cairo_canvascustomsprite.hxx
+++ b/canvas/source/cairo/cairo_canvascustomsprite.hxx
@@ -87,7 +87,10 @@ namespace cairocanvas
     public:
         /** Create a custom sprite
 
-            @param rSpriteSize
+            @param width
+            Size of the sprite in pixel
+
+            @param height
             Size of the sprite in pixel
 
             @param rRefDevice
@@ -99,8 +102,9 @@ namespace cairocanvas
             @param rDevice
             Target DX device
          */
-        CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D&   rSpriteSize,
-                            const SpriteCanvasRef&                          rRefDevice );
+        CanvasCustomSprite( double width,
+                            double height,
+                            const SpriteCanvasRef& rRefDevice );
 
         virtual void disposeThis();
 
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index 28eb92e..57345fc 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -1562,8 +1562,9 @@ namespace cairocanvas
         return ::basegfx::unotools::integerSize2DFromB2ISize( maSize );
     }
 
-    uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
-                                                                        sal_Bool                    /*beFast*/ )
+    uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( double width,
+                                                                        double height,
+                                                                        sal_Bool /*beFast*/ )
     {
 #ifdef CAIRO_CANVAS_PERF_TRACE
         struct timespec aTimer;
@@ -1572,9 +1573,11 @@ namespace cairocanvas
 
         if( mpCairo )
         {
-            return uno::Reference< rendering::XBitmap >( new CanvasBitmap( ::basegfx::B2ISize( ::canvas::tools::roundUp( newSize.Width ),
-                                                                                               ::canvas::tools::roundUp( newSize.Height ) ),
-                                                                           mpSurfaceProvider, mpDevice, false ) );
+            return uno::Reference< rendering::XBitmap >(
+                new CanvasBitmap(
+                    ::basegfx::B2ISize( ::canvas::tools::roundUp( width ),
+                                        ::canvas::tools::roundUp( height ) ),
+                    mpSurfaceProvider, mpDevice, false ) );
         }
         else
             SAL_INFO( "canvas.cairo", "CanvasHelper called after it was disposed");
diff --git a/canvas/source/cairo/cairo_canvashelper.hxx b/canvas/source/cairo/cairo_canvashelper.hxx
index c90e79a..31fab24 100644
--- a/canvas/source/cairo/cairo_canvashelper.hxx
+++ b/canvas/source/cairo/cairo_canvashelper.hxx
@@ -231,8 +231,9 @@ namespace cairocanvas
         ::com::sun::star::geometry::IntegerSize2D getSize();
 
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-            getScaledBitmap( const ::com::sun::star::geometry::RealSize2D&  newSize,
-                             sal_Bool                                       beFast );
+            getScaledBitmap( double width,
+                             double height,
+                             sal_Bool beFast );
 
         ::com::sun::star::uno::Sequence< sal_Int8 >
             getData( ::com::sun::star::rendering::IntegerBitmapLayout&      bitmapLayout,
diff --git a/canvas/source/cairo/cairo_devicehelper.cxx b/canvas/source/cairo/cairo_devicehelper.cxx
index 3973836..89bbb094 100644
--- a/canvas/source/cairo/cairo_devicehelper.cxx
+++ b/canvas/source/cairo/cairo_devicehelper.cxx
@@ -158,7 +158,7 @@ namespace cairocanvas
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  rDevice,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         // disposed?
         if( !mpSurfaceProvider )
@@ -166,7 +166,7 @@ namespace cairocanvas
 
         return uno::Reference< rendering::XBitmap >(
             new CanvasBitmap(
-                ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
+                ::basegfx::B2ISize( width, height ),
                 SurfaceProviderRef(mpSurfaceProvider),
                 rDevice.get(),
                 false ));
@@ -174,14 +174,14 @@ namespace cairocanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  ,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  rDevice,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         // disposed?
         if( !mpSurfaceProvider )
@@ -189,7 +189,7 @@ namespace cairocanvas
 
         return uno::Reference< rendering::XBitmap >(
             new CanvasBitmap(
-                ::basegfx::unotools::b2ISizeFromIntegerSize2D( size ),
+                ::basegfx::B2ISize( width, height ),
                 SurfaceProviderRef(mpSurfaceProvider),
                 rDevice.get(),
                 true ));
@@ -197,7 +197,7 @@ namespace cairocanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  ,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
diff --git a/canvas/source/cairo/cairo_devicehelper.hxx b/canvas/source/cairo/cairo_devicehelper.hxx
index fec36e5..50643b2 100644
--- a/canvas/source/cairo/cairo_devicehelper.hxx
+++ b/canvas/source/cairo/cairo_devicehelper.hxx
@@ -67,16 +67,16 @@ namespace cairocanvas
             const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         sal_Bool hasFullScreenMode(  );
         sal_Bool enterFullScreenMode( sal_Bool bEnter );
 
diff --git a/canvas/source/cairo/cairo_spritecanvashelper.cxx b/canvas/source/cairo/cairo_spritecanvashelper.cxx
index bf30993..615b440 100644
--- a/canvas/source/cairo/cairo_spritecanvashelper.cxx
+++ b/canvas/source/cairo/cairo_spritecanvashelper.cxx
@@ -173,13 +173,13 @@ namespace cairocanvas
         return uno::Reference< rendering::XAnimatedSprite >();
     }
 
-    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( const geometry::RealSize2D& spriteSize )
+    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( double width, double height )
     {
         if( !mpRedrawManager )
             return uno::Reference< rendering::XCustomSprite >(); // we're disposed
 
         return uno::Reference< rendering::XCustomSprite >(
-            new CanvasCustomSprite( spriteSize,
+            new CanvasCustomSprite( width, height,
                                     mpOwningSpriteCanvas ) );
     }
 
diff --git a/canvas/source/cairo/cairo_spritecanvashelper.hxx b/canvas/source/cairo/cairo_spritecanvashelper.hxx
index 07c3aa8..63cb3f9 100644
--- a/canvas/source/cairo/cairo_spritecanvashelper.hxx
+++ b/canvas/source/cairo/cairo_spritecanvashelper.hxx
@@ -63,7 +63,7 @@ namespace cairocanvas
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XCustomSprite >      createCustomSprite(
-                const ::com::sun::star::geometry::RealSize2D& spriteSize );
+                  double width, double height );
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XSprite >                createClonedSprite(
diff --git a/canvas/source/cairo/cairo_spritehelper.cxx b/canvas/source/cairo/cairo_spritehelper.cxx
index 7992deb..be5e96e 100644
--- a/canvas/source/cairo/cairo_spritehelper.cxx
+++ b/canvas/source/cairo/cairo_spritehelper.cxx
@@ -51,8 +51,9 @@ namespace cairocanvas
         mbTextureDirty(true)
     {}
 
-    void SpriteHelper::init( const geometry::RealSize2D& rSpriteSize,
-                             const SpriteCanvasRef&      rSpriteCanvas )
+    void SpriteHelper::init( double width,
+                             double height,
+                             const SpriteCanvasRef& rSpriteCanvas )
     {
         ENSURE_OR_THROW( rSpriteCanvas.get(),
                           "SpriteHelper::init(): Invalid device, sprite canvas or surface" );
@@ -61,7 +62,7 @@ namespace cairocanvas
         mbTextureDirty     = true;
 
         // also init base class
-        CanvasCustomSpriteHelper::init( rSpriteSize,
+        CanvasCustomSpriteHelper::init( width, height,
                                         rSpriteCanvas.get() );
     }
 
diff --git a/canvas/source/cairo/cairo_spritehelper.hxx b/canvas/source/cairo/cairo_spritehelper.hxx
index 69385e5..e59e6d0 100644
--- a/canvas/source/cairo/cairo_spritehelper.hxx
+++ b/canvas/source/cairo/cairo_spritehelper.hxx
@@ -49,7 +49,10 @@ namespace cairocanvas
 
         /** Late-init the sprite helper
 
-            @param rSpriteSize
+            @param width
+            Size of the sprite
+
+            @param height
             Size of the sprite
 
             @param rSpriteCanvas
@@ -67,8 +70,9 @@ namespace cairocanvas
             @param bShowSpriteBounds
             When true, little debug bound rects for sprites are shown
          */
-        void init( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-                   const SpriteCanvasRef&                        rSpriteCanvas );
+        void init( double width,
+                   double height,
+                   const SpriteCanvasRef& rSpriteCanvas );
 
         void disposing();
 
diff --git a/canvas/source/directx/dx_bitmapcanvashelper.cxx b/canvas/source/directx/dx_bitmapcanvashelper.cxx
index e9577e1..25385b7 100644
--- a/canvas/source/directx/dx_bitmapcanvashelper.cxx
+++ b/canvas/source/directx/dx_bitmapcanvashelper.cxx
@@ -148,8 +148,9 @@ namespace dxcanvas
         return basegfx::unotools::integerSize2DFromB2ISize(mpTarget->getSize());
     }
 
-    uno::Reference< rendering::XBitmap > BitmapCanvasHelper::getScaledBitmap( const geometry::RealSize2D& /*newSize*/,
-                                                                              sal_Bool                    /*beFast*/ )
+    uno::Reference< rendering::XBitmap > BitmapCanvasHelper::getScaledBitmap( double,
+                                                                              double,
+                                                                              sal_Bool /*beFast*/ )
     {
         // TODO(F1):
         return uno::Reference< rendering::XBitmap >();
diff --git a/canvas/source/directx/dx_bitmapcanvashelper.hxx b/canvas/source/directx/dx_bitmapcanvashelper.hxx
index 670544a..4d48317 100644
--- a/canvas/source/directx/dx_bitmapcanvashelper.hxx
+++ b/canvas/source/directx/dx_bitmapcanvashelper.hxx
@@ -95,8 +95,9 @@ namespace dxcanvas
         ::com::sun::star::geometry::IntegerSize2D getSize();
 
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-            getScaledBitmap( const ::com::sun::star::geometry::RealSize2D&  newSize,
-                             sal_Bool                                       beFast );
+            getScaledBitmap( double width,
+                             double height,
+                             sal_Bool beFast );
 
         ::com::sun::star::uno::Sequence< sal_Int8 >
             getData( ::com::sun::star::rendering::IntegerBitmapLayout&      bitmapLayout,
diff --git a/canvas/source/directx/dx_canvascustomsprite.cxx b/canvas/source/directx/dx_canvascustomsprite.cxx
index 2eead3c..d129142 100644
--- a/canvas/source/directx/dx_canvascustomsprite.cxx
+++ b/canvas/source/directx/dx_canvascustomsprite.cxx
@@ -38,7 +38,8 @@ using namespace ::com::sun::star;
 
 namespace dxcanvas
 {
-    CanvasCustomSprite::CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D&   rSpriteSize,
+    CanvasCustomSprite::CanvasCustomSprite( double                                          width,
+                                            double                                          height,
                                             const SpriteCanvasRef&                          rRefDevice,
                                             const IDXRenderModuleSharedPtr&                 rRenderModule,
                                             const ::canvas::ISurfaceProxyManagerSharedPtr&  rSurfaceProxy,
@@ -52,8 +53,8 @@ namespace dxcanvas
         mpSurface.reset(
             new DXSurfaceBitmap(
                 ::basegfx::B2IVector(
-                    ::canvas::tools::roundUp( rSpriteSize.Width ),
-                    ::canvas::tools::roundUp( rSpriteSize.Height )),
+                    ::canvas::tools::roundUp( width ),
+                    ::canvas::tools::roundUp( height )),
                 rSurfaceProxy,
                 rRenderModule,
                 true));
@@ -61,7 +62,7 @@ namespace dxcanvas
         maCanvasHelper.setDevice( *rRefDevice.get() );
         maCanvasHelper.setTarget( mpSurface );
 
-        maSpriteHelper.init( rSpriteSize,
+        maSpriteHelper.init( width, height,
                              rRefDevice,
                              rRenderModule,
                              mpSurface,
diff --git a/canvas/source/directx/dx_canvascustomsprite.hxx b/canvas/source/directx/dx_canvascustomsprite.hxx
index 1b0d57a..9d6b9cb 100644
--- a/canvas/source/directx/dx_canvascustomsprite.hxx
+++ b/canvas/source/directx/dx_canvascustomsprite.hxx
@@ -96,7 +96,8 @@ namespace dxcanvas
             @param rDevice
             Target DX device
          */
-        CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D&   rSpriteSize,
+        CanvasCustomSprite( double                                          width,
+                            double                                          height,
                             const SpriteCanvasRef&                          rRefDevice,
                             const IDXRenderModuleSharedPtr&                 rRenderModule,
                             const ::canvas::ISurfaceProxyManagerSharedPtr&  rSurfaceProxy,
diff --git a/canvas/source/directx/dx_devicehelper.cxx b/canvas/source/directx/dx_devicehelper.cxx
index 3f15f0d..c2778af 100644
--- a/canvas/source/directx/dx_devicehelper.cxx
+++ b/canvas/source/directx/dx_devicehelper.cxx
@@ -131,14 +131,14 @@ namespace dxcanvas
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         if( !mpDevice )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         DXBitmapSharedPtr pBitmap(
             new DXBitmap(
-                ::basegfx::unotools::b2ISizeFromIntegerSize2D(size),
+                ::basegfx::B2ISize(width, height),
                 false));
 
         // create a 24bit RGB system memory surface
@@ -147,21 +147,21 @@ namespace dxcanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         if( !mpDevice )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         DXBitmapSharedPtr pBitmap(
             new DXBitmap(
-                ::basegfx::unotools::b2ISizeFromIntegerSize2D(size),
+                ::basegfx::B2ISize(width, height),
                 true));
 
         // create a 32bit ARGB system memory surface
@@ -170,7 +170,7 @@ namespace dxcanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
diff --git a/canvas/source/directx/dx_devicehelper.hxx b/canvas/source/directx/dx_devicehelper.hxx
index abc9eae..6c8d27dd 100644
--- a/canvas/source/directx/dx_devicehelper.hxx
+++ b/canvas/source/directx/dx_devicehelper.hxx
@@ -67,16 +67,16 @@ namespace dxcanvas
             const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
 
         sal_Bool hasFullScreenMode();
         sal_Bool enterFullScreenMode( sal_Bool bEnter );
diff --git a/canvas/source/directx/dx_spritecanvashelper.cxx b/canvas/source/directx/dx_spritecanvashelper.cxx
index 2f0e3a2..0800170 100644
--- a/canvas/source/directx/dx_spritecanvashelper.cxx
+++ b/canvas/source/directx/dx_spritecanvashelper.cxx
@@ -153,13 +153,13 @@ namespace dxcanvas
         return uno::Reference< rendering::XAnimatedSprite >();
     }
 
-    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( const geometry::RealSize2D& spriteSize )
+    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( double width, double height )
     {
         if( !mpRedrawManager )
             return uno::Reference< rendering::XCustomSprite >(); // we're disposed
 
         return uno::Reference< rendering::XCustomSprite >(
-            new CanvasCustomSprite( spriteSize,
+            new CanvasCustomSprite( width, height,
                                     mpSpriteSurface,
                                     mpRenderModule,
                                     mpSurfaceProxy,
diff --git a/canvas/source/directx/dx_spritecanvashelper.hxx b/canvas/source/directx/dx_spritecanvashelper.hxx
index fe46427..afbff82 100644
--- a/canvas/source/directx/dx_spritecanvashelper.hxx
+++ b/canvas/source/directx/dx_spritecanvashelper.hxx
@@ -67,7 +67,7 @@ namespace dxcanvas
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XCustomSprite >      createCustomSprite(
-                const ::com::sun::star::geometry::RealSize2D& spriteSize );
+                  double width, double height );
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XSprite >                createClonedSprite(
diff --git a/canvas/source/opengl/ogl_bitmapcanvashelper.cxx b/canvas/source/opengl/ogl_bitmapcanvashelper.cxx
index 1d132cb..84915a4 100644
--- a/canvas/source/opengl/ogl_bitmapcanvashelper.cxx
+++ b/canvas/source/opengl/ogl_bitmapcanvashelper.cxx
@@ -51,8 +51,9 @@ namespace oglcanvas
         return maSize;
     }
 
-    uno::Reference< rendering::XBitmap > BitmapCanvasHelper::getScaledBitmap( const geometry::RealSize2D& /*newSize*/,
-                                                                              sal_Bool                    /*beFast*/ )
+    uno::Reference< rendering::XBitmap > BitmapCanvasHelper::getScaledBitmap( double,
+                                                                              double,
+                                                                              sal_Bool /*beFast*/ )
     {
         // TODO(F1):
         return uno::Reference< rendering::XBitmap >();
diff --git a/canvas/source/opengl/ogl_bitmapcanvashelper.hxx b/canvas/source/opengl/ogl_bitmapcanvashelper.hxx
index 50781c3..28b8fac 100644
--- a/canvas/source/opengl/ogl_bitmapcanvashelper.hxx
+++ b/canvas/source/opengl/ogl_bitmapcanvashelper.hxx
@@ -70,8 +70,9 @@ namespace oglcanvas
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > queryBitmapCanvas();
 
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-            getScaledBitmap( const ::com::sun::star::geometry::RealSize2D&  newSize,
-                             sal_Bool                                               beFast );
+            getScaledBitmap( double width,
+                             double height,
+                             sal_Bool beFast );
 
         ::com::sun::star::uno::Sequence< sal_Int8 >
             getData( ::com::sun::star::rendering::IntegerBitmapLayout&      bitmapLayout,
diff --git a/canvas/source/opengl/ogl_canvasbitmap.cxx b/canvas/source/opengl/ogl_canvasbitmap.cxx
index d78baf5..7c2c884 100644
--- a/canvas/source/opengl/ogl_canvasbitmap.cxx
+++ b/canvas/source/opengl/ogl_canvasbitmap.cxx
@@ -18,17 +18,19 @@ using namespace ::com::sun::star;
 
 namespace oglcanvas
 {
-    CanvasBitmap::CanvasBitmap( const geometry::IntegerSize2D& rSize,
-                                const SpriteCanvasRef&         rDevice,
-                                SpriteDeviceHelper&            rDeviceHelper,
-                                bool                           bHasAlpha ) :
+    CanvasBitmap::CanvasBitmap( sal_Int32              width,
+                                sal_Int32              height,
+                                const SpriteCanvasRef& rDevice,
+                                SpriteDeviceHelper&    rDeviceHelper,
+                                bool                   bHasAlpha ) :
         mpDevice( rDevice ),
         mbHasAlpha( bHasAlpha )
     {
         ENSURE_OR_THROW( mpDevice.is(),
                          "CanvasBitmap::CanvasBitmap(): Invalid surface or device" );
 
-        maCanvasHelper.init( *mpDevice.get(), rDeviceHelper, rSize );
+        maCanvasHelper.init( *mpDevice.get(), rDeviceHelper,
+                             geometry::IntegerSize2D(width, height) );
     }
 
     CanvasBitmap::CanvasBitmap( const CanvasBitmap& rSrc ) :
diff --git a/canvas/source/opengl/ogl_canvasbitmap.hxx b/canvas/source/opengl/ogl_canvasbitmap.hxx
index b874bde..1f0f93a 100644
--- a/canvas/source/opengl/ogl_canvasbitmap.hxx
+++ b/canvas/source/opengl/ogl_canvasbitmap.hxx
@@ -42,16 +42,20 @@ namespace oglcanvas
     public:
         /** Create a canvas bitmap for the given surface
 
-            @param rSize
+            @param width
+            Size of the bitmap
+
+            @param height
             Size of the bitmap
 
             @param rDevice
             Reference device, with which bitmap should be compatible
          */
-        CanvasBitmap( const ::com::sun::star::geometry::IntegerSize2D& rSize,
-                      const SpriteCanvasRef&                           rDevice,
-                      SpriteDeviceHelper&                              rDeviceHelper,
-                      bool                                             bHasAlpha );
+        CanvasBitmap( sal_Int32              width,
+                      sal_Int32              height,
+                      const SpriteCanvasRef& rDevice,
+                      SpriteDeviceHelper&    rDeviceHelper,
+                      bool                   bHasAlpha );
 
         /** Create verbatim copy (including all recorded actions)
          */
diff --git a/canvas/source/opengl/ogl_canvascustomsprite.cxx b/canvas/source/opengl/ogl_canvascustomsprite.cxx
index 7c08671..d580b84 100644
--- a/canvas/source/opengl/ogl_canvascustomsprite.cxx
+++ b/canvas/source/opengl/ogl_canvascustomsprite.cxx
@@ -34,11 +34,12 @@ using namespace ::com::sun::star;
 
 namespace oglcanvas
 {
-    CanvasCustomSprite::CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
-                                            const SpriteCanvasRef&                        rRefDevice,
-                                            SpriteDeviceHelper&                           rDeviceHelper ) :
+    CanvasCustomSprite::CanvasCustomSprite( double                 width,
+                                            double                 height,
+                                            const SpriteCanvasRef& rRefDevice,
+                                            SpriteDeviceHelper&    rDeviceHelper ) :
         mpSpriteCanvas( rRefDevice ),
-        maSize(rSpriteSize),
+        maSize(width, height),
         mxClip(),
         maTransformation(),
         maPosition(),
diff --git a/canvas/source/opengl/ogl_canvascustomsprite.hxx b/canvas/source/opengl/ogl_canvascustomsprite.hxx
index a96ce64..b8050eb 100644
--- a/canvas/source/opengl/ogl_canvascustomsprite.hxx
+++ b/canvas/source/opengl/ogl_canvascustomsprite.hxx
@@ -44,7 +44,10 @@ namespace oglcanvas
     public:
         /** Create a custom sprite
 
-            @param rSpriteSize
+            @param width
+            Size of the sprite in pixel
+
+            @param height
             Size of the sprite in pixel
 
             @param rRefDevice
@@ -56,9 +59,10 @@ namespace oglcanvas
             @param rDevice
             Target DX device
          */
-        CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D&   rSpriteSize,
-                            const SpriteCanvasRef&                          rRefDevice,
-                            SpriteDeviceHelper&                             rDeviceHelper );
+        CanvasCustomSprite( double                 width,
+                            double                 height,
+                            const SpriteCanvasRef& rRefDevice,
+                            SpriteDeviceHelper&    rDeviceHelper );
 
         virtual void disposeThis();
 
diff --git a/canvas/source/opengl/ogl_spritecanvas.cxx b/canvas/source/opengl/ogl_spritecanvas.cxx
index ad02eb1..6d2fa72 100644
--- a/canvas/source/opengl/ogl_spritecanvas.cxx
+++ b/canvas/source/opengl/ogl_spritecanvas.cxx
@@ -130,11 +130,11 @@ namespace oglcanvas
     }
 
     uno::Reference< rendering::XCustomSprite > SAL_CALL SpriteCanvas::createCustomSprite(
-        const geometry::RealSize2D& spriteSize ) throw (lang::IllegalArgumentException,
+        double width, double height ) throw (lang::IllegalArgumentException,
                                                         uno::RuntimeException)
     {
         return uno::Reference< rendering::XCustomSprite >(
-            new CanvasCustomSprite(spriteSize, this, maDeviceHelper) );
+            new CanvasCustomSprite(width, height, this, maDeviceHelper) );
     }
 
     uno::Reference< rendering::XSprite > SAL_CALL SpriteCanvas::createClonedSprite(
diff --git a/canvas/source/opengl/ogl_spritecanvas.hxx b/canvas/source/opengl/ogl_spritecanvas.hxx
index 6efc6db..5279879 100644
--- a/canvas/source/opengl/ogl_spritecanvas.hxx
+++ b/canvas/source/opengl/ogl_spritecanvas.hxx
@@ -91,7 +91,7 @@ namespace oglcanvas
         // XSpriteCanvas
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromAnimation( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimation >& animation ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XAnimatedSprite > SAL_CALL createSpriteFromBitmaps( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > >& animationBitmaps, ::sal_Int8 interpolationMode ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::rendering::VolatileContentDestroyedException, ::com::sun::star::uno::RuntimeException);
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCustomSprite > SAL_CALL createCustomSprite( const ::com::sun::star::geometry::RealSize2D& spriteSize ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XCustomSprite > SAL_CALL createCustomSprite( double width, double height ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite > SAL_CALL createClonedSprite( const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XSprite >& original ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
         virtual ::sal_Bool SAL_CALL updateScreen( ::sal_Bool bUpdateAll ) throw (::com::sun::star::uno::RuntimeException);
 
diff --git a/canvas/source/opengl/ogl_spritedevicehelper.cxx b/canvas/source/opengl/ogl_spritedevicehelper.cxx
index d27a6a2..dbd9e46 100644
--- a/canvas/source/opengl/ogl_spritedevicehelper.cxx
+++ b/canvas/source/opengl/ogl_spritedevicehelper.cxx
@@ -789,14 +789,14 @@ namespace oglcanvas
 
     uno::Reference< rendering::XBitmap > SpriteDeviceHelper::createCompatibleBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         // disposed?
         if( !mpSpriteCanvas )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         return uno::Reference< rendering::XBitmap >(
-            new CanvasBitmap( size,
+            new CanvasBitmap( width, height,
                               mpSpriteCanvas,
                               *this,
                               false ) );
@@ -804,21 +804,21 @@ namespace oglcanvas
 
     uno::Reference< rendering::XVolatileBitmap > SpriteDeviceHelper::createVolatileBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
 
     uno::Reference< rendering::XBitmap > SpriteDeviceHelper::createCompatibleAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      size )
+        sal_Int32 width, sal_Int32 height )
     {
         // disposed?
         if( !mpSpriteCanvas )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         return uno::Reference< rendering::XBitmap >(
-            new CanvasBitmap( size,
+            new CanvasBitmap( width, height,
                               mpSpriteCanvas,
                               *this,
                               true ) );
@@ -826,7 +826,7 @@ namespace oglcanvas
 
     uno::Reference< rendering::XVolatileBitmap > SpriteDeviceHelper::createVolatileAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  /*rDevice*/,
-        const geometry::IntegerSize2D&                      /*size*/ )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
diff --git a/canvas/source/opengl/ogl_spritedevicehelper.hxx b/canvas/source/opengl/ogl_spritedevicehelper.hxx
index c87bdf8..322ea0c 100644
--- a/canvas/source/opengl/ogl_spritedevicehelper.hxx
+++ b/canvas/source/opengl/ogl_spritedevicehelper.hxx
@@ -59,16 +59,16 @@ namespace oglcanvas
             const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
 
         sal_Bool hasFullScreenMode(  );
         sal_Bool enterFullScreenMode( sal_Bool bEnter );
diff --git a/canvas/source/tools/canvascustomspritehelper.cxx b/canvas/source/tools/canvascustomspritehelper.cxx
index 843a4bb..8f9c8ac 100644
--- a/canvas/source/tools/canvascustomspritehelper.cxx
+++ b/canvas/source/tools/canvascustomspritehelper.cxx
@@ -170,7 +170,8 @@ namespace canvas
     {
     }
 
-    void CanvasCustomSpriteHelper::init( const geometry::RealSize2D&        rSpriteSize,
+    void CanvasCustomSpriteHelper::init( double                             width,
+                                         double                             height,
                                          const SpriteSurface::Reference&    rOwningSpriteCanvas )
     {
         ENSURE_OR_THROW( rOwningSpriteCanvas.get(),
@@ -178,11 +179,11 @@ namespace canvas
 
         mpSpriteCanvas = rOwningSpriteCanvas;
         maSize.setX( ::std::max( 1.0,
-                                 ceil( rSpriteSize.Width ) ) ); // round up to nearest int,
-                                                                 // enforce sprite to have at
-                                                                 // least (1,1) pixel size
+                                 ceil( width ) ) ); // round up to nearest int,
+                                                    // enforce sprite to have at
+                                                    // least (1,1) pixel size
         maSize.setY( ::std::max( 1.0,
-                                 ceil( rSpriteSize.Height ) ) );
+                                 ceil( height ) ) );
     }
 
     void CanvasCustomSpriteHelper::disposing()
diff --git a/canvas/source/tools/verifyinput.cxx b/canvas/source/tools/verifyinput.cxx
index f123b79..87f13ae 100644
--- a/canvas/source/tools/verifyinput.cxx
+++ b/canvas/source/tools/verifyinput.cxx
@@ -693,32 +693,33 @@ namespace canvas
             }
         }
 
-        void verifyBitmapSize( const geometry::IntegerSize2D&           size,
+        void verifyBitmapSize( sal_Int32                                width,
+                               sal_Int32                                height,
                                const char*                              pStr,
                                const uno::Reference< uno::XInterface >& xIf )
         {
             (void)pStr; (void)xIf;
 
-            if( size.Width <= 0 )
+            if( width <= 0 )
             {
 #if OSL_DEBUG_LEVEL > 0
                 throw lang::IllegalArgumentException(
                     OUString::createFromAscii(pStr) +
                     ": verifyBitmapSize(): size has 0 or negative width (value: " +
-                    OUString::number(size.Width) + ")",
+                    OUString::number(width) + ")",
                     xIf, 0 );
 #else
                 throw lang::IllegalArgumentException();
 #endif
             }
 
-            if( size.Height <= 0 )
+            if( height <= 0 )
             {
 #if OSL_DEBUG_LEVEL > 0
                 throw lang::IllegalArgumentException(
                     OUString::createFromAscii(pStr) +
                     ": verifyBitmapSize(): size has 0 or negative height (value: " +
-                    OUString::number(size.Height) +
+                    OUString::number(height) +
                     ")",
                     xIf, 0 );
 #else
@@ -727,32 +728,32 @@ namespace canvas
             }
         }
 
-        void verifySpriteSize( const geometry::RealSize2D&              size,
+        void verifySpriteSize( double width, double height,
                                const char*                              pStr,
                                const uno::Reference< uno::XInterface >& xIf )
         {
             (void)pStr; (void)xIf;
 
-            if( size.Width <= 0.0 )
+            if( width <= 0.0 )
             {
 #if OSL_DEBUG_LEVEL > 0
                 throw lang::IllegalArgumentException(
                     OUString::createFromAscii(pStr) +
                     ": verifySpriteSize(): size has 0 or negative width (value: " +
-                    OUString::number(size.Width) + ")",
+                    OUString::number(width) + ")",
                     xIf, 0 );
 #else
                 throw lang::IllegalArgumentException();
 #endif
             }
 
-            if( size.Height <= 0.0 )
+            if( height <= 0.0 )
             {
 #if OSL_DEBUG_LEVEL > 0
                 throw lang::IllegalArgumentException(
                     OUString::createFromAscii(pStr) +
                     ": verifySpriteSize(): size has 0 or negative height (value: " +
-                    OUString::number(size.Height) + ")",
+                    OUString::number(height) + ")",
                     xIf, 0 );
 #else
                 throw lang::IllegalArgumentException();
diff --git a/canvas/source/vcl/canvasbitmaphelper.cxx b/canvas/source/vcl/canvasbitmaphelper.cxx
index 9178ff7..89b5cfb 100644
--- a/canvas/source/vcl/canvasbitmaphelper.cxx
+++ b/canvas/source/vcl/canvasbitmaphelper.cxx
@@ -105,8 +105,9 @@ namespace vclcanvas
             mpBackBuffer->clear(); // alpha vdev needs special treatment
     }
 
-    uno::Reference< rendering::XBitmap > CanvasBitmapHelper::getScaledBitmap( const geometry::RealSize2D&   newSize,
-                                                                              sal_Bool                      beFast )
+    uno::Reference< rendering::XBitmap > CanvasBitmapHelper::getScaledBitmap( double width,
+                                                                              double height,
+                                                                              sal_Bool beFast )
     {
         ENSURE_OR_THROW( mpDevice,
                           "disposed CanvasHelper" );
@@ -118,7 +119,8 @@ namespace vclcanvas
 
         BitmapEx aRes( mpBackBuffer->getBitmapReference() );
 
-        aRes.Scale( ::vcl::unotools::sizeFromRealSize2D(newSize),
+        aRes.Scale( Size(::canvas::tools::roundUp(width),
+                         ::canvas::tools::roundUp(height)),
                      beFast ? BMP_SCALE_DEFAULT : BMP_SCALE_BESTQUALITY );
 
         return uno::Reference< rendering::XBitmap >(
diff --git a/canvas/source/vcl/canvasbitmaphelper.hxx b/canvas/source/vcl/canvasbitmaphelper.hxx
index 9a07362..bc62642 100644
--- a/canvas/source/vcl/canvasbitmaphelper.hxx
+++ b/canvas/source/vcl/canvasbitmaphelper.hxx
@@ -85,8 +85,9 @@ namespace vclcanvas
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > queryBitmapCanvas();
 
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-            getScaledBitmap( const ::com::sun::star::geometry::RealSize2D&  newSize,
-                             sal_Bool                                       beFast );
+            getScaledBitmap( double width,
+                             double height,
+                             sal_Bool beFast );
 
         ::com::sun::star::uno::Sequence< sal_Int8 >
             getData( ::com::sun::star::rendering::IntegerBitmapLayout&      bitmapLayout,
diff --git a/canvas/source/vcl/canvascustomsprite.cxx b/canvas/source/vcl/canvascustomsprite.cxx
index adf876e..4806016 100644
--- a/canvas/source/vcl/canvascustomsprite.cxx
+++ b/canvas/source/vcl/canvascustomsprite.cxx
@@ -48,7 +48,8 @@ using namespace ::com::sun::star;
 namespace vclcanvas
 {
 
-    CanvasCustomSprite::CanvasCustomSprite( const geometry::RealSize2D&               rSpriteSize,
+    CanvasCustomSprite::CanvasCustomSprite( double                                    width,
+                                            double                                    height,
                                             rendering::XGraphicDevice&                rDevice,
                                             const ::canvas::SpriteSurface::Reference& rOwningSpriteCanvas,
                                             const OutDevProviderSharedPtr&            rOutDevProvider,
@@ -63,11 +64,11 @@ namespace vclcanvas
 
         const ::Size aSize(
             static_cast<sal_Int32>( ::std::max( 1.0,
-                                                ceil( rSpriteSize.Width ))),  // round up to nearest int,
-                                                                              // enforce sprite to have at
-                                                                               // least (1,1) pixel size
+                                                ceil( width ))),  // round up to nearest int,
+                                                                  // enforce sprite to have at
+                                                                  // least (1,1) pixel size
             static_cast<sal_Int32>( ::std::max( 1.0,
-                                                ceil( rSpriteSize.Height ))) );
+                                                ceil( height ))) );
 
         // create content backbuffer in screen depth
         BackBufferSharedPtr pBackBuffer( new BackBuffer( rOutDevProvider->getOutDev() ) );
@@ -107,7 +108,7 @@ namespace vclcanvas
         // setup sprite helper
         // -------------------
 
-        maSpriteHelper.init( rSpriteSize,
+        maSpriteHelper.init( width, height,
                              rOwningSpriteCanvas,
                              pBackBuffer,
                              pBackBufferMask,
diff --git a/canvas/source/vcl/canvascustomsprite.hxx b/canvas/source/vcl/canvascustomsprite.hxx
index 0014c3f..e5e9c7a 100644
--- a/canvas/source/vcl/canvascustomsprite.hxx
+++ b/canvas/source/vcl/canvascustomsprite.hxx
@@ -85,7 +85,8 @@ namespace vclcanvas
                                public RepaintTarget
     {
     public:
-        CanvasCustomSprite( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
+        CanvasCustomSprite( double                                        width,
+                            double                                        height,
                             ::com::sun::star::rendering::XGraphicDevice&  rDevice,
                             const ::canvas::SpriteSurface::Reference&     rOwningSpriteCanvas,
                             const OutDevProviderSharedPtr&                rOutDevProvider,
diff --git a/canvas/source/vcl/canvashelper.cxx b/canvas/source/vcl/canvashelper.cxx
index 3339a7c..9ba6b9f 100644
--- a/canvas/source/vcl/canvashelper.cxx
+++ b/canvas/source/vcl/canvashelper.cxx
@@ -943,8 +943,9 @@ namespace vclcanvas
         return ::vcl::unotools::integerSize2DFromSize( mpOutDev->getOutDev().GetOutputSizePixel() );
     }
 
-    uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( const geometry::RealSize2D& newSize,
-                                                                        sal_Bool                    beFast )
+    uno::Reference< rendering::XBitmap > CanvasHelper::getScaledBitmap( double width,
+                                                                        double height,
+                                                                        sal_Bool beFast )
     {
         if( !mpOutDev.get() || !mpDevice )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
@@ -961,7 +962,8 @@ namespace vclcanvas
 
         Bitmap aBitmap( rOutDev.GetBitmap(aEmptyPoint, aBmpSize) );
 
-        aBitmap.Scale( ::vcl::unotools::sizeFromRealSize2D(newSize),
+        aBitmap.Scale( Size(::canvas::tools::roundUp(width),
+                            ::canvas::tools::roundUp(height)),
                        beFast ? BMP_SCALE_DEFAULT : BMP_SCALE_BESTQUALITY );
 
         return uno::Reference< rendering::XBitmap >(
diff --git a/canvas/source/vcl/canvashelper.hxx b/canvas/source/vcl/canvashelper.hxx
index 0291456..31c7013 100644
--- a/canvas/source/vcl/canvashelper.hxx
+++ b/canvas/source/vcl/canvashelper.hxx
@@ -247,8 +247,9 @@ namespace vclcanvas
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmapCanvas > queryBitmapCanvas();
 
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap >
-            getScaledBitmap( const ::com::sun::star::geometry::RealSize2D&  newSize,
-                             sal_Bool                                               beFast );
+            getScaledBitmap( double width,
+                             double height,
+                             sal_Bool beFast );
 
         ::com::sun::star::uno::Sequence< sal_Int8 >
             getData( ::com::sun::star::rendering::IntegerBitmapLayout&      bitmapLayout,
diff --git a/canvas/source/vcl/devicehelper.cxx b/canvas/source/vcl/devicehelper.cxx
index b874bd1..a465d9e 100644
--- a/canvas/source/vcl/devicehelper.cxx
+++ b/canvas/source/vcl/devicehelper.cxx
@@ -109,13 +109,13 @@ namespace vclcanvas
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleBitmap(
         const uno::Reference< rendering::XGraphicDevice >& rDevice,
-        const geometry::IntegerSize2D&                     size )
+        sal_Int32 width, sal_Int32 height )
     {
         if( !mpOutDev )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         return uno::Reference< rendering::XBitmap >(
-            new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
+            new CanvasBitmap( Size(width, height),
                               false,
                               *rDevice.get(),
                               mpOutDev ) );
@@ -123,20 +123,20 @@ namespace vclcanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  ,
-        const geometry::IntegerSize2D&                       )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
 
     uno::Reference< rendering::XBitmap > DeviceHelper::createCompatibleAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >& rDevice,
-        const geometry::IntegerSize2D&                     size )
+        sal_Int32 width, sal_Int32 height )
     {
         if( !mpOutDev )
             return uno::Reference< rendering::XBitmap >(); // we're disposed
 
         return uno::Reference< rendering::XBitmap >(
-            new CanvasBitmap( ::vcl::unotools::sizeFromIntegerSize2D(size),
+            new CanvasBitmap( Size(width, height),
                               true,
                               *rDevice.get(),
                               mpOutDev ) );
@@ -144,7 +144,7 @@ namespace vclcanvas
 
     uno::Reference< rendering::XVolatileBitmap > DeviceHelper::createVolatileAlphaBitmap(
         const uno::Reference< rendering::XGraphicDevice >&  ,
-        const geometry::IntegerSize2D&                       )
+        sal_Int32, sal_Int32 )
     {
         return uno::Reference< rendering::XVolatileBitmap >();
     }
diff --git a/canvas/source/vcl/devicehelper.hxx b/canvas/source/vcl/devicehelper.hxx
index dd841bb..e35a9bb 100644
--- a/canvas/source/vcl/devicehelper.hxx
+++ b/canvas/source/vcl/devicehelper.hxx
@@ -58,16 +58,16 @@ namespace vclcanvas
             const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::geometry::RealBezierSegment2D > >& points );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > createCompatibleAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > createVolatileAlphaBitmap(
             const ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XGraphicDevice >&  rDevice,
-            const ::com::sun::star::geometry::IntegerSize2D&                                        size );
+            sal_Int32 width, sal_Int32 height );
         sal_Bool hasFullScreenMode(  );
         sal_Bool enterFullScreenMode( sal_Bool bEnter );
 
diff --git a/canvas/source/vcl/spritecanvashelper.cxx b/canvas/source/vcl/spritecanvashelper.cxx
index 88a2970..01d2812 100644
--- a/canvas/source/vcl/spritecanvashelper.cxx
+++ b/canvas/source/vcl/spritecanvashelper.cxx
@@ -223,13 +223,13 @@ namespace vclcanvas
         return uno::Reference< rendering::XAnimatedSprite >();
     }
 
-    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( const geometry::RealSize2D& spriteSize )
+    uno::Reference< rendering::XCustomSprite > SpriteCanvasHelper::createCustomSprite( double width, double height )
     {
         if( !mpRedrawManager || !mpDevice )
             return uno::Reference< rendering::XCustomSprite >(); // we're disposed
 
         return uno::Reference< rendering::XCustomSprite >(
-            new CanvasCustomSprite( spriteSize,
+            new CanvasCustomSprite( width, height,
                                     *mpDevice,
                                     mpOwningSpriteCanvas,
                                     mpOwningSpriteCanvas->getFrontBuffer(),
diff --git a/canvas/source/vcl/spritecanvashelper.hxx b/canvas/source/vcl/spritecanvashelper.hxx
index 7a598e2..5b33880 100644
--- a/canvas/source/vcl/spritecanvashelper.hxx
+++ b/canvas/source/vcl/spritecanvashelper.hxx
@@ -64,7 +64,7 @@ namespace vclcanvas
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XCustomSprite >      createCustomSprite(
-                const ::com::sun::star::geometry::RealSize2D& spriteSize );
+                double width, double height );
 
         ::com::sun::star::uno::Reference<
               ::com::sun::star::rendering::XSprite >                createClonedSprite(
diff --git a/canvas/source/vcl/spritehelper.cxx b/canvas/source/vcl/spritehelper.cxx
index 5411158..02a94d3 100644
--- a/canvas/source/vcl/spritehelper.cxx
+++ b/canvas/source/vcl/spritehelper.cxx
@@ -58,7 +58,8 @@ namespace vclcanvas
     {
     }
 
-    void SpriteHelper::init( const geometry::RealSize2D&               rSpriteSize,
+    void SpriteHelper::init( double                                    width,
+                             double                                    height,
                              const ::canvas::SpriteSurface::Reference& rOwningSpriteCanvas,
                              const BackBufferSharedPtr&                rBackBuffer,
                              const BackBufferSharedPtr&                rBackBufferMask,
@@ -71,7 +72,7 @@ namespace vclcanvas
         mpBackBufferMask    = rBackBufferMask;
         mbShowSpriteBounds  = bShowSpriteBounds;
 
-        init( rSpriteSize, rOwningSpriteCanvas );
+        init( width, height, rOwningSpriteCanvas );
     }
 
     void SpriteHelper::disposing()
diff --git a/canvas/source/vcl/spritehelper.hxx b/canvas/source/vcl/spritehelper.hxx
index 169ed76..963a49a 100644
--- a/canvas/source/vcl/spritehelper.hxx
+++ b/canvas/source/vcl/spritehelper.hxx
@@ -52,7 +52,10 @@ namespace vclcanvas
 
         /** Late-init the sprite helper
 
-            @param rSpriteSize
+            @param width
+            Size of the sprite
+
+            @param height
             Size of the sprite
 
             @param rSpriteCanvas
@@ -66,7 +69,8 @@ namespace vclcanvas
             @param rBackBufferMask
             Buffer of the sprite content (alpha part)
          */
-        void init( const ::com::sun::star::geometry::RealSize2D& rSpriteSize,
+        void init( double                                        width,
+                   double                                        height,
                    const ::canvas::SpriteSurface::Reference&     rOwningSpriteCanvas,
                    const BackBufferSharedPtr&                    rBackBuffer,
                    const BackBufferSharedPtr&                    rBackBufferMask,
diff --git a/drawinglayer/source/processor2d/canvasprocessor2d.cxx b/drawinglayer/source/processor2d/canvasprocessor2d.cxx
index fd3b298..3dd298b 100644
--- a/drawinglayer/source/processor2d/canvasprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/canvasprocessor2d.cxx
@@ -524,12 +524,14 @@ namespace drawinglayer
 
                 // TODO(E1): in theory, could also get a float bitmap here...
                 uno::Reference< rendering::XIntegerBitmap > xContent(
-                    mxCanvas->getDevice()->createCompatibleAlphaBitmap(aMaskSize),
+                    mxCanvas->getDevice()->createCompatibleAlphaBitmap(
+                        aMaskSize.Width, aMaskSize.Height),
                     uno::UNO_QUERY_THROW);
 
                 // TODO(E1): in theory, could also get a float bitmap here...
                 uno::Reference< rendering::XIntegerBitmap > xMask(
-                    mxCanvas->getDevice()->createCompatibleAlphaBitmap(aMaskSize),
+                    mxCanvas->getDevice()->createCompatibleAlphaBitmap(
+                        aMaskSize.Width, aMaskSize.Height),
                     uno::UNO_QUERY_THROW);
 
                 // buffer current XCanvas output instance, then divert
diff --git a/include/canvas/base/bitmapcanvasbase.hxx b/include/canvas/base/bitmapcanvasbase.hxx
index 5c1376b..1006c99 100644
--- a/include/canvas/base/bitmapcanvasbase.hxx
+++ b/include/canvas/base/bitmapcanvasbase.hxx
@@ -112,12 +112,13 @@ namespace canvas
             return BaseType::maCanvasHelper.hasAlpha();
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL getScaledBitmap( const ::com::sun::star::geometry::RealSize2D& newSize,
-                                                                                                                   sal_Bool                                      beFast ) throw (::com::sun::star::uno::RuntimeException)
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL getScaledBitmap( double width,
+                                                                                                                   double height,
+                                                                                                                   sal_Bool beFast ) throw (::com::sun::star::uno::RuntimeException)
         {
             typename BaseType::MutexType aGuard( BaseType::m_aMutex );
 
-            return BaseType::maCanvasHelper.getScaledBitmap( newSize, beFast );
+            return BaseType::maCanvasHelper.getScaledBitmap( width, height, beFast );
         }
 
     };
diff --git a/include/canvas/base/canvascustomspritehelper.hxx b/include/canvas/base/canvascustomspritehelper.hxx
index 2b2fd2d..111a6f0 100644
--- a/include/canvas/base/canvascustomspritehelper.hxx
+++ b/include/canvas/base/canvascustomspritehelper.hxx
@@ -44,15 +44,20 @@ namespace canvas
 
         /** Init helper
 
-            @param rSpriteSize
+            @param width
+            Requested size of the sprite, as passed to the
+            XSpriteCanvas::createCustomSprite() method
+
+            @param height
             Requested size of the sprite, as passed to the
             XSpriteCanvas::createCustomSprite() method
 
             @param rOwningSpriteCanvas
             The XSpriteCanvas this sprite is displayed on
          */
-        void init( const ::com::sun::star::geometry::RealSize2D&    rSpriteSize,
-                   const SpriteSurface::Reference&                  rOwningSpriteCanvas );
+        void init( double                                    width,
+                   double                                    height,
+                   const SpriteSurface::Reference&           rOwningSpriteCanvas );
 
         /** Object is being disposed, release all internal references
 
diff --git a/include/canvas/base/graphicdevicebase.hxx b/include/canvas/base/graphicdevicebase.hxx
index fd36b3d..3fc0350 100644
--- a/include/canvas/base/graphicdevicebase.hxx
+++ b/include/canvas/base/graphicdevicebase.hxx
@@ -187,52 +187,52 @@ namespace canvas
             return maDeviceHelper.createCompatibleBezierPolyPolygon( this, points );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleBitmap( sal_Int32 width, sal_Int32 height ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                          ::com::sun::star::uno::RuntimeException)
         {
-            tools::verifyBitmapSize(size,
+            tools::verifyBitmapSize(width, height,
                                     BOOST_CURRENT_FUNCTION,
                                     static_cast< UnambiguousBaseType* >(this));
 
             MutexType aGuard( BaseType::m_aMutex );
 
-            return maDeviceHelper.createCompatibleBitmap( this, size );
+            return maDeviceHelper.createCompatibleBitmap( this, width, height );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XVolatileBitmap > SAL_CALL createVolatileBitmap( sal_Int32 width, sal_Int32 height ) throw (::com::sun::star::lang::IllegalArgumentException,
                                                                                                                                                                                                ::com::sun::star::uno::RuntimeException)
         {
-            tools::verifyBitmapSize(size,
+            tools::verifyBitmapSize(width, height,
                                     BOOST_CURRENT_FUNCTION,
                                     static_cast< UnambiguousBaseType* >(this));
 
             MutexType aGuard( BaseType::m_aMutex );
 
-            return maDeviceHelper.createVolatileBitmap( this, size );
+            return maDeviceHelper.createVolatileBitmap( this, width, height );
         }
 
-        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleAlphaBitmap( const ::com::sun::star::geometry::IntegerSize2D& size ) throw (::com::sun::star::lang::IllegalArgumentException,
+        virtual ::com::sun::star::uno::Reference< ::com::sun::star::rendering::XBitmap > SAL_CALL createCompatibleAlphaBitmap( sal_Int32 width, sal_Int32 height ) throw (::com::sun::star::lang::IllegalArgumentException,

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list