[Libreoffice-commits] core.git: Branch 'feature/slideshowprimitives' - include/canvas offapi/com 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
Sun Oct 27 09:18:27 PDT 2013


 include/canvas/canvastools.hxx                                 |    2 
 offapi/com/sun/star/rendering/XCanvas.idl                      |    4 
 slideshow/CppunitTest_slideshow.mk                             |    1 
 slideshow/Executable_demoshow.mk                               |    1 
 slideshow/Library_slideshow.mk                                 |    1 
 slideshow/TODO                                                 |   14 
 slideshow/inc/pch/precompiled_slideshow.hxx                    |    8 
 slideshow/source/engine/animatedsprite.cxx                     |   44 +-
 slideshow/source/engine/color.cxx                              |   22 -
 slideshow/source/engine/pointersymbol.cxx                      |   26 -
 slideshow/source/engine/pointersymbol.hxx                      |    3 
 slideshow/source/engine/rehearsetimingsactivity.cxx            |   31 +
 slideshow/source/engine/rehearsetimingsactivity.hxx            |    5 
 slideshow/source/engine/shapes/drawshape.cxx                   |   14 
 slideshow/source/engine/shapes/shapeimporter.cxx               |   27 -
 slideshow/source/engine/shapes/viewappletshape.cxx             |   19 
 slideshow/source/engine/shapes/viewbackgroundshape.cxx         |   63 +--
 slideshow/source/engine/shapes/viewbackgroundshape.hxx         |    6 
 slideshow/source/engine/shapes/viewmediashape.cxx              |   31 -
 slideshow/source/engine/shapes/viewshape.cxx                   |  172 ++++----
 slideshow/source/engine/shapes/viewshape.hxx                   |  136 ++----
 slideshow/source/engine/slide/layer.hxx                        |    1 
 slideshow/source/engine/slide/layermanager.cxx                 |   16 
 slideshow/source/engine/slide/layermanager.hxx                 |    4 
 slideshow/source/engine/slide/slideimpl.cxx                    |   38 +
 slideshow/source/engine/slide/userpaintoverlay.cxx             |   48 +-
 slideshow/source/engine/slide/userpaintoverlay.hxx             |    2 
 slideshow/source/engine/slidebitmap.cxx                        |   24 -
 slideshow/source/engine/slideshowimpl.cxx                      |   25 -
 slideshow/source/engine/slideview.cxx                          |  196 +++++-----
 slideshow/source/engine/tools.cxx                              |  102 +----
 slideshow/source/engine/transitions/clippingfunctor.cxx        |    6 
 slideshow/source/engine/transitions/combtransition.cxx         |   16 
 slideshow/source/engine/transitions/slidechangebase.cxx        |  101 ++---
 slideshow/source/engine/transitions/slidechangebase.hxx        |   34 -
 slideshow/source/engine/transitions/slidetransitionfactory.cxx |  182 ++++-----
 slideshow/source/engine/waitsymbol.cxx                         |   19 
 slideshow/source/engine/waitsymbol.hxx                         |    3 
 slideshow/source/inc/animatedsprite.hxx                        |    8 
 slideshow/source/inc/hslcolor.hxx                              |    3 
 slideshow/source/inc/rgbcolor.hxx                              |    9 
 slideshow/source/inc/shapeimporter.hxx                         |    6 
 slideshow/source/inc/slide.hxx                                 |    5 
 slideshow/source/inc/slidebitmap.hxx                           |    9 
 slideshow/source/inc/tools.hxx                                 |   24 -
 slideshow/source/inc/unoview.hxx                               |    2 
 slideshow/source/inc/viewlayer.hxx                             |   12 
 slideshow/test/testview.cxx                                    |    8 
 48 files changed, 770 insertions(+), 763 deletions(-)

New commits:
commit c9cd1e37b25394b3b852cccf4f32c144ce02aaa8
Author: Thorsten Behrens <thb at documentfoundation.org>
Date:   Sun Oct 27 17:16:45 2013 +0100

    Rework slideshow to use XCanvas directly. Kill cppcanvas references.
    
    This builds now, but is not working yet ...
    
    Change-Id: I9995fe8cdbb0b8ca1be8d73a678feeb2c3708c9e

diff --git a/include/canvas/canvastools.hxx b/include/canvas/canvastools.hxx
index fd6dadd..2bc651d 100644
--- a/include/canvas/canvastools.hxx
+++ b/include/canvas/canvastools.hxx
@@ -378,7 +378,7 @@ namespace canvas
         /// Convert standard 8888 RGBA color to vcl color
         CANVASTOOLS_DLLPUBLIC ::Color stdIntSequenceToColor( const ::com::sun::star::uno::Sequence<sal_Int8>& rColor );
 
-        /// Convert standard 8888 RGBA color to vcl color
+        /// Convert standard vcl Color to 8888 RGBA color
         CANVASTOOLS_DLLPUBLIC ::com::sun::star::uno::Sequence<sal_Int8> colorToStdIntSequence( const ::Color& rColor );
 
         // Modeled closely after boost::numeric_cast, only that we
diff --git a/offapi/com/sun/star/rendering/XCanvas.idl b/offapi/com/sun/star/rendering/XCanvas.idl
index 5a97339..83e71ec 100644
--- a/offapi/com/sun/star/rendering/XCanvas.idl
+++ b/offapi/com/sun/star/rendering/XCanvas.idl
@@ -120,12 +120,12 @@ interface XCanvas : ::com::sun::star::uno::XInterface
      */
     void                erase();
 
-    /** Clears the whole canvas area to given color.<p>
+    /** Fills the whole canvas area to given color.<p>
 
         This method fills the whole canvas area with the given device
         color.
      */
