include/vcl/window.hxx                       |    5 +++++
 sd/source/ui/slideshow/slideshowviewimpl.cxx |    1 +
 sd/source/ui/slideshow/slideshowviewimpl.hxx |    3 +++
 vcl/source/window/window.cxx                 |   16 ++++++++++++++++
 4 files changed, 25 insertions(+)

New commits:
commit 6daaca4380123ae3542f474090c3a482adb6edc6
Author:     Shardul Vikram Singh <shardulvi...@gmail.com>
AuthorDate: Mon Jul 14 00:07:44 2025 +0530
Commit:     Shardul Vikram Singh <shardulvi...@gmail.com>
CommitDate: Mon Jul 14 00:07:44 2025 +0530

    Add access to vcl_cairocanvas::SpriteCanvas to vcl::Window and
    
    sd::SlideShowView

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index c8f4491caa6a..7cca00775eba 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -85,6 +85,10 @@ namespace vcl {
     struct ControlLayoutData;
 }
 
+namespace vcl_cairocanvas {
+    class SpriteCanvas;
+}
+
 namespace svt { class PopupWindowControllerImpl; }
 
 namespace weld { class Window; }
@@ -551,6 +555,7 @@ public:
                    void                 DecModalCount();
 
     SAL_DLLPRIVATE static void          ImplCalcSymbolRect( tools::Rectangle& 
rRect );
+    std::shared_ptr<vcl_cairocanvas::SpriteCanvas> GetSpriteCanvas();
 
 protected:
 
diff --git a/sd/source/ui/slideshow/slideshowviewimpl.cxx 
b/sd/source/ui/slideshow/slideshowviewimpl.cxx
index 7db8594e4e08..3e16b165fac9 100644
--- a/sd/source/ui/slideshow/slideshowviewimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowviewimpl.cxx
@@ -101,6 +101,7 @@ SlideShowView::SlideShowView( ShowWindow&     rOutputWindow,
                               SlideshowImpl*  pSlideShow,
                               bool            bFullScreen )
 :   mpCanvas( ::cppcanvas::VCLFactory::createSpriteCanvas( rOutputWindow ) ),
+    mpSpriteCanvas( rOutputWindow.GetSpriteCanvas() ),
     mxWindow( VCLUnoHelper::GetInterface( &rOutputWindow ), uno::UNO_SET_THROW 
),
     mxWindowPeer( mxWindow, uno::UNO_QUERY_THROW ),
     mpSlideShow( pSlideShow ),
diff --git a/sd/source/ui/slideshow/slideshowviewimpl.hxx 
b/sd/source/ui/slideshow/slideshowviewimpl.hxx
index cfce68636acd..0e9c0a601123 100644
--- a/sd/source/ui/slideshow/slideshowviewimpl.hxx
+++ b/sd/source/ui/slideshow/slideshowviewimpl.hxx
@@ -28,11 +28,13 @@
 #include <cppcanvas/spritecanvas.hxx>
 #include <cppuhelper/weakref.hxx>
 
+#include <memory>
 #include <slideshow.hxx>
 
 namespace com::sun::star::awt { class XPointer; }
 namespace com::sun::star::awt { class XWindow; }
 namespace com::sun::star::awt { class XWindowPeer; }
+namespace vcl_cairocanvas { class SpriteCanvas; }
 class SdDrawDocument;
 
 namespace sd
@@ -157,6 +159,7 @@ private:
     void disposingImpl( std::unique_lock<std::mutex>& );
 
     ::cppcanvas::SpriteCanvasSharedPtr                    mpCanvas;
+    std::shared_ptr<vcl_cairocanvas::SpriteCanvas>        mpSpriteCanvas;
     css::uno::Reference< css::awt::XWindow >              mxWindow;
     css::uno::Reference< css::awt::XWindowPeer >          mxWindowPeer;
     css::uno::Reference< css::awt::XPointer >             mxPointer;