-    void                clear( [in] sequence<ColorComponent> aColor );
+    void                fill( [in] sequence<ColorComponent> aColor );
 
      /** Draw a point in device resolution on the device.
 
diff --git a/slideshow/CppunitTest_slideshow.mk b/slideshow/CppunitTest_slideshow.mk
index bc5c9a5..4ff1afd 100644
--- a/slideshow/CppunitTest_slideshow.mk
+++ b/slideshow/CppunitTest_slideshow.mk
@@ -40,7 +40,6 @@ $(eval $(call gb_CppunitTest_use_libraries,slideshow,\
     basegfx \
     canvastools \
     comphelper \
-    cppcanvas \
     cppu \
     cppuhelper \
     sal \
diff --git a/slideshow/Executable_demoshow.mk b/slideshow/Executable_demoshow.mk
index 56725bd..a116e72 100644
--- a/slideshow/Executable_demoshow.mk
+++ b/slideshow/Executable_demoshow.mk
@@ -35,7 +35,6 @@ $(eval $(call gb_Library_use_sdk_api,demoshow))
 $(eval $(call gb_Executable_use_libraries,demoshow,\
     basegfx \
     comphelper \
-    cppcanvas \
     cppu \
     cppuhelper \
     sal \
diff --git a/slideshow/Library_slideshow.mk b/slideshow/Library_slideshow.mk
index a11ca8e..81b2348 100644
--- a/slideshow/Library_slideshow.mk
+++ b/slideshow/Library_slideshow.mk
@@ -36,7 +36,6 @@ $(eval $(call gb_Library_use_libraries,slideshow,\
     basegfx \
     canvastools \
     comphelper \
-    cppcanvas \
     cppu \
     cppuhelper \
     drawinglayer \
diff --git a/slideshow/TODO b/slideshow/TODO
new file mode 100644
index 0000000..bc1f820
--- /dev/null
+++ b/slideshow/TODO
@@ -0,0 +1,14 @@
+Stuff left doing
+================
+
+ - grep for TODO-NYI
+ - migrate emf+ renderer over to primitives
+ - implement stateful canvas processor (e.g. for the color changes?)
+   -or- decorate primitives with color modifiers e.g.
+ - do we need viewstate at the canvas to pass around?
+
+ - 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/inc/pch/precompiled_slideshow.hxx b/slideshow/inc/pch/precompiled_slideshow.hxx
index 6d8b4a9..bf82987 100644
--- a/slideshow/inc/pch/precompiled_slideshow.hxx
+++ b/slideshow/inc/pch/precompiled_slideshow.hxx
@@ -169,14 +169,6 @@
 #include <comphelper/sequence.hxx>
 #include <comphelper/servicedecl.hxx>
 #include <comphelper/uno3.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
-#include <cppcanvas/bitmap.hxx>
-#include <cppcanvas/canvas.hxx>
-#include <cppcanvas/customsprite.hxx>
-#include <cppcanvas/polypolygon.hxx>
-#include <cppcanvas/renderer.hxx>
-#include <cppcanvas/spritecanvas.hxx>
-#include <cppcanvas/vclfactory.hxx>
 #include <cppuhelper/basemutex.hxx>
 #include <cppuhelper/compbase1.hxx>
 #include <cppuhelper/compbase2.hxx>
diff --git a/slideshow/source/engine/animatedsprite.cxx b/slideshow/source/engine/animatedsprite.cxx
index 5d421c2..bb33250 100644
--- a/slideshow/source/engine/animatedsprite.cxx
+++ b/slideshow/source/engine/animatedsprite.cxx
@@ -24,9 +24,7 @@
 
 #include <animatedsprite.hxx>
 
-#include <cppcanvas/canvas.hxx>
 #include <canvas/canvastools.hxx>
-
 #include <basegfx/vector/b2dvector.hxx>
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
@@ -63,15 +61,17 @@ namespace slideshow
             mpSprite = mpViewLayer->createSprite( maEffectiveSpriteSizePixel,
                                                   mnSpritePrio );
 
-            ENSURE_OR_THROW( mpSprite, "AnimatedSprite::AnimatedSprite(): Could not create sprite" );
+            ENSURE_OR_THROW( mpSprite.is(),
+                             "AnimatedSprite::AnimatedSprite(): Could not create sprite" );
         }
 
-        ::cppcanvas::CanvasSharedPtr AnimatedSprite::getContentCanvas() const
+        uno::Reference< rendering::XCanvas > AnimatedSprite::getContentCanvas() const
         {
-            ENSURE_OR_THROW( mpViewLayer->getCanvas(), "AnimatedSprite::getContentCanvas(): No view layer canvas" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
+                             "AnimatedSprite::getContentCanvas(): No view layer canvas" );
 
-            const ::cppcanvas::CanvasSharedPtr pContentCanvas( mpSprite->getContentCanvas() );
-            pContentCanvas->clear();
+            const uno::Reference< rendering::XCanvas > pContentCanvas( mpSprite->getContentCanvas() );
+            pContentCanvas->erase();
 
             // extract linear part of canvas view transformation
             // (linear means: without translational components). The
@@ -86,7 +86,8 @@ namespace slideshow
             aLinearTransform.set( 1, 2, maContentPixelOffset.getY() );
 
             // apply linear part of canvas view transformation to sprite canvas
-            pContentCanvas->setTransformation( aLinearTransform );
+            // TODO-NYI
+            //pContentCanvas->setTransformation( aLinearTransform );
 
             return pContentCanvas;
         }
@@ -134,24 +135,25 @@ namespace slideshow
                 mpSprite = mpViewLayer->createSprite( maEffectiveSpriteSizePixel,
                                                       mnSpritePrio );
 
-                ENSURE_OR_THROW( mpSprite,
+                ENSURE_OR_THROW( mpSprite.is(),
                                   "AnimatedSprite::resize(): Could not create new sprite" );
 
                 // set attributes similar to previous sprite
-                if( mpSprite && mbSpriteVisible )
+                if( mpSprite.is() && mbSpriteVisible )
                 {
                     mpSprite->show();
                     mpSprite->setAlpha( mnAlpha );
 
-                    if( maPosPixel )
-                        mpSprite->movePixel( *maPosPixel );
+                    // TODO-NYI
+                    // if( maPosPixel )
+                    //     mpSprite->movePixel( *maPosPixel );
 
-                    if( maClip )
-                        mpSprite->setClip( *maClip );
+                    // if( maClip )
+                    //     mpSprite->setClip( *maClip );
                 }
             }
 
-            return static_cast< bool >(mpSprite);
+            return mpSprite.is();
         }
 
         void AnimatedSprite::setPixelOffset( const ::basegfx::B2DSize& rPixelOffset )
@@ -162,7 +164,8 @@ namespace slideshow
         void AnimatedSprite::movePixel( const ::basegfx::B2DPoint& rNewPos )
         {
             maPosPixel.reset( rNewPos );
-            mpSprite->movePixel( rNewPos );
+            // TODO-NYI
+            //mpSprite->movePixel( rNewPos );
         }
 
         void AnimatedSprite::setAlpha( double nAlpha )
@@ -174,19 +177,22 @@ namespace slideshow
         void AnimatedSprite::clip( const ::basegfx::B2DPolyPolygon& rClip )
         {
             maClip.reset( rClip );
-            mpSprite->setClipPixel( rClip );
+            // TODO-NYI
+            //mpSprite->setClipPixel( rClip );
         }
 
         void AnimatedSprite::clip()
         {
             maClip.reset();
-            mpSprite->setClip();
+            // TODO-NYI
+            //mpSprite->setClip();
         }
 
         void AnimatedSprite::transform( const ::basegfx::B2DHomMatrix& rTransform )
         {
             maTransform.reset( rTransform );
-            mpSprite->transform( rTransform );
+            // TODO-NYI
+            //mpSprite->transform( rTransform );
         }
 
         void AnimatedSprite::hide()
diff --git a/slideshow/source/engine/color.cxx b/slideshow/source/engine/color.cxx
index 06ce617..67210f0 100644
--- a/slideshow/source/engine/color.cxx
+++ b/slideshow/source/engine/color.cxx
@@ -308,13 +308,6 @@ namespace slideshow
         {
         }
 
-        RGBColor::RGBColor( ::cppcanvas::Color::IntSRGBA nRGBColor ) :
-            maRGBTriple( ::cppcanvas::getRed( nRGBColor ) / 255.0,
-                         ::cppcanvas::getGreen( nRGBColor ) / 255.0,
-                         ::cppcanvas::getBlue( nRGBColor ) / 255.0 )
-        {
-        }
-
         RGBColor::RGBColor( double nRed, double nGreen, double nBlue ) :
             maRGBTriple( nRed, nGreen, nBlue )
         {
@@ -327,6 +320,13 @@ namespace slideshow
         {
         }
 
+        RGBColor::RGBColor( sal_uInt32 nColor ) :
+            maRGBTriple( (sal_uInt8)(nColor>>16) / 255.0,
+                         (sal_uInt8)(sal_uInt16(nColor) >> 8) / 255.0,
+                         (sal_uInt8)nColor / 255.0 )
+        {
+        }
+
         double RGBColor::getRed() const
         {
             return maRGBTriple.mnRed;
@@ -342,14 +342,6 @@ namespace slideshow
             return maRGBTriple.mnBlue;
         }
 
-        ::cppcanvas::Color::IntSRGBA RGBColor::getIntegerColor() const
-        {
-            return ::cppcanvas::makeColor( colorToInt( getRed() ),
-                                           colorToInt( getGreen() ),
-                                           colorToInt( getBlue() ),
-                                           255 );
-        }
-
         sal_Bool operator==( const RGBColor& rLHS, const RGBColor& rRHS )
         {
             return ( rLHS.getRed() == rRHS.getRed() &&
diff --git a/slideshow/source/engine/pointersymbol.cxx b/slideshow/source/engine/pointersymbol.cxx
index 20dd121..b08e8ba 100644
--- a/slideshow/source/engine/pointersymbol.cxx
+++ b/slideshow/source/engine/pointersymbol.cxx
@@ -83,7 +83,7 @@ void PointerSymbol::setVisible( const bool bVisible )
         ViewsVecT::const_iterator const aEnd ( maViews.end() );
         while( aIter != aEnd )
         {
-            if( aIter->second )
+            if( aIter->second.is() )
             {
                 if( bVisible )
                     aIter->second->show();
@@ -111,7 +111,7 @@ basegfx::B2DPoint PointerSymbol::calcSpritePos(UnoViewSharedPtr const & rView) c
 
 void PointerSymbol::viewAdded( const UnoViewSharedPtr& rView )
 {
-    cppcanvas::CustomSpriteSharedPtr sprite;
+    uno::Reference< rendering::XCustomSprite > sprite;
 
     try
     {
@@ -124,11 +124,12 @@ void PointerSymbol::viewAdded( const UnoViewSharedPtr& rView )
         canvas::tools::initViewState( viewState );
         rendering::RenderState renderState;
         canvas::tools::initRenderState( renderState );
-        sprite->getContentCanvas()->getUNOCanvas()->drawBitmap(
+        sprite->getContentCanvas()->drawBitmap(
             mxBitmap, viewState, renderState );
 
         sprite->setAlpha( 0.9 );
-        sprite->movePixel( calcSpritePos( rView ) );
+        // TODO-NYI
+        // sprite->movePixel( calcSpritePos( rView ) );
         if( mbVisible )
             sprite->show();
     }
@@ -172,9 +173,12 @@ void PointerSymbol::viewChanged( const UnoViewSharedPtr& rView )
     if( aModifiedEntry == maViews.end() )
         return;
 
-    if( aModifiedEntry->second )
+#if 0
+    // TODO-NYI
+    if( aModifiedEntry->second.is() )
         aModifiedEntry->second->movePixel(
             calcSpritePos(aModifiedEntry->first) );
+#endif
 }
 
 void PointerSymbol::viewsChanged()
@@ -184,9 +188,12 @@ void PointerSymbol::viewsChanged()
     ViewsVecT::const_iterator const aEnd ( maViews.end() );
     while( aIter != aEnd )
     {
-        if( aIter->second )
+        if( aIter->second.is() )
+#if 0
+            // TODO-NYI
             aIter->second->movePixel(
                 calcSpritePos( aIter->first ));
+#endif
         ++aIter;
     }
 }
@@ -202,10 +209,11 @@ void PointerSymbol::viewsChanged(const geometry::RealPoint2D pos)
         ViewsVecT::const_iterator const aEnd ( maViews.end() );
         while( aIter != aEnd )
         {
-            if( aIter->second )
+            if( aIter->second.is() )
             {
-                aIter->second->movePixel(
-                calcSpritePos( aIter->first ));
+                // TODO-NYI
+                // aIter->second->movePixel(
+                calcSpritePos( aIter->first );
                 mrScreenUpdater.notifyUpdate();
                 mrScreenUpdater.commitUpdates();
             }
diff --git a/slideshow/source/engine/pointersymbol.hxx b/slideshow/source/engine/pointersymbol.hxx
index 706f312..cbc6584 100644
--- a/slideshow/source/engine/pointersymbol.hxx
+++ b/slideshow/source/engine/pointersymbol.hxx
@@ -12,7 +12,6 @@
 #define POINTERSYMBOL_HXX_INCLUDED
 
 #include <com/sun/star/rendering/XBitmap.hpp>
-#include <cppcanvas/customsprite.hxx>
 
 #include "com/sun/star/uno/Reference.hxx"
 
@@ -83,7 +82,7 @@ private:
 
     typedef ::std::vector<
         ::std::pair<UnoViewSharedPtr,
-                    cppcanvas::CustomSpriteSharedPtr> > ViewsVecT;
+                    css::uno::Reference< css::rendering::XCustomSprite >> > ViewsVecT;
 
     ::com::sun::star::uno::Reference<
         ::com::sun::star::rendering::XBitmap>  mxBitmap;
diff --git a/slideshow/source/engine/rehearsetimingsactivity.cxx b/slideshow/source/engine/rehearsetimingsactivity.cxx
index 44e0305..4aa7560 100644
--- a/slideshow/source/engine/rehearsetimingsactivity.cxx
+++ b/slideshow/source/engine/rehearsetimingsactivity.cxx
@@ -24,9 +24,9 @@
 #include <vcl/gdimtf.hxx>
 #include <vcl/virdev.hxx>
 #include <vcl/metric.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
 #include <basegfx/range/b2drange.hxx>
+#include <basegfx/vector/b2dsize.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
 
 #include <comphelper/anytostring.hxx>
 #include <cppuhelper/exc_hlp.hxx>
@@ -217,7 +217,7 @@ void RehearseTimingsActivity::start()
 
     // paint and show all sprites:
     paintAllSprites();
-    for_each_sprite( boost::bind( &cppcanvas::Sprite::show, _1 ) );
+    for_each_sprite( boost::bind( &rendering::XCustomSprite::show, _1 ) );
 
     mrActivitiesQueue.addActivity( shared_from_this() );
 
@@ -235,7 +235,7 @@ double RehearseTimingsActivity::stop()
 
     mbActive = false; // will be removed from queue
 
-    for_each_sprite( boost::bind( &cppcanvas::Sprite::hide, _1 ) );
+    for_each_sprite( boost::bind( &rendering::XCustomSprite::hide, _1 ) );
 
     return maElapsedTime.getElapsedTime();
 }
@@ -306,7 +306,7 @@ void RehearseTimingsActivity::end()
 
 basegfx::B2DRange RehearseTimingsActivity::calcSpriteRectangle( UnoViewSharedPtr const& rView ) const
 {
-    const Reference<rendering::XBitmap> xBitmap( rView->getCanvas()->getUNOCanvas(),
+    const Reference<rendering::XBitmap> xBitmap( rView->getCanvas(),
                                                  UNO_QUERY );
     if( !xBitmap.is() )
         return basegfx::B2DRange();
@@ -331,7 +331,7 @@ basegfx::B2DRange RehearseTimingsActivity::calcSpriteRectangle( UnoViewSharedPtr
 
 void RehearseTimingsActivity::viewAdded( const UnoViewSharedPtr& rView )
 {
-    cppcanvas::CustomSpriteSharedPtr sprite(
+    css::uno::Reference< css::rendering::XCustomSprite > sprite(
         rView->createSprite( basegfx::B2DSize(
                                  maSpriteSizePixel.getX()+2,
                                  maSpriteSizePixel.getY()+2 ),
@@ -340,9 +340,12 @@ void RehearseTimingsActivity::viewAdded( const UnoViewSharedPtr& rView )
     sprite->setAlpha( 0.8 );
     const basegfx::B2DRange spriteRectangle(
         calcSpriteRectangle( rView ) );
+#if 0
+    // TODO-NYI - keep local state, or encapsulate in dedicated sprite object again?
     sprite->move( basegfx::B2DPoint(
                       spriteRectangle.getMinX(),
                       spriteRectangle.getMinY() ) );
+#endif
 
     if( maViews.empty() )
         maSpriteRectangle = spriteRectangle;
@@ -387,7 +390,8 @@ void RehearseTimingsActivity::viewChanged( const UnoViewSharedPtr& rView )
     maSpriteRectangle = calcSpriteRectangle( rView );
 
     // reposition sprite:
-    aModifiedEntry->second->move( maSpriteRectangle.getMinimum() );
+    // TODO-NYI - keep local state, or encapsulate in dedicated sprite object again?
+    //aModifiedEntry->second->move( maSpriteRectangle.getMinimum() );
 
     // sprites changed, need screen update
     mrScreenUpdater.notifyUpdate( rView );
@@ -400,10 +404,13 @@ void RehearseTimingsActivity::viewsChanged()
         // new sprite pos, transformation might have changed:
         maSpriteRectangle = calcSpriteRectangle( maViews.front().first );
 
+#if 0
+        // TODO-NYI
         // reposition sprites
-        for_each_sprite( boost::bind( &cppcanvas::Sprite::move,
+        for_each_sprite( boost::bind( &rendering::XCustomSprite::move,
                                       _1,
                                       boost::cref(maSpriteRectangle.getMinimum())) );
+#endif
 
         // sprites changed, need screen update
         mrScreenUpdater.notifyUpdate();
@@ -416,11 +423,14 @@ void RehearseTimingsActivity::paintAllSprites() const
         boost::bind( &RehearseTimingsActivity::paint, this,
                      // call getContentCanvas() on each sprite:
                      boost::bind(
-                         &cppcanvas::CustomSprite::getContentCanvas, _1 ) ) );
+                         &rendering::XCustomSprite::getContentCanvas, _1 ) ) );
 }
 
-void RehearseTimingsActivity::paint( cppcanvas::CanvasSharedPtr const & canvas ) const
+void RehearseTimingsActivity::paint( css::uno::Reference< css::rendering::XCanvas > const & ) const
 {
+#if 0
+    // TODO-NYI - move this over to drawing layer primitives!
+
     // build timer string:
     const sal_Int32 nTimeSecs =
         static_cast<sal_Int32>(maElapsedTime.getElapsedTime());
@@ -479,6 +489,7 @@ void RehearseTimingsActivity::paint( cppcanvas::CanvasSharedPtr const & canvas )
     const bool succ = renderer->draw();
     OSL_ASSERT( succ );
     (void)succ;
+#endif
 }
 
 
diff --git a/slideshow/source/engine/rehearsetimingsactivity.hxx b/slideshow/source/engine/rehearsetimingsactivity.hxx
index c0a6c13..e1b5d59 100644
--- a/slideshow/source/engine/rehearsetimingsactivity.hxx
+++ b/slideshow/source/engine/rehearsetimingsactivity.hxx
@@ -32,7 +32,6 @@
 
 class Font;
 namespace canvas{ namespace tools{ class ElapsedTime; }}
-namespace cppcanvas{ class CustomSprite; }
 namespace basegfx
 {
     class B2IVector;
@@ -91,7 +90,7 @@ private:
 
     explicit RehearseTimingsActivity( const SlideShowContext& rContext );
 
-    void paint( ::cppcanvas::CanvasSharedPtr const & canvas ) const;
+    void paint( css::uno::Reference< css::rendering::XCanvas > const & canvas ) const;
     void paintAllSprites() const;
 
     class MouseHandler;
@@ -99,7 +98,7 @@ private:
 
     typedef ::std::vector<
         ::std::pair<UnoViewSharedPtr,
-                    boost::shared_ptr<cppcanvas::CustomSprite> > > ViewsVecT;
+                    css::uno::Reference<css::rendering::XCustomSprite> > > ViewsVecT;
 
     template <typename func_type>
     void for_each_sprite( func_type const & func ) const
diff --git a/slideshow/source/engine/shapes/drawshape.cxx b/slideshow/source/engine/shapes/drawshape.cxx
index 5d250be..8ea1d22 100644
--- a/slideshow/source/engine/shapes/drawshape.cxx
+++ b/slideshow/source/engine/shapes/drawshape.cxx
@@ -180,7 +180,6 @@ namespace slideshow
                                      ::boost::cref( mxShape ),
                                      ::boost::cref( mxPage ),
                                      ::boost::cref( mxPrimitives ),
-                                     ::boost::cref( mpCurrMtf ),
                                      ::boost::cref(
                                          getViewRenderArgs() ),
                                      nUpdateFlags,
@@ -299,9 +298,12 @@ namespace slideshow
                     // added or removed). Maybe we should exclude it here,
                     // always assuming full bounds?
 
-                    ::cppcanvas::CanvasSharedPtr pDestinationCanvas(
+                    css::uno::Reference< css::rendering::XCanvas > pDestinationCanvas(
                         maViewShapes.front()->getViewLayer()->getCanvas() );
 
+#if 0
+                    // TODO-NYI
+
                     // TODO(Q2): Although this _is_ currently
                     // view-agnostic, it might not stay like
                     // that. Maybe this method should again be moved
@@ -362,6 +364,7 @@ namespace slideshow
 
                         maCurrentShapeUnitBounds.reset( aTotalBounds );
                     }
+#endif
                 }
 
                 return *maCurrentShapeUnitBounds;
@@ -674,7 +677,6 @@ namespace slideshow
                 pNewShape->update( mxShape,
                                    mxPage,
                                    mxPrimitives,
-                                   mpCurrMtf,
                                    getViewRenderArgs(),
                                    ViewShape::FORCE,
                                    isVisible() );
@@ -1000,9 +1002,12 @@ namespace slideshow
                 // TODO(Q2): Although this _is_ currently
                 // view-agnostic, it might not stay like that.
                 ViewShapeSharedPtr const& pViewShape = maViewShapes.front();
-                cppcanvas::CanvasSharedPtr const pCanvas(
+                css::uno::Reference< css::rendering::XCanvas > const pCanvas(
                     pViewShape->getViewLayer()->getCanvas() );
 
+#if 0
+                // TODO-NYI
+
                 // reuse Renderer of first view shape:
                 cppcanvas::RendererSharedPtr const pRenderer(
                     pViewShape->getRenderer(
@@ -1037,6 +1042,7 @@ namespace slideshow
                         maHyperlinkRegions[pos].first = region;
                     }
                 }
+#endif
             }
 
             // shift shape-relative hyperlink regions to
diff --git a/slideshow/source/engine/shapes/shapeimporter.cxx b/slideshow/source/engine/shapes/shapeimporter.cxx
index 5d1879f..824ae15 100644
--- a/slideshow/source/engine/shapes/shapeimporter.cxx
+++ b/slideshow/source/engine/shapes/shapeimporter.cxx
@@ -27,8 +27,7 @@
 #include <unotools/streamwrap.hxx>
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
-#include <cppcanvas/polypolygon.hxx>
+#include <basegfx/tools/canvastools.hxx>
 #include <com/sun/star/awt/Rectangle.hpp>
 #include <com/sun/star/drawing/ColorMode.hpp>
 #include <com/sun/star/text/GraphicCrop.hpp>
@@ -475,8 +474,8 @@ bool ShapeImporter::isSkip(
 void ShapeImporter::importPolygons(uno::Reference<beans::XPropertySet> const& xPropSet) {
 
     drawing::PointSequenceSequence aRetval;
-    sal_Int32           nLineColor=0;
-    double              fLineWidth;
+    sal_Int32                      nLineColor=0;
+    double                         fLineWidth;
     getPropertyValue( aRetval, xPropSet, "PolyPolygon" );
     getPropertyValue( nLineColor, xPropSet, "LineColor" );
     getPropertyValue( fLineWidth, xPropSet, "LineWidth" );
@@ -496,16 +495,20 @@ void ShapeImporter::importPolygons(uno::Reference<beans::XPropertySet> const& xP
     UnoViewVector::const_iterator aEnd=(mrContext.mrViewContainer).end();
     while(aIter != aEnd)
     {
-        ::cppcanvas::PolyPolygonSharedPtr pPolyPoly(
-            ::cppcanvas::BaseGfxFactory::getInstance().createPolyPolygon( (*aIter)->getCanvas(),
-                                                                          aPoly ) );
-        if( pPolyPoly )
+        uno::Reference< rendering::XPolyPolygon2D > xPoly=
+            basegfx::unotools::xPolyPolygonFromB2DPolygon(
+                (*aIter)->getCanvas()->getDevice(),
+                aPoly);
+#if 0
+        // TODO-NYI
+        if( xPoly.is() )
         {
-                pPolyPoly->setRGBALineColor( unoColor2RGBColor( nLineColor ).getIntegerColor() );
-                pPolyPoly->setStrokeWidth(fLineWidth);
-                pPolyPoly->draw();
-                maPolygons.push_back(pPolyPoly);
+            pPolyPoly->setRGBALineColor( unoColor2RGBColor( nLineColor ).getIntegerColor() );
+            pPolyPoly->setStrokeWidth(fLineWidth);
+            pPolyPoly->draw();
+            maPolygons.push_back(xPoly);
         }
+#endif
         ++aIter;
     }
 }
diff --git a/slideshow/source/engine/shapes/viewappletshape.cxx b/slideshow/source/engine/shapes/viewappletshape.cxx
index 87175ee..65165d6 100644
--- a/slideshow/source/engine/shapes/viewappletshape.cxx
+++ b/slideshow/source/engine/shapes/viewappletshape.cxx
@@ -30,7 +30,6 @@
 #include <basegfx/range/b2irange.hxx>
 #include <basegfx/tools/canvastools.hxx>
 
-#include <cppcanvas/spritecanvas.hxx>
 #include <canvas/canvastools.hxx>
 
 #include <com/sun/star/uno/XComponentContext.hpp>
@@ -73,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(), "ViewAppletShape::ViewAppletShape(): Invalid ViewLayer canvas" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(), "ViewAppletShape::ViewAppletShape(): Invalid ViewLayer canvas" );
             ENSURE_OR_THROW( mxComponentContext.is(), "ViewAppletShape::ViewAppletShape(): Invalid component context" );
 
             uno::Reference<lang::XMultiComponentFactory> xFactory(
@@ -128,13 +127,13 @@ namespace slideshow
 
         bool ViewAppletShape::startApplet( const ::basegfx::B2DRectangle& rBounds )
         {
-            ENSURE_OR_RETURN_FALSE( mpViewLayer && mpViewLayer->getCanvas() && mpViewLayer->getCanvas()->getUNOCanvas().is(),
-                               "ViewAppletShape::startApplet(): Invalid or disposed view" );
+            ENSURE_OR_RETURN_FALSE( mpViewLayer && mpViewLayer->getCanvas().is(),
+                                    "ViewAppletShape::startApplet(): Invalid or disposed view" );
             try
             {
-                ::cppcanvas::CanvasSharedPtr pCanvas = mpViewLayer->getCanvas();
+                css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
 
-                uno::Reference< beans::XPropertySet > xPropSet( pCanvas->getUNOCanvas()->getDevice(),
+                uno::Reference< beans::XPropertySet > xPropSet( pCanvas->getDevice(),
                                                                 uno::UNO_QUERY_THROW );
 
                 uno::Reference< awt::XWindow2 > xParentWindow(
@@ -232,17 +231,17 @@ namespace slideshow
 
         bool ViewAppletShape::render( const ::basegfx::B2DRectangle& rBounds ) const
         {
-            ::cppcanvas::CanvasSharedPtr pCanvas = mpViewLayer->getCanvas();
+            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
 
-            if( !pCanvas )
+            if( !pCanvas.is() )
                 return false;
 
             if( !mxFrame.is() )
             {
-                // fill the shape background with black
+                // fill the shape background with white
                 fillRect( pCanvas,
                           rBounds,
-                          0xFFFFFFFFU );
+                          basegfx::BColor(1.0) );
             }
 
             return true;
diff --git a/slideshow/source/engine/shapes/viewbackgroundshape.cxx b/slideshow/source/engine/shapes/viewbackgroundshape.cxx
index 05f255b..58c3868 100644
--- a/slideshow/source/engine/shapes/viewbackgroundshape.cxx
+++ b/slideshow/source/engine/shapes/viewbackgroundshape.cxx
@@ -37,13 +37,10 @@
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
 
 #include <com/sun/star/rendering/XCanvas.hpp>
+#include <com/sun/star/rendering/XIntegerBitmap.hpp>
 
 #include <canvas/verbosetrace.hxx>
 #include <canvas/canvastools.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
-#include <cppcanvas/renderer.hxx>
-#include <cppcanvas/bitmap.hxx>
 
 using namespace ::com::sun::star;
 
@@ -53,7 +50,7 @@ namespace slideshow
     namespace internal
     {
 
-        bool ViewBackgroundShape::prefetch( const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
+        bool ViewBackgroundShape::prefetch( const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas,
                                             const GDIMetaFileSharedPtr&         rMtf ) const
         {
             SAL_INFO( "slideshow", "::presentation::internal::ViewBackgroundShape::prefetch()" );
@@ -78,39 +75,44 @@ namespace slideshow
                 // determine pixel size of bitmap (choose it one pixel
                 // larger, as polygon rendering takes one pixel more
                 // to the right and to the bottom)
-                const ::basegfx::B2ISize aBmpSizePixel(
+                const css::geometry::IntegerSize2D aBmpSizePixel(
                     ::basegfx::fround( aTmpRect.getRange().getX() + 1),
                     ::basegfx::fround( aTmpRect.getRange().getY() + 1) );
 
-                // create a bitmap of appropriate size
-                ::cppcanvas::BitmapSharedPtr pBitmap(
-                    ::cppcanvas::BaseGfxFactory::getInstance().createBitmap(
-                        rDestinationCanvas,
-                        aBmpSizePixel ) );
+                // create a non-transparent bitmap of appropriate size
+                uno::Reference< rendering::XIntegerBitmap > pBitmap(
+                    rDestinationCanvas->getDevice()->createCompatibleBitmap(
+                        aBmpSizePixel),
+                    uno::UNO_QUERY_THROW);
 
-                ENSURE_OR_THROW( pBitmap,
-                                  "ViewBackgroundShape::prefetch(): Cannot create background bitmap" );
+                ENSURE_OR_THROW( pBitmap.is(),
+                                 "ViewBackgroundShape::prefetch(): Cannot create background bitmap" );
 
-                ::cppcanvas::BitmapCanvasSharedPtr pBitmapCanvas( pBitmap->getBitmapCanvas() );
+                uno::Reference< rendering::XCanvas > pBitmapCanvas(
+                    pBitmap, uno::UNO_QUERY_THROW);
 
-                ENSURE_OR_THROW( pBitmapCanvas,
-                                  "ViewBackgroundShape::prefetch(): Cannot create background bitmap canvas" );
+                ENSURE_OR_THROW( pBitmapCanvas.is(),
+                                 "ViewBackgroundShape::prefetch(): Cannot create background bitmap canvas" );
 
                 // clear bitmap
-                initSlideBackground( pBitmapCanvas,
-                                     aBmpSizePixel );
+                pBitmapCanvas->fill(
+                    ::basegfx::BColor(1.0,1.0,1.0).colorToDoubleSequence(
+                        pBitmapCanvas->getDevice()) );
 
                 // apply linear part of destination canvas transformation (linear means in this context:
                 // transformation without any translational components)
                 ::basegfx::B2DHomMatrix aLinearTransform( rCanvasTransform );
                 aLinearTransform.set( 0, 2, 0.0 );
                 aLinearTransform.set( 1, 2, 0.0 );
-                pBitmapCanvas->setTransformation( aLinearTransform );
+                // TODO-NYI
+                //pBitmapCanvas->setTransformation( aLinearTransform );
 
                 const basegfx::B2DHomMatrix aShapeTransform(basegfx::tools::createScaleTranslateB2DHomMatrix(
                     maBounds.getWidth(), maBounds.getHeight(),
                     maBounds.getMinX(), maBounds.getMinY()));
 
+# if 0
+                // TODO-NYI
                 ::cppcanvas::RendererSharedPtr pRenderer(
                     ::cppcanvas::VCLFactory::getInstance().createRenderer(
                         pBitmapCanvas,
@@ -118,12 +120,12 @@ namespace slideshow
                         ::cppcanvas::Renderer::Parameters() ) );
 
                 ENSURE_OR_RETURN_FALSE( pRenderer,
-                                   "ViewBackgroundShape::prefetch(): Could not create Renderer" );
+                                        "ViewBackgroundShape::prefetch(): Could not create Renderer" );
 
                 pRenderer->setTransformation( aShapeTransform );
                 pRenderer->draw();
-
-                mxBitmap = pBitmap->getUNOBitmap();
+# endif
+                mxBitmap = pBitmap;
             }
 
             mpLastMtf            = rMtf;
@@ -140,8 +142,10 @@ namespace slideshow
             maLastTransformation(),
             maBounds( rShapeBounds )
         {
-            ENSURE_OR_THROW( mpViewLayer, "ViewBackgroundShape::ViewBackgroundShape(): Invalid View" );
-            ENSURE_OR_THROW( mpViewLayer->getCanvas(), "ViewBackgroundShape::ViewBackgroundShape(): Invalid ViewLayer canvas" );
+            ENSURE_OR_THROW( mpViewLayer,
+                             "ViewBackgroundShape::ViewBackgroundShape(): Invalid View" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
+                             "ViewBackgroundShape::ViewBackgroundShape(): Invalid ViewLayer canvas" );
         }
 
         ViewLayerSharedPtr ViewBackgroundShape::getViewLayer() const
@@ -153,7 +157,7 @@ namespace slideshow
         {
             SAL_INFO( "slideshow", "::presentation::internal::ViewBackgroundShape::draw()" );
 
-            const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas( mpViewLayer->getCanvas() );
+            const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas( mpViewLayer->getCanvas() );
 
             if( !prefetch( rDestinationCanvas, rMtf ) )
                 return false;
@@ -180,9 +184,12 @@ namespace slideshow
 
             try
             {
-                rDestinationCanvas->getUNOCanvas()->drawBitmap( mxBitmap,
-                                                                rDestinationCanvas->getViewState(),
-                                                                aRenderState );
+#if 0
+                // TODO-NYI
+                rDestinationCanvas->drawBitmap( mxBitmap,
+                                                rDestinationCanvas->getViewState(),
+                                                aRenderState );
+#endif
             }
             catch( uno::Exception& )
             {
diff --git a/slideshow/source/engine/shapes/viewbackgroundshape.hxx b/slideshow/source/engine/shapes/viewbackgroundshape.hxx
index 4b9908d..eac2b68 100644
--- a/slideshow/source/engine/shapes/viewbackgroundshape.hxx
+++ b/slideshow/source/engine/shapes/viewbackgroundshape.hxx
@@ -22,10 +22,10 @@
 
 #include <com/sun/star/uno/Reference.hxx>
 #include <com/sun/star/rendering/XBitmap.hpp>
+#include <com/sun/star/rendering/XCanvas.hpp>
 
 #include <basegfx/range/b2drectangle.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
-#include <cppcanvas/spritecanvas.hxx>
 
 #include <boost/shared_ptr.hpp>
 #include <boost/utility.hpp>
@@ -68,8 +68,8 @@ namespace slideshow
         private:
             /** Prefetch bitmap for given canvas
              */