diff --git a/vcl/source/canvas/cairo/cairo_cachedbitmap.hxx 
b/vcl/canvas_inc/cairo_cachedbitmap.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_cachedbitmap.hxx
rename to vcl/canvas_inc/cairo_cachedbitmap.hxx
diff --git a/vcl/source/canvas/cairo/cairo_canvas.hxx 
b/vcl/canvas_inc/cairo_canvas.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_canvas.hxx
rename to vcl/canvas_inc/cairo_canvas.hxx
diff --git a/vcl/source/canvas/cairo/cairo_canvasbitmap.hxx 
b/vcl/canvas_inc/cairo_canvasbitmap.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_canvasbitmap.hxx
rename to vcl/canvas_inc/cairo_canvasbitmap.hxx
diff --git a/vcl/source/canvas/cairo/cairo_canvascustomsprite.hxx 
b/vcl/canvas_inc/cairo_canvascustomsprite.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_canvascustomsprite.hxx
rename to vcl/canvas_inc/cairo_canvascustomsprite.hxx
diff --git a/vcl/source/canvas/cairo/cairo_canvasfont.hxx 
b/vcl/canvas_inc/cairo_canvasfont.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_canvasfont.hxx
rename to vcl/canvas_inc/cairo_canvasfont.hxx
diff --git a/vcl/source/canvas/cairo/cairo_canvashelper.hxx 
b/vcl/canvas_inc/cairo_canvashelper.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_canvashelper.hxx
rename to vcl/canvas_inc/cairo_canvashelper.hxx
diff --git a/vcl/source/canvas/cairo/cairo_devicehelper.hxx 
b/vcl/canvas_inc/cairo_devicehelper.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_devicehelper.hxx
rename to vcl/canvas_inc/cairo_devicehelper.hxx
diff --git a/vcl/source/canvas/cairo/cairo_repainttarget.hxx 
b/vcl/canvas_inc/cairo_repainttarget.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_repainttarget.hxx
rename to vcl/canvas_inc/cairo_repainttarget.hxx
diff --git a/vcl/source/canvas/cairo/cairo_sprite.hxx 
b/vcl/canvas_inc/cairo_sprite.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_sprite.hxx
rename to vcl/canvas_inc/cairo_sprite.hxx
diff --git a/vcl/source/canvas/cairo/cairo_spritecanvas.hxx 
b/vcl/canvas_inc/cairo_spritecanvas.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_spritecanvas.hxx
rename to vcl/canvas_inc/cairo_spritecanvas.hxx
diff --git a/vcl/source/canvas/cairo/cairo_spritecanvashelper.hxx 
b/vcl/canvas_inc/cairo_spritecanvashelper.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_spritecanvashelper.hxx
rename to vcl/canvas_inc/cairo_spritecanvashelper.hxx
diff --git a/vcl/source/canvas/cairo/cairo_spritedevicehelper.hxx 
b/vcl/canvas_inc/cairo_spritedevicehelper.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_spritedevicehelper.hxx
rename to vcl/canvas_inc/cairo_spritedevicehelper.hxx
diff --git a/vcl/source/canvas/cairo/cairo_spritehelper.hxx 
b/vcl/canvas_inc/cairo_spritehelper.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_spritehelper.hxx
rename to vcl/canvas_inc/cairo_spritehelper.hxx
diff --git a/vcl/source/canvas/cairo/cairo_surfaceprovider.hxx 
b/vcl/canvas_inc/cairo_surfaceprovider.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_surfaceprovider.hxx
rename to vcl/canvas_inc/cairo_surfaceprovider.hxx
diff --git a/vcl/source/canvas/cairo/cairo_textlayout.hxx 
b/vcl/canvas_inc/cairo_textlayout.hxx
similarity index 100%
rename from vcl/source/canvas/cairo/cairo_textlayout.hxx
rename to vcl/canvas_inc/cairo_textlayout.hxx
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index a11bfddff75e..631b65fa6f0b 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <memory>
 #include <sal/config.h>
 
 #include <rtl/strbuf.hxx>
@@ -60,6 +61,7 @@
 #include <helpwin.hxx>
 #include <dndlistenercontainer.hxx>
 #include <dndeventdispatcher.hxx>
+#include <cairo_spritecanvas.hxx>
 
 #include <com/sun/star/accessibility/AccessibleRelation.hpp>
 #include <com/sun/star/accessibility/XAccessible.hpp>
@@ -574,6 +576,20 @@ Window::~Window()
     return mpWindowImpl ? mpWindowImpl->mxOutDev.get() : nullptr;
 }
 
+std::shared_ptr<vcl_cairocanvas::SpriteCanvas> Window::GetSpriteCanvas()
+{
+    Sequence< Any > aArg{
+        Any(reinterpret_cast<sal_Int64>(GetOutDev())),
+        Any(css::awt::Rectangle( 0, 0, 0, 0 )),
+        Any(false),
+        Any(Reference< css::awt::XWindow >()),
+        GetOutDev()->GetSystemGfxDataAny()
+    };
+    const Reference< XComponentContext >& xContext = 
comphelper::getProcessComponentContext();
+    auto pSpriteCanvas = std::make_shared<vcl_cairocanvas::SpriteCanvas>(aArg, 
xContext);
+    return pSpriteCanvas;
+}
+
 Color WindowOutputDevice::GetBackgroundColor() const
 {
     return mxOwnerWindow->GetDisplayBackground().GetColor();

Reply via email to