-            bool prefetch( const ::cppcanvas::CanvasSharedPtr&  rDestinationCanvas,
-                           const GDIMetaFileSharedPtr&          rMtf ) const;
+            bool prefetch( const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas,
+                           const GDIMetaFileSharedPtr&                           rMtf ) const;
 
             /** The view layer this object is part of.
              */
diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx
index b788a0f..2e6f8bc 100644
--- a/slideshow/source/engine/shapes/viewmediashape.cxx
+++ b/slideshow/source/engine/shapes/viewmediashape.cxx
@@ -41,8 +41,6 @@
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/range/b2irange.hxx>
 #include <canvas/canvastools.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
 #include <avmedia/mediawindow.hxx>
 
 #include <com/sun/star/media/XManager.hpp>
@@ -81,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(), "ViewMediaShape::ViewMediaShape(): Invalid ViewLayer canvas" );
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(), "ViewMediaShape::ViewMediaShape(): Invalid ViewLayer canvas" );
             ENSURE_OR_THROW( mxComponentContext.is(), "ViewMediaShape::ViewMediaShape(): Invalid component context" );
 
             UnoViewSharedPtr pUnoView (::boost::dynamic_pointer_cast<UnoView>(rViewLayer));
@@ -179,9 +177,9 @@ namespace slideshow
 
         bool ViewMediaShape::render( const ::basegfx::B2DRectangle& rBounds ) const
         {
-            ::cppcanvas::CanvasSharedPtr pCanvas = mpViewLayer->getCanvas();
+            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
 
-            if( !pCanvas )
+            if( !pCanvas.is() )
                 return false;
 
             if( !mpMediaWindow.get() && !mxPlayerWindow.is() )
@@ -193,10 +191,11 @@ namespace slideshow
                     avmedia::MediaWindow::getAudioLogo() : avmedia::MediaWindow::getEmptyLogo() );
 
                 uno::Reference< rendering::XBitmap > xBitmap(vcl::unotools::xBitmapFromBitmapEx(
-                    pCanvas->getUNOCanvas()->getDevice(), aAudioLogo));
+                    pCanvas->getDevice(), aAudioLogo));
 
                 rendering::ViewState aViewState;
-                aViewState.AffineTransform = pCanvas->getViewState().AffineTransform;
+                // TODO-NYI
+                //aViewState.AffineTransform = pCanvas->getViewState().AffineTransform;
 
                 rendering::RenderState aRenderState;
                 ::canvas::tools::initRenderState( aRenderState );
@@ -209,9 +208,9 @@ namespace slideshow
                     aScale, rBounds.getMinimum()));
                 ::canvas::tools::setRenderStateTransform( aRenderState, aTranslation );
 
-                pCanvas->getUNOCanvas()->drawBitmap( xBitmap,
-                                                     aViewState,
-                                                     aRenderState );
+                pCanvas->drawBitmap( xBitmap,
+                                     aViewState,
+                                     aRenderState );
             }
 
             return true;
@@ -221,15 +220,15 @@ namespace slideshow
         {
             maBounds = rNewBounds;
 
-            ::cppcanvas::CanvasSharedPtr pCanvas = mpViewLayer->getCanvas();
+            css::uno::Reference< css::rendering::XCanvas > pCanvas = mpViewLayer->getCanvas();
 
-            if( !pCanvas )
+            if( !pCanvas.is() )
                 return false;
 
             if( !mxPlayerWindow.is() )
                 return true;
 
-            uno::Reference< beans::XPropertySet > xPropSet( pCanvas->getUNOCanvas()->getDevice(),
+            uno::Reference< beans::XPropertySet > xPropSet( pCanvas->getDevice(),
                                                             uno::UNO_QUERY );
 
             uno::Reference< awt::XWindow > xParentWindow;
@@ -284,10 +283,10 @@ namespace slideshow
         {
             if( !mxPlayer.is() && mxShape.is() )
             {
-                ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas(),
-                                   "ViewMediaShape::update(): Invalid layer canvas" );
+                ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().is(),
+                                        "ViewMediaShape::update(): Invalid layer canvas" );
 
-                uno::Reference< rendering::XCanvas > xCanvas( mpViewLayer->getCanvas()->getUNOCanvas() );
+                uno::Reference< rendering::XCanvas > xCanvas( mpViewLayer->getCanvas() );
 
                 if( xCanvas.is() )
                 {
diff --git a/slideshow/source/engine/shapes/viewshape.cxx b/slideshow/source/engine/shapes/viewshape.cxx
index 1f92acd..e3d8579 100644
--- a/slideshow/source/engine/shapes/viewshape.cxx
+++ b/slideshow/source/engine/shapes/viewshape.cxx
@@ -41,8 +41,6 @@
 
 #include <canvas/verbosetrace.hxx>
 #include <canvas/canvastools.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
 #include <drawinglayer/processor2d/canvasprocessor2d.hxx>
 
 #include "viewshape.hxx"
@@ -62,16 +60,14 @@ namespace slideshow
         // char rotation etc.). Do that via mtf argument at this object
 
         bool ViewShape::prefetch( RendererCacheEntry&                   io_rCacheEntry,
-                                  const ::cppcanvas::CanvasSharedPtr&   rDestinationCanvas,
-                                  const GDIMetaFileSharedPtr&           rMtf,
-                                  const ShapeAttributeLayerSharedPtr&   rAttr ) const
+                                  const css::uno::Reference< css::rendering::XCanvas >&   rDestinationCanvas,
+                                  const ShapeAttributeLayerSharedPtr&    ) const
         {
-            ENSURE_OR_RETURN_FALSE( rMtf,
-                               "ViewShape::prefetch(): no valid metafile!" );
-
-            if( rMtf != io_rCacheEntry.mpMtf ||
-                rDestinationCanvas != io_rCacheEntry.getDestinationCanvas() )
+            if( rDestinationCanvas != io_rCacheEntry.getDestinationCanvas() )
             {
+#if 0
+                // TODO-NYI
+
                 // buffered renderer invalid, re-create
                 ::cppcanvas::Renderer::Parameters aParms;
 
@@ -175,27 +171,23 @@ namespace slideshow
                     io_rCacheEntry.mpLastBitmapCanvas.reset();
                     io_rCacheEntry.mpLastBitmap.reset();
                 }
+#endif
             }
 
-            return static_cast< bool >(io_rCacheEntry.mpRenderer);
+            //return static_cast< bool >(io_rCacheEntry.mpRenderer);
+            return false;
         }
 
-        bool ViewShape::draw( const ::cppcanvas::CanvasSharedPtr&   rDestinationCanvas,
-                              const uno::Reference<drawing::XShape>&    xShape,
-                              const uno::Reference<drawing::XDrawPage>& xPage,
-                              const uno::Sequence<uno::Reference<graphic::XPrimitive2D> >& xPrimitives,
-                              const GDIMetaFileSharedPtr&           rMtf,
-                              const ShapeAttributeLayerSharedPtr&   rAttr,
-                              const ::basegfx::B2DHomMatrix&        rTransform,
-                              const ::basegfx::B2DPolyPolygon*      pClip,
-                              const VectorOfDocTreeNodes&           rSubsets ) const
+        bool ViewShape::draw( const uno::Reference<rendering::XCanvas>&        rDestinationCanvas,
+                              const uno::Reference<drawing::XShape>&           ,
+                              const uno::Reference<drawing::XDrawPage>&        xPage,
+                              const uno::Sequence<
+                                      uno::Reference<graphic::XPrimitive2D> >& xPrimitives,
+                              const ShapeAttributeLayerSharedPtr&              ,
+                              const ::basegfx::B2DHomMatrix&                   rTransform,
+                              const ::basegfx::B2DPolyPolygon*                 ,
+                              const VectorOfDocTreeNodes&                       ) const
         {
-            ::cppcanvas::RendererSharedPtr pRenderer(
-                getRenderer( rDestinationCanvas, rMtf, rAttr ) );
-
-            ENSURE_OR_RETURN_FALSE( pRenderer, "ViewShape::draw(): Invalid renderer" );
-
-            pRenderer->setTransformation( rTransform );
 #if OSL_DEBUG_LEVEL >= 2
             rendering::RenderState aRenderState;
             ::canvas::tools::initRenderState(aRenderState);
@@ -209,14 +201,17 @@ namespace slideshow
 
             try
             {
-                rDestinationCanvas->getUNOCanvas()->drawLine( geometry::RealPoint2D(0.0,0.0),
-                                                              geometry::RealPoint2D(1.0,1.0),
-                                                              rDestinationCanvas->getViewState(),
-                                                              aRenderState );
-                rDestinationCanvas->getUNOCanvas()->drawLine( geometry::RealPoint2D(1.0,0.0),
-                                                              geometry::RealPoint2D(0.0,1.0),
-                                                              rDestinationCanvas->getViewState(),
-                                                              aRenderState );
+#if 0
+                // TODO-NYI
+                rDestinationCanvas->drawLine( geometry::RealPoint2D(0.0,0.0),
+                                              geometry::RealPoint2D(1.0,1.0),
+                                              rDestinationCanvas->getViewState(),
+                                              aRenderState );
+                rDestinationCanvas->drawLine( geometry::RealPoint2D(1.0,0.0),
+                                              geometry::RealPoint2D(0.0,1.0),
+                                              rDestinationCanvas->getViewState(),
+                                              aRenderState );
+#endif
             }
             catch( uno::Exception& )
             {
@@ -232,7 +227,7 @@ namespace slideshow
 
             drawinglayer::processor2d::CanvasProcessor2D aProcessor(
                 aViewInfo,
-                rDestinationCanvas->getUNOCanvas());
+                rDestinationCanvas);
 
             aProcessor.process(xPrimitives);
 
@@ -269,7 +264,9 @@ namespace slideshow
 
                 // add antialiasing border around the shape (AA
                 // touches pixel _outside_ the nominal bound rect)
-                aBoundsPixel.grow( ::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE );
+
+                // TODO-NYI - make this canvas-dependent!
+                //aBoundsPixel.grow( ::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE );
 
                 return aBoundsPixel;
             }
@@ -289,19 +286,19 @@ namespace slideshow
             }
         }
 
-        bool ViewShape::renderSprite( const ViewLayerSharedPtr&             rViewLayer,
+        bool ViewShape::renderSprite( const ViewLayerSharedPtr&                 rViewLayer,
                                       const uno::Reference<drawing::XShape>&    xShape,
                                       const uno::Reference<drawing::XDrawPage>& xPage,
-                                      const uno::Sequence<uno::Reference<graphic::XPrimitive2D> >& xPrimitives,
-                                      const GDIMetaFileSharedPtr&           rMtf,
-                                      const ::basegfx::B2DRectangle&        rOrigBounds,
-                                      const ::basegfx::B2DRectangle&        rBounds,
-                                      const ::basegfx::B2DRectangle&        rUnitBounds,
-                                      int                                   nUpdateFlags,
-                                      const ShapeAttributeLayerSharedPtr&   pAttr,
-                                      const VectorOfDocTreeNodes&           rSubsets,
-                                      double                                nPrio,
-                                      bool                                  bIsVisible ) const
+                                      const uno::Sequence<uno::Reference<
+                                              graphic::XPrimitive2D> >&         xPrimitives,
+                                      const ::basegfx::B2DRectangle&            rOrigBounds,
+                                      const ::basegfx::B2DRectangle&            rBounds,
+                                      const ::basegfx::B2DRectangle&            rUnitBounds,
+                                      int                                       nUpdateFlags,
+                                      const ShapeAttributeLayerSharedPtr&       pAttr,
+                                      const VectorOfDocTreeNodes&               rSubsets,
+                                      double                                    nPrio,
+                                      bool                                      bIsVisible ) const
         {
             // TODO(P1): For multiple views, it might pay off to reorg Shape and ViewShape,
             // in that all the common setup steps here are refactored to Shape (would then
@@ -408,12 +405,18 @@ namespace slideshow
             const ::basegfx::B2DSize& rSpriteCorrectionOffset(
                 rSpriteBoundsPixel.getMinimum() - rNominalShapeBoundsPixel.getMinimum() );
 
+#if 0
+            // TODO-NYI - make this canvas-dependent!
+
             // offset added top, left for anti-aliasing (otherwise,
             // shapes fully filling the sprite will have anti-aliased
             // pixel cut off)
             const ::basegfx::B2DSize aAAOffset(
                 ::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE,
                 ::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE );
+#else
+            const ::basegfx::B2DSize aAAOffset(2,2);
+#endif
 
             // set pixel output offset to sprite: we always leave
             // ANTIALIASING_EXTRA_SIZE room atop and to the left, and,
@@ -464,12 +467,16 @@ namespace slideshow
                     aViewTransform.set( 0, 2, 0.0 );
                     aViewTransform.set( 1, 2, 0.0 );
 
+#if 0
+                    // TODO-NYI make this canvas-dependent!
+
                     // make the clip 2*ANTIALIASING_EXTRA_SIZE larger
                     // such that it's again centered over the sprite.
                     aViewTransform.scale(rSpriteSizePixel.getX()/
                                          (rSpriteSizePixel.getX()-2*::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE),
                                          rSpriteSizePixel.getY()/
                                          (rSpriteSizePixel.getY()-2*::cppcanvas::Canvas::ANTIALIASING_EXTRA_SIZE));
+#endif
 
                     // transform clip polygon from view to device
                     // coordinate space
@@ -501,30 +508,29 @@ namespace slideshow
             // sprite needs repaint - output to sprite canvas
             // ==============================================
 
-            ::cppcanvas::CanvasSharedPtr pContentCanvas( mpSprite->getContentCanvas() );
+            css::uno::Reference< css::rendering::XCanvas > pContentCanvas( mpSprite->getContentCanvas() );
 
             return draw( pContentCanvas,
                          xShape,
                          xPage,
                          xPrimitives,
-                         rMtf,
                          pAttr,
                          aShapeTransformation,
                          NULL, // clipping is done via Sprite::clip()
                          rSubsets );
         }
 
-        bool ViewShape::render( const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
-                                const uno::Reference<drawing::XShape>&    xShape,
-                                const uno::Reference<drawing::XDrawPage>& xPage,
-                                const uno::Sequence<uno::Reference<graphic::XPrimitive2D> >& xPrimitives,
-                                const GDIMetaFileSharedPtr&         rMtf,
-                                const ::basegfx::B2DRectangle&      rBounds,
-                                const ::basegfx::B2DRectangle&      rUpdateBounds,
-                                int                                 nUpdateFlags,
-                                const ShapeAttributeLayerSharedPtr& pAttr,
-                                const VectorOfDocTreeNodes&         rSubsets,
-                                bool                                bIsVisible ) const
+        bool ViewShape::render( const uno::Reference<rendering::XCanvas >& rDestinationCanvas,
+                                const uno::Reference<drawing::XShape>&     xShape,
+                                const uno::Reference<drawing::XDrawPage>&  xPage,
+                                const uno::Sequence<uno::Reference<
+                                        graphic::XPrimitive2D> >&          xPrimitives,
+                                const ::basegfx::B2DRectangle&             rBounds,
+                                const ::basegfx::B2DRectangle&             ,
+                                int                                        nUpdateFlags,
+                                const ShapeAttributeLayerSharedPtr&        pAttr,
+                                const VectorOfDocTreeNodes&                rSubsets,
+                                bool                                       bIsVisible ) const
         {
             // TODO(P1): For multiple views, it might pay off to reorg Shape and ViewShape,
             // in that all the common setup steps here are refactored to Shape (would then
@@ -578,6 +584,11 @@ namespace slideshow
                 // a temp bitmap, and then to screen (this would have
                 // been much easier if we'd be currently a sprite -
                 // see above)
+
+                // TODO-NYI - scratch that. either use drawing layer
+                // primitive, or make transparency groups a canvas op
+                // in the first place
+#if 0
                 if( pAttr->isAlphaValid() )
                 {
                     const double nAlpha( pAttr->getAlpha() );
@@ -626,7 +637,7 @@ namespace slideshow
                             aCompositingSurface->mpLastBitmapCanvas->getSize() != aBmpSize )
                         {
                             // create a bitmap of appropriate size
-                            ::cppcanvas::BitmapSharedPtr pBitmap(
+                            ::css::uno::Reference< css::rendering::XBitmap > pBitmap(
                                 ::cppcanvas::BaseGfxFactory::getInstance().createAlphaBitmap(
                                     rDestinationCanvas,
                                     aBmpSize ) );
@@ -642,10 +653,10 @@ namespace slideshow
                         // buffer aCompositingSurface iterator content
                         // - said one might get invalidated during
                         // draw() below.
-                        ::cppcanvas::BitmapCanvasSharedPtr pBitmapCanvas(
+                        ::css::uno::Reference< css::rendering::XBitmapCanvas > pBitmapCanvas(
                             aCompositingSurface->mpLastBitmapCanvas );
 
-                        ::cppcanvas::BitmapSharedPtr pBitmap(
+                        ::css::uno::Reference< css::rendering::XBitmap > pBitmap(
                             aCompositingSurface->mpLastBitmap);
 
                         // setup bitmap canvas transformation -
@@ -715,6 +726,7 @@ namespace slideshow
                         return true;
                     }
                 }
+#endif
             }
 
             // retrieve shape transformation, _with_ shape translation
@@ -727,7 +739,6 @@ namespace slideshow
                          xShape,
                          xPage,
                          xPrimitives,
-                         rMtf,
                          pAttr,
                          aTransform,
                          !aClip ? NULL : &(*aClip),
@@ -752,7 +763,7 @@ namespace slideshow
             return mpViewLayer;
         }
 
-        ViewShape::RendererCacheVector::iterator ViewShape::getCacheEntry( const ::cppcanvas::CanvasSharedPtr&  rDestinationCanvas ) const
+        ViewShape::RendererCacheVector::iterator ViewShape::getCacheEntry( const css::uno::Reference< css::rendering::XCanvas >&  rDestinationCanvas ) const
         {
             // lookup destination canvas - is there already a renderer
             // created for that target?
@@ -763,7 +774,7 @@ namespace slideshow
             if( (aIter=::std::find_if( maRenderers.begin(),
                                        aEnd,
                                        ::boost::bind(
-                                           ::std::equal_to< ::cppcanvas::CanvasSharedPtr >(),
+                                           ::std::equal_to< css::uno::Reference< css::rendering::XCanvas > >(),
                                            ::boost::cref( rDestinationCanvas ),
                                            ::boost::bind(
                                                &RendererCacheEntry::getDestinationCanvas,
@@ -791,9 +802,10 @@ namespace slideshow
             return aIter;
         }
 
-        ::cppcanvas::RendererSharedPtr ViewShape::getRenderer( const ::cppcanvas::CanvasSharedPtr&  rDestinationCanvas,
-                                                               const GDIMetaFileSharedPtr&          rMtf,
-                                                               const ShapeAttributeLayerSharedPtr&  rAttr ) const
+        // TODO-NYI - rename this method
+        drawinglayer::primitive2d::Primitive2DSequence ViewShape::getRenderer(
+            const css::uno::Reference< css::rendering::XCanvas >& rDestinationCanvas,
+            const ShapeAttributeLayerSharedPtr&                   rAttr ) const
         {
             // lookup destination canvas - is there already a renderer
             // created for that target?
@@ -806,15 +818,14 @@ namespace slideshow
             // detect that)
             if( prefetch( *aIter,
                           rDestinationCanvas,
-                          rMtf,
                           rAttr ) )
             {
-                return aIter->mpRenderer;
+                return aIter->mpPrimitiveSequence;
             }
             else
             {
                 // prefetch failed - renderer is invalid
-                return ::cppcanvas::RendererSharedPtr();
+                return drawinglayer::primitive2d::Primitive2DSequence();
             }
         }
 
@@ -827,12 +838,15 @@ namespace slideshow
 
         ::basegfx::B2DSize ViewShape::getAntialiasingBorder() const
         {
-            ENSURE_OR_THROW( mpViewLayer->getCanvas(),
+            ENSURE_OR_THROW( mpViewLayer->getCanvas().is(),
                               "ViewShape::getAntialiasingBorder(): Invalid ViewLayer canvas" );
 
+#if 0
+            // TODO-NYI - move this to canvas!
             const ::basegfx::B2DHomMatrix& rViewTransform(
                 mpViewLayer->getTransformation() );
 
+
             // TODO(F1): As a quick shortcut (did not want to invert
             // whole matrix here), taking only scale components of
             // view transformation matrix. This will be wrong when
@@ -842,6 +856,9 @@ namespace slideshow
 
             return ::basegfx::B2DSize( nXBorder,
                                        nYBorder );
+#else
+            return ::basegfx::B2DSize( 1, 1 );
+#endif
         }
 
         bool ViewShape::enterAnimationMode()
@@ -861,13 +878,14 @@ namespace slideshow
 
         bool ViewShape::update( const uno::Reference<drawing::XShape>&    xShape,
                                 const uno::Reference<drawing::XDrawPage>& xPage,
-                                const uno::Sequence<uno::Reference<graphic::XPrimitive2D> >& xPrimitives,
-                                const GDIMetaFileSharedPtr&               rMtf,
+                                const uno::Sequence<uno::Reference<
+                                        graphic::XPrimitive2D> >&         xPrimitives,
                                 const RenderArgs&                         rArgs,
                                 int                                       nUpdateFlags,
                                 bool                                      bIsVisible ) const
         {
-            ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas(), "ViewShape::update(): Invalid layer canvas" );
+            ENSURE_OR_RETURN_FALSE( mpViewLayer->getCanvas().is(),
+                                    "ViewShape::update(): Invalid layer canvas" );
 
             // Shall we render to a sprite, or to a plain canvas?
             if( isBackgroundDetached() )
@@ -875,7 +893,6 @@ namespace slideshow
                                      xShape,
                                      xPage,
                                      xPrimitives,
-                                     rMtf,
                                      rArgs.maOrigBounds,
                                      rArgs.maBounds,
                                      rArgs.maUnitBounds,
@@ -889,7 +906,6 @@ namespace slideshow
                                xShape,
                                xPage,
                                xPrimitives,
-                               rMtf,
                                rArgs.maBounds,
                                rArgs.maUpdateBounds,
                                nUpdateFlags,
diff --git a/slideshow/source/engine/shapes/viewshape.hxx b/slideshow/source/engine/shapes/viewshape.hxx
index 8a29c46..52dea11 100644
--- a/slideshow/source/engine/shapes/viewshape.hxx
+++ b/slideshow/source/engine/shapes/viewshape.hxx
@@ -20,11 +20,11 @@
 #ifndef INCLUDED_SLIDESHOW_VIEWSHAPE_HXX
 #define INCLUDED_SLIDESHOW_VIEWSHAPE_HXX
 
-#include <cppcanvas/renderer.hxx>
-#include <cppcanvas/bitmap.hxx>
-
 #include <basegfx/range/b2drectangle.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
+#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+
+#include <com/sun/star/rendering/XBitmapCanvas.hpp>
 
 #include <boost/shared_ptr.hpp>
 #include <boost/utility.hpp>
@@ -177,9 +177,6 @@ namespace slideshow
                 canvas. This method does not render anything, if the
                 update flags are 0.
 
-                @param rMtf
-                The metafile representation of the shape
-
                 @param rArgs
                 Parameter structure, containing all necessary arguments
 
@@ -192,17 +189,13 @@ namespace slideshow
 
                 @return whether the rendering finished successfully.
             */
-            bool update( const ::com::sun::star::uno::Reference<
-                            ::com::sun::star::drawing::XShape >& xShape,
-                         const ::com::sun::star::uno::Reference<
-                            ::com::sun::star::drawing::XDrawPage >& xPage,
-                         const ::com::sun::star::uno::Sequence<
-                         ::com::sun::star::uno::Reference<
-                         ::com::sun::star::graphic::XPrimitive2D > >& xPrimitives,
-                         const GDIMetaFileSharedPtr&    rMtf,
-                         const RenderArgs&              rArgs,
-                         int                            nUpdateFlags,
-                         bool                           bIsVisible ) const;
+            bool update( const css::uno::Reference<css::drawing::XShape >&    xShape,
+                         const css::uno::Reference<css::drawing::XDrawPage >& xPage,
+                         const css::uno::Sequence<css::uno::Reference<
+                                    css::graphic::XPrimitive2D > >&           xPrimitives,
+                         const RenderArgs&                                    rArgs,
+                         int                                                  nUpdateFlags,
+                         bool                                                 bIsVisible ) const;
 
             /** Retrieve renderer for given canvas and metafile.
 
@@ -212,33 +205,30 @@ namespace slideshow
                 @return a renderer that renders to the given
                 destination canvas
              */
-            ::cppcanvas::RendererSharedPtr getRenderer( const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas,
-                                                        const GDIMetaFileSharedPtr&         rMtf,
-                                                        const ShapeAttributeLayerSharedPtr& rAttr ) const;
-
+            drawinglayer::primitive2d::Primitive2DSequence getRenderer(
+                const css::uno::Reference<css::rendering::XCanvas>& rDestinationCanvas,
+                const ShapeAttributeLayerSharedPtr&                 rAttr ) const;
 
         private:
             struct RendererCacheEntry
             {
                 RendererCacheEntry() :
                     mpDestinationCanvas(),
-                    mpRenderer(),
-                    mpMtf(),
+                    mpPrimitiveSequence(),
                     mpLastBitmap(),
                     mpLastBitmapCanvas()
                 {
                 }
 
-                ::cppcanvas::CanvasSharedPtr getDestinationCanvas() const
+                css::uno::Reference<css::rendering::XCanvas> getDestinationCanvas() const
                 {
                     return mpDestinationCanvas;
                 }
 
-                ::cppcanvas::CanvasSharedPtr        mpDestinationCanvas;
-                ::cppcanvas::RendererSharedPtr      mpRenderer;
-                GDIMetaFileSharedPtr                mpMtf;
-                ::cppcanvas::BitmapSharedPtr        mpLastBitmap;
-                ::cppcanvas::BitmapCanvasSharedPtr  mpLastBitmapCanvas;
+                css::uno::Reference<css::rendering::XCanvas>          mpDestinationCanvas;
+                drawinglayer::primitive2d::Primitive2DSequence        mpPrimitiveSequence;
+                ::css::uno::Reference<css::rendering::XBitmap>        mpLastBitmap;
+                ::css::uno::Reference<css::rendering::XBitmapCanvas>  mpLastBitmapCanvas;
             };
 
             typedef ::std::vector< RendererCacheEntry > RendererCacheVector;
@@ -246,67 +236,54 @@ namespace slideshow
 
             /** Prefetch Renderer for given canvas
              */
-            bool prefetch( RendererCacheEntry&                  io_rCacheEntry,
-                           const ::cppcanvas::CanvasSharedPtr&  rDestinationCanvas,
-                           const GDIMetaFileSharedPtr&          rMtf,
-                           const ShapeAttributeLayerSharedPtr&  rAttr ) const;
+            bool prefetch( RendererCacheEntry&                                 io_rCacheEntry,
+                           const css::uno::Reference<css::rendering::XCanvas>& rDestinationCanvas,
+                           const ShapeAttributeLayerSharedPtr&                 rAttr ) const;
 
             /** Draw with prefetched Renderer to stored canvas
 
                 This method draws prefetched Renderer to its
                 associated canvas (which happens to be mpLastCanvas).
              */
-            bool draw( const ::cppcanvas::CanvasSharedPtr&  rDestinationCanvas,
-                       const ::com::sun::star::uno::Reference<
-                       ::com::sun::star::drawing::XShape >& xShape,
-                       const ::com::sun::star::uno::Reference<
-                       ::com::sun::star::drawing::XDrawPage >& xPage,
-                       const ::com::sun::star::uno::Sequence<
-                       ::com::sun::star::uno::Reference<
-                       ::com::sun::star::graphic::XPrimitive2D > >& xPrimitives,
-                       const GDIMetaFileSharedPtr&          rMtf,
-                       const ShapeAttributeLayerSharedPtr&  rAttr,
-                       const ::basegfx::B2DHomMatrix&       rTransform,
-                       const ::basegfx::B2DPolyPolygon*     pClip,
-                       const VectorOfDocTreeNodes&          rSubsets ) const;
+            bool draw( const css::uno::Reference<css::rendering::XCanvas>& rDestinationCanvas,
+                       const css::uno::Reference<css::drawing::XShape>&    xShape,
+                       const css::uno::Reference<css::drawing::XDrawPage>& xPage,
+                       const css::uno::Sequence< css::uno::Reference<
+                               css::graphic::XPrimitive2D > >&             xPrimitives,
+                       const ShapeAttributeLayerSharedPtr&                 rAttr,
+                       const ::basegfx::B2DHomMatrix&                      rTransform,
+                       const ::basegfx::B2DPolyPolygon*                    pClip,
+                       const VectorOfDocTreeNodes&                         rSubsets ) const;
 
             /** Render shape to an active sprite
              */
-            bool renderSprite( const ViewLayerSharedPtr&            rViewLayer,
-                               const ::com::sun::star::uno::Reference<
-                               ::com::sun::star::drawing::XShape >& xShape,
-                               const ::com::sun::star::uno::Reference<
-                               ::com::sun::star::drawing::XDrawPage >& xPage,
-                               const ::com::sun::star::uno::Sequence<
-                               ::com::sun::star::uno::Reference<
-                               ::com::sun::star::graphic::XPrimitive2D > >& xPrimitives,
-                               const GDIMetaFileSharedPtr&          rMtf,
-                               const ::basegfx::B2DRectangle&       rOrigBounds,
-                               const ::basegfx::B2DRectangle&       rBounds,
-                               const ::basegfx::B2DRectangle&       rUnitBounds,
-                               int                                  nUpdateFlags,
-                               const ShapeAttributeLayerSharedPtr&  pAttr,
-                               const VectorOfDocTreeNodes&          rSubsets,
-                               double                               nPrio,
-                               bool                                 bIsVisible ) const;
+            bool renderSprite( const ViewLayerSharedPtr&                           rViewLayer,
+                               const css::uno::Reference<css::drawing::XShape>&    xShape,
+                               const css::uno::Reference<css::drawing::XDrawPage>& xPage,
+                               const css::uno::Sequence<css::uno::Reference<
+                                       css::graphic::XPrimitive2D > >&             xPrimitives,
+                               const ::basegfx::B2DRectangle&                      rOrigBounds,
+                               const ::basegfx::B2DRectangle&                      rBounds,
+                               const ::basegfx::B2DRectangle&                      rUnitBounds,
+                               int                                                 nUpdateFlags,
+                               const ShapeAttributeLayerSharedPtr&                 pAttr,
+                               const VectorOfDocTreeNodes&                         rSubsets,
+                               double                                              nPrio,
+                               bool                                                bIsVisible ) const;
 
             /** Render shape to given canvas
              */
-            bool render( const ::cppcanvas::CanvasSharedPtr&    rDestinationCanvas,
-                         const ::com::sun::star::uno::Reference<
-                         ::com::sun::star::drawing::XShape >& xShape,
-                         const ::com::sun::star::uno::Reference<
-                         ::com::sun::star::drawing::XDrawPage >& xPage,
-                         const ::com::sun::star::uno::Sequence<
-                         ::com::sun::star::uno::Reference<
-                         ::com::sun::star::graphic::XPrimitive2D > >& xPrimitives,
-                         const GDIMetaFileSharedPtr&            rMtf,
-                         const ::basegfx::B2DRectangle&         rBounds,
-                         const ::basegfx::B2DRectangle&         rUpdateBounds,
-                         int                                    nUpdateFlags,
-                         const ShapeAttributeLayerSharedPtr&    pAttr,
-                         const VectorOfDocTreeNodes&            rSubsets,
-                         bool                                   bIsVisible ) const;
+            bool render( const css::uno::Reference<css::rendering::XCanvas>&    rDestinationCanvas,
+                         const css::uno::Reference<css::drawing::XShape >&      xShape,
+                         const css::uno::Reference<css::drawing::XDrawPage >&   xPage,
+                         const css::uno::Sequence<css::uno::Reference<
+                                 css::graphic::XPrimitive2D > >&                xPrimitives,
+                         const ::basegfx::B2DRectangle&                         rBounds,
+                         const ::basegfx::B2DRectangle&                         rUpdateBounds,
+                         int                                                    nUpdateFlags,
+                         const ShapeAttributeLayerSharedPtr&                    pAttr,
+                         const VectorOfDocTreeNodes&                            rSubsets,
+                         bool                                                   bIsVisible ) const;
 
             /** Calc sprite size in pixel
 
@@ -332,7 +309,8 @@ namespace slideshow
                 the given canvas. The entry might be
                 default-constructed (if newly added)
              */
-            RendererCacheVector::iterator getCacheEntry( const ::cppcanvas::CanvasSharedPtr& rDestinationCanvas ) const;
+            RendererCacheVector::iterator getCacheEntry( const css::uno::Reference<
+                                                             css::rendering::XCanvas>& rDestinationCanvas ) const;
 
             void invalidateRenderer() const;
 
diff --git a/slideshow/source/engine/slide/layer.hxx b/slideshow/source/engine/slide/layer.hxx
index 8bc8121..721ac00 100644
--- a/slideshow/source/engine/slide/layer.hxx
+++ b/slideshow/source/engine/slide/layer.hxx
@@ -21,7 +21,6 @@
 #define INCLUDED_SLIDESHOW_LAYER_HXX
 
 #include <basegfx/range/b2dpolyrange.hxx>
-#include <cppcanvas/spritecanvas.hxx>
 
 #include "view.hxx"
 #include "animatableshape.hxx"
diff --git a/slideshow/source/engine/slide/layermanager.cxx b/slideshow/source/engine/slide/layermanager.cxx
index bbe4578..f6b1e4a 100644
--- a/slideshow/source/engine/slide/layermanager.cxx
+++ b/slideshow/source/engine/slide/layermanager.cxx
@@ -598,7 +598,7 @@ namespace slideshow
             class DummyLayer : public ViewLayer
             {
             public:
-                explicit DummyLayer( const ::cppcanvas::CanvasSharedPtr& rCanvas ) :
+                explicit DummyLayer( const css::uno::Reference< css::rendering::XCanvas >& rCanvas ) :
                     mpCanvas( rCanvas )
                 {
                 }
@@ -608,7 +608,7 @@ namespace slideshow
                     return true; // visible on all views
                 }
 
-                virtual ::cppcanvas::CanvasSharedPtr getCanvas() const
+                virtual css::uno::Reference< css::rendering::XCanvas > getCanvas() const
                 {
                     return mpCanvas;
                 }
@@ -623,12 +623,12 @@ namespace slideshow
                     // NOOP
                 }
 
-                virtual ::cppcanvas::CustomSpriteSharedPtr createSprite( const ::basegfx::B2DSize& /*rSpriteSizePixel*/,
+                virtual css::uno::Reference< css::rendering::XCustomSprite > createSprite( const ::basegfx::B2DSize& /*rSpriteSizePixel*/,
                                                                          double                    /*nSpritePrio*/ ) const
                 {
                     ENSURE_OR_THROW( false,
                                       "DummyLayer::createSprite(): This method is not supposed to be called!" );
-                    return ::cppcanvas::CustomSpriteSharedPtr();
+                    return css::uno::Reference< css::rendering::XCustomSprite >();
                 }
 
                 virtual void setPriority( const basegfx::B1DRange& /*rRange*/ )
@@ -643,7 +643,9 @@ namespace slideshow
 
                 virtual ::basegfx::B2DHomMatrix getTransformation() const
                 {
-                    return mpCanvas->getTransformation();
+                    // TODO-NYI
+                    //return mpCanvas->getTransformation();
+                    return ::basegfx::B2DHomMatrix();
                 }
 
                 virtual ::basegfx::B2DHomMatrix getSpriteTransformation() const
@@ -664,11 +666,11 @@ namespace slideshow
                 }
 
             private:
-                ::cppcanvas::CanvasSharedPtr mpCanvas;
+                css::uno::Reference< css::rendering::XCanvas > mpCanvas;
             };
         }
 
-        bool LayerManager::renderTo( const ::cppcanvas::CanvasSharedPtr& rTargetCanvas ) const
+        bool LayerManager::renderTo( const css::uno::Reference< css::rendering::XCanvas >& rTargetCanvas ) const
         {
             bool bRet( true );
             ViewLayerSharedPtr pTmpLayer( new DummyLayer( rTargetCanvas ) );
diff --git a/slideshow/source/engine/slide/layermanager.hxx b/slideshow/source/engine/slide/layermanager.hxx
index ef404f4..ad868a3 100644
--- a/slideshow/source/engine/slide/layermanager.hxx
+++ b/slideshow/source/engine/slide/layermanager.hxx
@@ -23,8 +23,6 @@
 #include <boost/shared_ptr.hpp>
 #include <boost/noncopyable.hpp>
 
-#include <cppcanvas/spritecanvas.hxx>
-
 #include "unoview.hxx"
 #include "unoviewcontainer.hxx"
 #include "attributableshape.hxx"
@@ -223,7 +221,7 @@ namespace slideshow
                 @param rTargetCanvas
                 Target canvas to output onto.
              */
-            bool renderTo( const ::cppcanvas::CanvasSharedPtr& rTargetCanvas ) const;
+            bool renderTo( const css::uno::Reference< css::rendering::XCanvas >& rTargetCanvas ) const;
 
         private:
             /** A hash map which maps the XShape to the corresponding Shape object.
diff --git a/slideshow/source/engine/slide/slideimpl.cxx b/slideshow/source/engine/slide/slideimpl.cxx
index a39325b..7777a68 100644
--- a/slideshow/source/engine/slide/slideimpl.cxx
+++ b/slideshow/source/engine/slide/slideimpl.cxx
@@ -22,7 +22,6 @@
 #include <canvas/debug.hxx>
 #include <tools/diagnose_ex.h>
 #include <canvas/canvastools.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
 
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <basegfx/point/b2dpoint.hxx>
@@ -42,6 +41,7 @@
 #include <com/sun/star/animations/XAnimationNodeSupplier.hpp>
 #include <com/sun/star/animations/XTargetPropertiesCreator.hpp>
 #include <com/sun/star/drawing/TextAnimationKind.hpp>
+#include <com/sun/star/rendering/XBitmapCanvas.hpp>
 
 #include <animations/animationnodehelper.hxx>
 
@@ -309,14 +309,16 @@ public:
         rView->clearAll();
 
         SlideBitmapSharedPtr         pBitmap( mrSlide.getCurrentSlideBitmap( rView ) );
-        ::cppcanvas::CanvasSharedPtr pCanvas( rView->getCanvas() );
+        css::uno::Reference< css::rendering::XCanvas > pCanvas( rView->getCanvas() );
 
         const ::basegfx::B2DHomMatrix   aViewTransform( rView->getTransformation() );
         const ::basegfx::B2DPoint       aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
 
         // setup a canvas with device coordinate space, the slide
         // bitmap already has the correct dimension.
-        ::cppcanvas::CanvasSharedPtr pDevicePixelCanvas( pCanvas->clone() );
+#if 0
+        // TODO-NYI
+        css::uno::Reference< css::rendering::XCanvas > pDevicePixelCanvas( pCanvas->clone() );
         pDevicePixelCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
 
         // render at given output position
@@ -326,6 +328,7 @@ public:
         // transition)
         pBitmap->clip( ::basegfx::B2DPolyPolygon() );
         pBitmap->draw( pDevicePixelCanvas );
+#endif
     }
 
 private:
@@ -745,27 +748,29 @@ bool SlideImpl::isAnimated()
 SlideBitmapSharedPtr SlideImpl::createCurrentSlideBitmap( const UnoViewSharedPtr&   rView,
                                                           const ::basegfx::B2ISize& rBmpSize ) const
 {
-    ENSURE_OR_THROW( rView && rView->getCanvas(),
+    ENSURE_OR_THROW( rView && rView->getCanvas().is(),
                       "SlideImpl::createCurrentSlideBitmap(): Invalid view" );
     ENSURE_OR_THROW( mpLayerManager,
                       "SlideImpl::createCurrentSlideBitmap(): Invalid layer manager" );
     ENSURE_OR_THROW( mbShowLoaded,
                       "SlideImpl::createCurrentSlideBitmap(): No show loaded" );
 
-    ::cppcanvas::CanvasSharedPtr pCanvas( rView->getCanvas() );
+    uno::Reference< rendering::XCanvas > pCanvas(
+        rView->getCanvas() );
 
     // create a bitmap of appropriate size
-    ::cppcanvas::BitmapSharedPtr pBitmap(
-        ::cppcanvas::BaseGfxFactory::getInstance().createBitmap(
-            pCanvas,
-            rBmpSize ) );
+    uno::Reference< rendering::XBitmap > pBitmap(
+        pCanvas->getDevice()->createCompatibleBitmap(
+            geometry::IntegerSize2D(
+                rBmpSize.getX(), rBmpSize.getY())) );
 
-    ENSURE_OR_THROW( pBitmap,
+    ENSURE_OR_THROW( pBitmap.is(),
                       "SlideImpl::createCurrentSlideBitmap(): Cannot create page bitmap" );
 
-    ::cppcanvas::BitmapCanvasSharedPtr pBitmapCanvas( pBitmap->getBitmapCanvas() );
+    uno::Reference< rendering::XBitmapCanvas > pBitmapCanvas(
+        pBitmap, uno::UNO_QUERY_THROW );
 
-    ENSURE_OR_THROW( pBitmapCanvas,
+    ENSURE_OR_THROW( pBitmapCanvas.is(),
                       "SlideImpl::createCurrentSlideBitmap(): Cannot create page bitmap canvas" );
 
     // apply linear part of destination canvas transformation (linear means in this context:
@@ -773,10 +778,17 @@ SlideBitmapSharedPtr SlideImpl::createCurrentSlideBitmap( const UnoViewSharedPtr
     ::basegfx::B2DHomMatrix aLinearTransform( rView->getTransformation() );
     aLinearTransform.set( 0, 2, 0.0 );
     aLinearTransform.set( 1, 2, 0.0 );
+#if 0
+    // TODO-NYI
     pBitmapCanvas->setTransformation( aLinearTransform );
 
+    // clear to white
+    pBitmapCanvas->fill(
+        ::basegfx::BColor(1.0,1.0,1.0).colorToDoubleSequence(
+            pBitmapCanvas->getDevice()) );
+#endif
+
     // output all shapes to bitmap
-    initSlideBackground( pBitmapCanvas, rBmpSize );
     mpLayerManager->renderTo( pBitmapCanvas );
 
     return SlideBitmapSharedPtr( new SlideBitmap( pBitmap ) );
diff --git a/slideshow/source/engine/slide/userpaintoverlay.cxx b/slideshow/source/engine/slide/userpaintoverlay.cxx
index 8634148..788a9bd 100644
--- a/slideshow/source/engine/slide/userpaintoverlay.cxx
+++ b/slideshow/source/engine/slide/userpaintoverlay.cxx
@@ -28,7 +28,8 @@
 
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/tools/canvastools.hxx>
 
 #include "activity.hxx"
 #include "slideshowcontext.hxx"
@@ -144,14 +145,16 @@ namespace slideshow
 
                         //get via SlideImpl instance the bitmap of the slide unmodified to redraw it
                         SlideBitmapSharedPtr         pBitmap( mrSlide.getCurrentSlideBitmap( (*aIter) ) );
-                        ::cppcanvas::CanvasSharedPtr pCanvas( (*aIter)->getCanvas() );
+                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas() );
 
                         const ::basegfx::B2DHomMatrix   aViewTransform( (*aIter)->getTransformation() );
                         const ::basegfx::B2DPoint       aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
 
+#if 0
+                        // TODO-NYI
                         // setup a canvas with device coordinate space, the slide
                         // bitmap already has the correct dimension.
-                        ::cppcanvas::CanvasSharedPtr pDevicePixelCanvas( pCanvas->clone() );
+                        css::uno::Reference< css::rendering::XCanvas > pDevicePixelCanvas( pCanvas->clone() );
 
                         pDevicePixelCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
 
@@ -162,6 +165,7 @@ namespace slideshow
                         // transition)
                         pBitmap->clip( ::basegfx::B2DPolyPolygon() );
                         pBitmap->draw( pDevicePixelCanvas );
+#endif
 
                         mrScreenUpdater.notifyUpdate(*aIter,true);
                     }
@@ -223,7 +227,8 @@ namespace slideshow
                                      aIter!=aEnd;
                                      ++aIter )
                 {
-                    (*aIter)->draw();
+                    // TODO-NYI
+                    //(*aIter)->draw();
                 }
                 // screen update necessary to show painting
                 mrScreenUpdater.notifyUpdate();
@@ -362,21 +367,23 @@ namespace slideshow
 
                     //The point is to redraw the LastPoint the way it was originally on the bitmap,
                     //of the slide
-            for( UnoViewVector::iterator aIter=maViews.begin(), aEnd=maViews.end();
-                        aIter!=aEnd;
-                        ++aIter )
+                    for( UnoViewVector::iterator aIter=maViews.begin(), aEnd=maViews.end();
+                         aIter!=aEnd;
+                         ++aIter )
                     {
 
                         //get via SlideImpl instance the bitmap of the slide unmodified to redraw it
-                        SlideBitmapSharedPtr         pBitmap( mrSlide.getCurrentSlideBitmap( (*aIter) ) );
-                        ::cppcanvas::CanvasSharedPtr pCanvas( (*aIter)->getCanvas() );
+                        SlideBitmapSharedPtr pBitmap( mrSlide.getCurrentSlideBitmap( (*aIter) ) );
+                        css::uno::Reference< css::rendering::XCanvas > pCanvas( (*aIter)->getCanvas() );
 
-                        ::basegfx::B2DHomMatrix     aViewTransform( (*aIter)->getTransformation() );
-                        const ::basegfx::B2DPoint       aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
+                        ::basegfx::B2DHomMatrix   aViewTransform( (*aIter)->getTransformation() );
+                        const ::basegfx::B2DPoint aOutPosPixel( aViewTransform * ::basegfx::B2DPoint() );
 
+#if 0
+                        // TODO-NYI
                         // setup a canvas with device coordinate space, the slide
                         // bitmap already has the correct dimension.
-                        ::cppcanvas::CanvasSharedPtr pDevicePixelCanvas( pCanvas->clone() );
+                        css::uno::Reference< css::rendering::XCanvas > pDevicePixelCanvas( pCanvas->clone() );
 
                         pDevicePixelCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
 
@@ -389,11 +396,10 @@ namespace slideshow
                         // set clip so that we just redraw a part of the canvas
                         pBitmap->clip(aPolyPoly);
                         pBitmap->draw( pDevicePixelCanvas );
-
+#endif
                         mrScreenUpdater.notifyUpdate(*aIter,true);
                     }
-
-        }
+                }
                 else
                 {
                     if( !mbIsLastPointValid )
@@ -417,15 +423,19 @@ namespace slideshow
                              aIter!=aEnd;
                              ++aIter )
                         {
-                            ::cppcanvas::PolyPolygonSharedPtr pPolyPoly(
-                                ::cppcanvas::BaseGfxFactory::getInstance().createPolyPolygon( (*aIter)->getCanvas(),
-                                                                                              aPoly ) );
+                            uno::Reference< rendering::XPolyPolygon2D > pPolyPoly(
+                                basegfx::unotools::xPolyPolygonFromB2DPolygon(
+                                    (*aIter)->getCanvas()->getDevice(),
+                                    aPoly ) );
 
-                            if( pPolyPoly )
+                            if( pPolyPoly.is() )
                             {
+#if 0
+                                // TODO-NYI
                                 pPolyPoly->setStrokeWidth(mnStrokeWidth);
                                 pPolyPoly->setRGBALineColor( maStrokeColor.getIntegerColor() );
                                 pPolyPoly->draw();
+#endif
                                 maPolygons.push_back(pPolyPoly);
                             }
                         }
diff --git a/slideshow/source/engine/slide/userpaintoverlay.hxx b/slideshow/source/engine/slide/userpaintoverlay.hxx
index fb39ef8..6863906 100644
--- a/slideshow/source/engine/slide/userpaintoverlay.hxx
+++ b/slideshow/source/engine/slide/userpaintoverlay.hxx
@@ -40,7 +40,7 @@ namespace slideshow
 
         class PaintOverlayHandler;
         typedef ::boost::shared_ptr< class UserPaintOverlay > UserPaintOverlaySharedPtr;
-        typedef ::std::vector< ::cppcanvas::PolyPolygonSharedPtr> PolyPolygonVector;
+
         /** Slide overlay, which can be painted into by the user.
 
             This class registers itself at the EventMultiplexer,
diff --git a/slideshow/source/engine/slidebitmap.cxx b/slideshow/source/engine/slidebitmap.cxx
index 998f4d1..df9a39b 100644
--- a/slideshow/source/engine/slidebitmap.cxx
+++ b/slideshow/source/engine/slidebitmap.cxx
@@ -42,26 +42,24 @@ namespace slideshow
     namespace internal
     {
 
-        SlideBitmap::SlideBitmap( const ::cppcanvas::BitmapSharedPtr& rBitmap ) :
+        SlideBitmap::SlideBitmap( const ::css::uno::Reference< css::rendering::XBitmap >& rBitmap ) :
             maOutputPos(),
             maClipPoly(),
-            mxBitmap()
+            mxBitmap(rBitmap)
         {
-            if( rBitmap )
-                mxBitmap = rBitmap->getUNOBitmap();
-
             ENSURE_OR_THROW( mxBitmap.is(), "SlideBitmap::SlideBitmap(): Invalid bitmap" );
         }
 
-        bool SlideBitmap::draw( const ::cppcanvas::CanvasSharedPtr& rCanvas ) const
+        bool SlideBitmap::draw( const css::uno::Reference< css::rendering::XCanvas >& rCanvas ) const
         {
-            ENSURE_OR_RETURN_FALSE( rCanvas && rCanvas->getUNOCanvas().is(),
-                               "SlideBitmap::draw(): Invalid canvas" );
+            ENSURE_OR_RETURN_FALSE( rCanvas.is(),
+                                    "SlideBitmap::draw(): Invalid canvas" );
 
             // selectively only copy the transformation from current viewstate,
             // don't want no clipping here.
             rendering::ViewState aViewState;
-            aViewState.AffineTransform = rCanvas->getViewState().AffineTransform;
+            // TODO-NYI
+            //aViewState.AffineTransform = rCanvas->getViewState().AffineTransform;
 
             rendering::RenderState aRenderState;
             ::canvas::tools::initRenderState( aRenderState );
@@ -76,13 +74,13 @@ namespace slideshow
                     // TODO(P1): Buffer the clip polygon
                     aRenderState.Clip =
                         ::basegfx::unotools::xPolyPolygonFromB2DPolyPolygon(
-                            rCanvas->getUNOCanvas()->getDevice(),
+                            rCanvas->getDevice(),
                             maClipPoly );
                 }
 
-                rCanvas->getUNOCanvas()->drawBitmap( mxBitmap,
-                                                     aViewState,
-                                                     aRenderState );
+                rCanvas->drawBitmap( mxBitmap,
+                                     aViewState,
+                                     aRenderState );
             }
             catch( uno::Exception& )
             {
diff --git a/slideshow/source/engine/slideshowimpl.cxx b/slideshow/source/engine/slideshowimpl.cxx
index b1fc0b1..22c9f14 100644
--- a/slideshow/source/engine/slideshowimpl.cxx
+++ b/slideshow/source/engine/slideshowimpl.cxx
@@ -36,10 +36,6 @@
 #include <comphelper/servicedecl.hxx>
 #include <comphelper/namecontainer.hxx>
 
-#include <cppcanvas/spritecanvas.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
-
 #include <tools/debug.hxx>
 
 #include <basegfx/point/b2dpoint.hxx>
@@ -206,8 +202,6 @@ private:
 
 typedef cppu::WeakComponentImplHelper1<presentation::XSlideShow> SlideShowImplBase;
 
-typedef ::std::vector< ::cppcanvas::PolyPolygonSharedPtr> PolyPolygonVector;
-
 /// Maps XDrawPage for annotations persistence
 typedef ::std::map< ::com::sun::star::uno::Reference<
                                     ::com::sun::star::drawing::XDrawPage>,
@@ -1466,7 +1460,7 @@ void SlideShowImpl::registerUserPaintPolygons( const uno::Reference< lang::XMult
     PolygonMap::iterator aIter=maPolygons.begin();
 
     PolyPolygonVector aPolygons;
-    ::cppcanvas::PolyPolygonSharedPtr pPolyPoly;
+    uno::Reference<rendering::XPolyPolygon2D> pPolyPoly;
     ::basegfx::B2DPolyPolygon b2DPolyPoly;
 
     //Register polygons for each slide
@@ -1481,7 +1475,8 @@ void SlideShowImpl::registerUserPaintPolygons( const uno::Reference< lang::XMult
              aIterPoly!=aEnd; ++aIterPoly )
         {
             pPolyPoly = (*aIterPoly);
-            b2DPolyPoly = ::basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(pPolyPoly->getUNOPolyPolygon());
+            b2DPolyPoly = ::basegfx::unotools::b2DPolyPolygonFromXPolyPolygon2D(
+                pPolyPoly);
 
             //Normally there is only one polygon
             for(sal_uInt32 i=0; i< b2DPolyPoly.count();i++)
@@ -1533,15 +1528,19 @@ void SlideShowImpl::registerUserPaintPolygons( const uno::Reference< lang::XMult
                     aXPropSet->setPropertyValue("LineStyle", aAny );
 
                     //LineColor
-                    sal_uInt32          nLineColor;
-                    nLineColor = pPolyPoly->getRGBALineColor();
+                    // TODO-NYI
+                    //sal_uInt32          nLineColor;
+                    // TODO-NYI
+                    // nLineColor = pPolyPoly->getRGBALineColor();
                     //Transform polygon color from RRGGBBAA to AARRGGBB
-                    aAny <<= RGBAColor2UnoColor(nLineColor);
+                    // TODO-NYI
+                    //aAny <<= RGBAColor2UnoColor(nLineColor);
                     aXPropSet->setPropertyValue("LineColor", aAny );
 
                     //LineWidth
-                    double              fLineWidth;
-                    fLineWidth = pPolyPoly->getStrokeWidth();
+                    double              fLineWidth(0);
+                    // TODO-NYI
+                    // fLineWidth = pPolyPoly->getStrokeWidth();
                     aAny <<= (sal_Int32)fLineWidth;
                     aXPropSet->setPropertyValue("LineWidth", aAny );
 
diff --git a/slideshow/source/engine/slideview.cxx b/slideshow/source/engine/slideview.cxx
index 2d2c421..2dc354d 100644
--- a/slideshow/source/engine/slideview.cxx
+++ b/slideshow/source/engine/slideview.cxx
@@ -34,16 +34,12 @@
 #include <cppuhelper/interfacecontainer.h>
 #include <comphelper/make_shared_from_uno.hxx>
 
-#include <cppcanvas/spritecanvas.hxx>
-#include <cppcanvas/customsprite.hxx>
-#include <cppcanvas/vclfactory.hxx>
-#include <cppcanvas/basegfxfactory.hxx>
-
 #include <tools/debug.hxx>
 
 #include <basegfx/range/b1drange.hxx>
 #include <basegfx/range/b2drange.hxx>
 #include <basegfx/range/b2irange.hxx>
+#include <basegfx/vector/b2dsize.hxx>
 #include <basegfx/point/b2dpoint.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
@@ -85,8 +81,8 @@ struct StaticUnitRectPoly : public rtl::StaticWithInit<basegfx::B2DPolygon, Stat
  */
 struct SpriteEntry
 {
-    SpriteEntry( const cppcanvas::CustomSpriteSharedPtr& rSprite,
-                 double                                  nPrio ) :
+    SpriteEntry( const uno::Reference<rendering::XCustomSprite>& rSprite,
+                 double                                          nPrio ) :
         mpSprite( rSprite ),
         mnPriority( nPrio )
     {
@@ -97,8 +93,8 @@ struct SpriteEntry
         return mnPriority < rRHS.mnPriority;
     }
 
-    boost::weak_ptr< cppcanvas::CustomSprite > mpSprite;
-    double                                     mnPriority;
+    uno::WeakReference< rendering::XCustomSprite > mpSprite;
+    double                                         mnPriority;
 };
 
 typedef std::vector< SpriteEntry > SpriteVector;
@@ -119,9 +115,9 @@ typedef std::vector< SpriteEntry > SpriteVector;
     @return the view clip polygon, in view coordinates, which is
     guaranteed to at least clip to the view size.
  */
-basegfx::B2DPolyPolygon createClipPolygon( const basegfx::B2DPolyPolygon&    rClip,
-                                           const cppcanvas::CanvasSharedPtr& /*rCanvas*/,
-                                           const basegfx::B2DSize&           rUserSize )
+basegfx::B2DPolyPolygon createClipPolygon( const basegfx::B2DPolyPolygon&            rClip,
+                                           const uno::Reference<rendering::XCanvas>& /*rCanvas*/,
+                                           const basegfx::B2DSize&                   rUserSize )
 {
     // setup canvas clipping
     // =====================
@@ -166,33 +162,36 @@ basegfx::B2DPolyPolygon prepareClip( const basegfx::B2DPolyPolygon& rClip )
 }
 
 
-void clearRect( ::cppcanvas::CanvasSharedPtr const& pCanvas,
-                basegfx::B2IRange const&            rArea )
+void clearRect( const basegfx::B2IRange& )
 {
+#if 0
+    // TODO-NYI
+    pCanvas = getCanvas(); ...
+
     // convert clip polygon to device coordinate system
     ::basegfx::B2DPolyPolygon const* pClipPoly( pCanvas->getClip() );
     if( pClipPoly )
     {
         ::basegfx::B2DPolyPolygon aClipPoly( *pClipPoly );
         aClipPoly.transform( pCanvas->getTransformation() );
-        pCanvas->setClip( aClipPoly );
+        // TODO-NYI
+        //pCanvas->setClip( aClipPoly );
     }
 
     // set transformation to identitiy (->device pixel)
-    pCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
+    // TODO-NYI
+    //pCanvas->setTransformation( ::basegfx::B2DHomMatrix() );
 
     // #i42440# Fill the _full_ background in
     // black. Since we had to extend the bitmap by one
     // pixel, and the bitmap is initialized white,
     // depending on the slide content a one pixel wide
     // line will show to the bottom and the right.
-    const ::basegfx::B2DPolygon aPoly(
-        ::basegfx::tools::createPolygonFromRect(

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list