[Libreoffice-commits] core.git: Branch 'feature/drawinglayercore' - 745 commits - avmedia/source basctl/sdi basctl/source basctl/uiconfig basctl/UIConfig_basicide.mk basic/inc basic/qa basic/source bin/find-german-comments bin/find-mergedlib-can-be-private.py bin/gbuild-to-ide bin/get_config_variables bin/lo-all-static-libs bridges/inc bridges/Library_cpp_uno.mk bridges/source canvas/source chart2/CppunitTest_chart2_dump.mk chart2/CppunitTest_chart2_export.mk chart2/CppunitTest_chart2_geometry.mk chart2/CppunitTest_chart2_import.mk chart2/CppunitTest_chart2_pivot_chart_test.mk chart2/CppunitTest_chart2_trendcalculators.mk chart2/CppunitTest_chart2_xshape.mk chart2/inc chart2/qa chart2/source chart2/uiconfig cli_ure/Module_cli_ure.mk comphelper/qa comphelper/source compilerplugins/clang config_host/config_qrcodegen.h.in config_host/config_skia.h.in config_host.mk.in configmgr/source configure.ac connectivity/inc connectivity/source cppcanvas/inc cppuhelper/inc cppuhelper/source cppu/source cui/inc cui/Library_cui.mk cui/qa cui/source cui/uiconfig cui/UIConfig_cui.mk dbaccess/inc dbaccess/source dbaccess/uiconfig desktop/inc desktop/IwyuFilter_desktop.yaml desktop/qa desktop/source desktop/unx desktop/win32 distro-configs/Jenkins distro-configs/LibreOfficeOssFuzz.conf distro-configs/LibreOfficeWin32.conf distro-configs/LibreOfficeWin64.conf download.lst drawinglayer/CppunitTest_drawinglayer_border.mk drawinglayer/inc drawinglayer/Library_drawinglayercore.mk drawinglayer/Library_drawinglayer.mk drawinglayer/Module_drawinglayer.mk drawinglayer/source dtrans/Library_dnd.mk dtrans/Library_dtrans.mk dtrans/Library_ftransl.mk dtrans/Library_mcnttype.mk dtrans/Library_sysdtrans.mk dtrans/Makefile dtrans/Module_dtrans.mk dtrans/README dtrans/source dtrans/StaticLibrary_dtobj.mk dtrans/test dtrans/util editeng/inc editeng/source embeddedobj/source embeddedobj/test embedserv/source emfio/CppunitTest_emfio_emf.mk emfio/CppunitTest_emfio_emf_test.mk emfio/CppunitTest_emfio_wmf.mk emfio/C ppunitTest_emfio_wmf_test.mk emfio/inc emfio/Library_emfio.mk emfio/Module_emfio.mk emfio/qa emfio/source extensions/Executable_twain32shim.mk extensions/IwyuFilter_extensions.yaml extensions/source external/apache-commons external/beanshell external/cairo external/cppunit external/curl external/gpgmepp external/hsqldb external/icu external/jfreereport external/languagetool external/lcms2 external/libassuan external/libgpg-error external/libjpeg-turbo external/liblangtag external/liborcus external/mdds external/Module_external.mk external/nss external/pdfium external/python3 external/qrcodegen external/rhino external/skia extras/source filter/Library_pdffilter.mk filter/Library_svgfilter.mk filter/qa filter/source forms/source formula/source fpicker/source framework/CppunitTest_framework_services.mk framework/inc framework/Library_fwk.mk framework/Module_framework.mk framework/qa framework/source .git-hooks/pre-commit hardened_runtime.xcent.in helpcontent2 hwpfilter/source i18nlangt ag/source i18npool/Library_localedata_others.mk i18npool/source icon-themes/breeze icon-themes/breeze_dark icon-themes/breeze_dark_svg icon-themes/breeze_svg icon-themes/colibre icon-themes/colibre_svg icon-themes/elementary icon-themes/elementary_svg icon-themes/karasa_jaga icon-themes/karasa_jaga_svg icon-themes/sifr icon-themes/sifr_dark icon-themes/sifr_dark_svg icon-themes/sifr_svg icon-themes/sukapura icon-themes/sukapura_svg idlc/inc idlc/source idlc/test idl/inc idl/source include/basegfx include/com include/comphelper include/cppuhelper include/dbaccess include/drawinglayer include/editeng include/i18nlangtag include/LibreOfficeKit include/o3tl include/oox include/osl include/registry include/rtl include/sal include/sfx2 include/svl include/svtools include/svx include/test include/typelib include/uno include/unotools include/vcl include/xmloff jvmfwk/inc jvmfwk/plugins l10ntools/source libreofficekit/source lotuswordpro/inc lotuswordpro/source Makefile.gbuild Makefile.in o3 tl/qa odk/examples offapi/com offapi/UnoApi_offapi.mk officecfg/registry oox/inc oox/qa oox/source package/source postprocess/CustomTarget_images.mk postprocess/CustomTarget_registry.mk postprocess/Module_postprocess.mk postprocess/Rdb_services.mk qadevOOo/tests reportdesign/inc reportdesign/source reportdesign/uiconfig reportdesign/UIConfig_dbreport.mk RepositoryExternal.mk Repository.mk RepositoryModule_build.mk RepositoryModule_host.mk sal/cppunittester sal/osl sal/qa sal/rtl sax/qa sax/source sc/CppunitTest_sc_core.mk sc/CppunitTest_sc_jumbosheets_test.mk sc/CppunitTest_sc_parallelism.mk sc/CppunitTest_sc_ucalc.mk sc/inc sc/Library_sc.mk sc/Library_scui.mk sc/Module_sc.mk scp2/AutoInstall.mk scp2/inc scp2/source sc/qa scripting/source sc/sdi sc/source sc/uiconfig sc/UITest_options.mk sc/UITest_sc_options.mk sd/CppunitTest_sd_layout_tests.mk sd/CppunitTest_sd_tiledrendering.mk sd/CppunitTest_sd_uimpress.mk sdext/source sd/inc sd/Library_sd.mk sd/Module_sd.mk sd/qa sd/sdi sd/sourc e sd/uiconfig sd/UIConfig_sdraw.mk sd/UIConfig_simpress.mk sfx2/inc sfx2/Library_sfx.mk sfx2/qa sfx2/source sfx2/uiconfig sfx2/UIConfig_sfx.mk shell/Library_spsupp_x86.mk shell/Module_shell.mk shell/source solenv/bin solenv/clang-format solenv/CompilerTest_compilerplugins_clang.mk solenv/flatpak-manifest.in solenv/gbuild solenv/gcc-wrappers solenv/gdb solenv/qa solenv/sanitizers starmath/CppunitTest_starmath_qa_cppunit.mk starmath/inc starmath/qa starmath/sdi starmath/source stoc/source svgio/CppunitTest_svgio.mk svgio/inc svgio/Library_svgio.mk svgio/source svl/Library_svl.mk svl/source svtools/inc svtools/source svtools/uiconfig svx/CppunitTest_svx_unit.mk svx/inc svx/IwyuFilter_svx.yaml svx/Library_svxcore.mk svx/Library_svx.mk svx/Module_svx.mk svx/qa svx/sdi svx/source svx/uiconfig sw/CppunitTest_sw_core_draw.mk sw/CppunitTest_sw_core_layout.mk sw/CppunitTest_sw_uibase_uiview.mk sw/CppunitTest_sw_updateall_object_replacements.mk sw/CppunitTest_sw_uwriter.mk sw/CppunitTest_sw_ww 8export.mk sw/inc sw/Library_sw.mk sw/Library_swui.mk sw/Module_sw.mk sw/qa sw/sdi sw/source sw/uiconfig sw/UITest_options.mk sw/UITest_sw_options.mk sysui/CustomTarget_share.mk sysui/desktop test/source test/user-template toolkit/source tools/CppunitTest_tools_test.mk tools/qa tools/source translations ucb/source unoil/Module_unoil.mk unotest/Module_unotest.mk unotools/inc unotools/source unoxml/Module_unoxml.mk uui/inc vbahelper/source vcl/backendtest vcl/commonfuzzer.mk vcl/headless vcl/inc vcl/Library_vcl.mk vcl/Library_vclplug_win.mk vcl/opengl vcl/qa vcl/qt5 vcl/quartz vcl/skia vcl/source vcl/unx vcl/vcl.common.component vcl/vclplug_win.component vcl/win vcl/workben winaccessibility/source wizards/source writerfilter/inc writerfilter/source writerperfect/source xmlhelp/source xmloff/Module_xmloff.mk xmloff/source xmloff/util xmlscript/source xmlsecurity/inc xmlsecurity/IwyuFilter_xmlsecurity.yaml xmlsecurity/Library_xmlsecurity.mk xmlsecurity/qa xmlsecurity/source xmlsecurity/ workben

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Fri Sep 25 13:27:29 UTC 2020


Rebased ref, commits from common ancestor:
commit 22d6d45fd9ff3b9d2e13441c6bea95e6e07eb449
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue Sep 1 16:29:15 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:32 2020 +0200

    sc: move FilterFloatingWindow and FilterListBox out of gridwin.cxx
    
    Change-Id: Ic6e4bb2be86f8c89ac1e5386eb78fe17036b4cc5

diff --git a/sc/source/ui/inc/FilterFloatingWindow.hxx b/sc/source/ui/inc/FilterFloatingWindow.hxx
new file mode 100644
index 000000000000..71c13c62c864
--- /dev/null
+++ b/sc/source/ui/inc/FilterFloatingWindow.hxx
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/floatwin.hxx>
+
+class ScFilterFloatingWindow : public FloatingWindow
+{
+private:
+    bool m_bGridHadMouseCaptured;
+
+public:
+    ScFilterFloatingWindow(vcl::Window* pParent);
+    virtual ~ScFilterFloatingWindow() override;
+    virtual void dispose() override;
+
+    bool MouseWasCaptured() const { return m_bGridHadMouseCaptured; }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/FilterListBox.hxx b/sc/source/ui/inc/FilterListBox.hxx
new file mode 100644
index 000000000000..e65c72ae1107
--- /dev/null
+++ b/sc/source/ui/inc/FilterListBox.hxx
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <vcl/InterimItemWindow.hxx>
+#include <gridwin.hxx>
+
+enum class ScFilterBoxMode
+{
+    DataSelect,
+    Scenario
+};
+
+class ScFilterListBox final : public InterimItemWindow
+{
+private:
+    std::unique_ptr<weld::TreeView> xTreeView;
+    VclPtr<ScGridWindow> pGridWin;
+    SCCOL nCol;
+    SCROW nRow;
+    bool bInit;
+    bool bCancelled;
+    sal_uLong nSel;
+    ScFilterBoxMode eMode;
+    ImplSVEvent* nAsyncSelectHdl;
+
+    DECL_LINK(SelectHdl, weld::TreeView&, bool);
+    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+    DECL_LINK(AsyncSelectHdl, void*, void);
+
+public:
+    ScFilterListBox(vcl::Window* pParent, ScGridWindow* pGrid, SCCOL nNewCol, SCROW nNewRow,
+                    ScFilterBoxMode eNewMode);
+    virtual ~ScFilterListBox() override;
+    virtual void dispose() override;
+
+    weld::TreeView& get_widget() { return *xTreeView; }
+
+    SCCOL GetCol() const { return nCol; }
+    SCROW GetRow() const { return nRow; }
+    ScFilterBoxMode GetMode() const { return eMode; }
+    void EndInit();
+    bool IsInInit() const { return bInit; }
+    void SetCancelled() { bCancelled = true; }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index a3ddbc84bac1..b60ac64a216c 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -31,6 +31,9 @@
 #include <memory>
 #include <vector>
 
+#include <FilterListBox.hxx>
+#include <FilterFloatingWindow.hxx>
+
 namespace editeng {
     struct MisspellRanges;
 }
@@ -46,7 +49,6 @@ struct ScTableInfo;
 class ScDPObject;
 class ScDPFieldButton;
 class ScOutputData;
-class ScFilterListBox;
 class SdrObject;
 class SdrEditView;
 class ScNoteMarker;
@@ -82,8 +84,6 @@ struct SpellCallbackInfo;
 // predefines
 namespace sdr::overlay { class OverlayObjectList; }
 
-class ScFilterFloatingWindow;
-
 class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSourceHelper
 {
     // ScFilterListBox is always used for selection list
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index f6edb66554de..c6f6a8097ab3 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -37,7 +37,6 @@
 #include <sfx2/ipclient.hxx>
 #include <svl/stritem.hxx>
 #include <svl/sharedstringpool.hxx>
-#include <vcl/InterimItemWindow.hxx>
 #include <vcl/canvastools.hxx>
 #include <vcl/commandevent.hxx>
 #include <vcl/cursor.hxx>
@@ -142,16 +141,6 @@
 using namespace css;
 using namespace css::uno;
 
-namespace {
-
-enum class ScFilterBoxMode
-{
-    DataSelect,
-    Scenario
-};
-
-}
-
 struct ScGridWindow::MouseEventState
 {
     bool mbActivatePart;
@@ -188,39 +177,6 @@ bool ScGridWindow::VisibleRange::set(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCRO
     return bChanged;
 }
 
-class ScFilterListBox final : public InterimItemWindow
-{
-private:
-    std::unique_ptr<weld::TreeView> xTreeView;
-    VclPtr<ScGridWindow>   pGridWin;
-    SCCOL           nCol;
-    SCROW           nRow;
-    bool            bInit;
-    bool            bCancelled;
-    sal_uLong       nSel;
-    ScFilterBoxMode eMode;
-    ImplSVEvent* nAsyncSelectHdl;
-
-    DECL_LINK(SelectHdl, weld::TreeView&, bool);
-    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
-    DECL_LINK(AsyncSelectHdl, void*, void);
-
-public:
-    ScFilterListBox( vcl::Window* pParent, ScGridWindow* pGrid,
-                     SCCOL nNewCol, SCROW nNewRow, ScFilterBoxMode eNewMode );
-    virtual ~ScFilterListBox() override;
-    virtual void dispose() override;
-
-    weld::TreeView& get_widget() { return *xTreeView; }
-
-    SCCOL           GetCol() const          { return nCol; }
-    SCROW           GetRow() const          { return nRow; }
-    ScFilterBoxMode GetMode() const         { return eMode; }
-    void            EndInit();
-    bool            IsInInit() const        { return bInit; }
-    void            SetCancelled()          { bCancelled = true; }
-};
-
 //  ListBox in a FloatingWindow (pParent)
 ScFilterListBox::ScFilterListBox( vcl::Window* pParent, ScGridWindow* pGrid,
                                   SCCOL nNewCol, SCROW nNewRow, ScFilterBoxMode eNewMode ) :
@@ -316,22 +272,6 @@ IMPL_LINK_NOARG(ScFilterListBox, AsyncSelectHdl, void*, void)
     pGridWin->ClickExtern();
 }
 
-// use a System floating window for the above filter listbox
-class ScFilterFloatingWindow : public FloatingWindow
-{
-private:
-    bool m_bGridHadMouseCaptured;
-public:
-    ScFilterFloatingWindow(vcl::Window* pParent);
-    virtual ~ScFilterFloatingWindow() override;
-    virtual void dispose() override;
-
-    bool MouseWasCaptured() const
-    {
-        return m_bGridHadMouseCaptured;
-    }
-};
-
 ScFilterFloatingWindow::ScFilterFloatingWindow(vcl::Window* pParent)
     : FloatingWindow( pParent, WB_BORDER | WB_SYSTEMWINDOW ) // make it a system floater
     , m_bGridHadMouseCaptured(pParent->IsMouseCaptured())
commit 1b7314f50bdafee7086cc217b2151971e292b35a
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Thu Aug 27 14:43:56 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:31 2020 +0200

    remove ImpClearVars, set values in the constructor
    
    Change-Id: I8ff465d5755dae7098293702115ab08055814754

diff --git a/include/svx/svdcrtv.hxx b/include/svx/svdcrtv.hxx
index 1bf7276a02cc..6868e7ba1cb2 100644
--- a/include/svx/svdcrtv.hxx
+++ b/include/svx/svdcrtv.hxx
@@ -57,9 +57,6 @@ protected:
 
     void ImpClearConnectMarker();
 
-private:
-    SVX_DLLPRIVATE void ImpClearVars();
-
 protected:
     bool ImpBegCreateObj(SdrInventor nInvent, sal_uInt16 nIdent, const Point& rPnt, OutputDevice* pOut,
         sal_Int16 nMinMov, const tools::Rectangle& rLogRect, SdrObject* pPreparedFactoryObject);
diff --git a/include/svx/svddrgv.hxx b/include/svx/svddrgv.hxx
index 654f010c7b3f..c88cf0b30192 100644
--- a/include/svx/svddrgv.hxx
+++ b/include/svx/svddrgv.hxx
@@ -59,9 +59,6 @@ protected:
     bool                        mbInsGluePointMode : 1;
     bool                        mbNoDragXorPolys : 1;
 
-private:
-    SVX_DLLPRIVATE void ImpClearVars();
-
 protected:
     virtual void SetMarkHandles(SfxViewShell* pOtherShell) override;
     void ShowDragObj();
diff --git a/include/svx/svdedtv.hxx b/include/svx/svdedtv.hxx
index 5ddf6856bb7f..03ca5fc3a022 100644
--- a/include/svx/svdedtv.hxx
+++ b/include/svx/svdedtv.hxx
@@ -114,7 +114,6 @@ protected:
     bool                        m_bResizeProtect : 1;
 
 private:
-    SVX_DLLPRIVATE void ImpClearVars();
     SVX_DLLPRIVATE void ImpResetPossibilityFlags();
 
 protected:
diff --git a/include/svx/svdedxv.hxx b/include/svx/svdedxv.hxx
index a78dd5cdc637..192c61e3c07c 100644
--- a/include/svx/svdedxv.hxx
+++ b/include/svx/svdedxv.hxx
@@ -105,8 +105,6 @@ protected:
 private:
     SfxUndoManager* mpOldTextEditUndoManager;
 
-    SVX_DLLPRIVATE void ImpClearVars();
-
 protected:
     // central method to get an SdrUndoManager for enhanced TextEdit. Default will
     // try to return a dynamic_casted GetModel()->GetSdrUndoManager(). Applications
diff --git a/include/svx/svdmrkv.hxx b/include/svx/svdmrkv.hxx
index f75ffa896d7e..aaf16fba2670 100644
--- a/include/svx/svdmrkv.hxx
+++ b/include/svx/svdmrkv.hxx
@@ -144,7 +144,6 @@ protected:
         const SdrPageView* pPV) const;
 
 private:
-    SVX_DLLPRIVATE void ImpClearVars();
     SVX_DLLPRIVATE void ImpSetPointsRects() const;
     void UndirtyMrkPnt() const;
 
diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx
index 829e6241780b..ad68da20dec2 100644
--- a/include/svx/svdpntv.hxx
+++ b/include/svx/svdpntv.hxx
@@ -226,7 +226,6 @@ public:
     OutputDevice* GetFirstOutputDevice() const;
 
 private:
-    SVX_DLLPRIVATE void ImpClearVars();
     DECL_LINK(ImpComeBackHdl, Timer*, void);
 
 protected:
diff --git a/svx/source/svdraw/svdcrtv.cxx b/svx/source/svdraw/svdcrtv.cxx
index 061bc034d92e..d5e9f8d08473 100644
--- a/svx/source/svdraw/svdcrtv.cxx
+++ b/svx/source/svdraw/svdcrtv.cxx
@@ -177,29 +177,19 @@ void SdrCreateView::ImpClearConnectMarker()
     mpCoMaOverlay.reset();
 }
 
-void SdrCreateView::ImpClearVars()
-{
-    nCurrentInvent=SdrInventor::Default;
-    nCurrentIdent=OBJ_NONE;
-    pCurrentCreate=nullptr;
-    pCreatePV=nullptr;
-    b1stPointAsCenter=false;
-    aCurrentCreatePointer=PointerStyle::Cross;
-    bUseIncompatiblePathCreateInterface=false;
-    nAutoCloseDistPix=5;
-    nFreeHandMinDistPix=10;
-
-    ImpClearConnectMarker();
-}
-
-SdrCreateView::SdrCreateView(
-    SdrModel& rSdrModel,
-    OutputDevice* pOut)
-:   SdrDragView(rSdrModel, pOut),
-    mpCreateViewExtraData(new ImpSdrCreateViewExtraData()),
-    aCurrentCreatePointer(PointerStyle::Arrow)
+SdrCreateView::SdrCreateView(SdrModel& rSdrModel, OutputDevice* pOut)
+    : SdrDragView(rSdrModel, pOut)
+    , pCurrentCreate(nullptr)
+    , pCreatePV(nullptr)
+    , mpCreateViewExtraData(new ImpSdrCreateViewExtraData())
+    , aCurrentCreatePointer(PointerStyle::Cross)
+    , nAutoCloseDistPix(5)
+    , nFreeHandMinDistPix(10)
+    , nCurrentInvent(SdrInventor::Default)
+    , nCurrentIdent(OBJ_NONE)
+    , b1stPointAsCenter(false)
+    , bUseIncompatiblePathCreateInterface(false)
 {
-    ImpClearVars();
 }
 
 SdrCreateView::~SdrCreateView()
diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx
index 1dcb24c9ca10..204a0c37be75 100644
--- a/svx/source/svdraw/svddrgv.cxx
+++ b/svx/source/svdraw/svddrgv.cxx
@@ -38,40 +38,27 @@
 
 using namespace sdr;
 
-
-// DragView
-
-
-void SdrDragView::ImpClearVars()
-{
-    mbFramDrag=false;
-    meDragMode=SdrDragMode::Move;
-    mbDragLimit=false;
-    mbMarkedHitMovesAlways=false;
-    meDragHdl=SdrHdlKind::Move;
-    mpDragHdl=nullptr;
-    mbDragHdl=false;
-    mpCurrentSdrDragMethod=nullptr;
-    mbDragStripes=false;
-    mbDragWithCopy=false;
-    mpInsPointUndo=nullptr;
-    mbInsGluePoint=false;
-    mbInsObjPointMode=false;
-    mbInsGluePointMode=false;
-    mbNoDragXorPolys=false;
-    mbResizeAtCenter=false;
-    mbCrookAtCenter=false;
-
-    // init using default
-    mbSolidDragging = getOptionsDrawinglayer().IsSolidDragCreate();
-}
-
-SdrDragView::SdrDragView(
-    SdrModel& rSdrModel,
-    OutputDevice* pOut)
-:   SdrExchangeView(rSdrModel, pOut)
+SdrDragView::SdrDragView(SdrModel& rSdrModel, OutputDevice* pOut)
+    : SdrExchangeView(rSdrModel, pOut)
+    , mpDragHdl(nullptr)
+    , mpCurrentSdrDragMethod(nullptr)
+    , mpInsPointUndo(nullptr)
+    , meDragHdl(SdrHdlKind::Move)
+    , mbFramDrag(false)
+    , mbMarkedHitMovesAlways(false)
+    , mbDragLimit(false)
+    , mbDragHdl(false)
+    , mbDragStripes(false)
+    , mbSolidDragging(getOptionsDrawinglayer().IsSolidDragCreate())
+    , mbResizeAtCenter(false)
+    , mbCrookAtCenter(false)
+    , mbDragWithCopy(false)
+    , mbInsGluePoint(false)
+    , mbInsObjPointMode(false)
+    , mbInsGluePointMode(false)
+    , mbNoDragXorPolys(false)
 {
-    ImpClearVars();
+    meDragMode = SdrDragMode::Move;
 }
 
 SdrDragView::~SdrDragView()
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index 34b7c58c25b3..2fd71bee4092 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -80,18 +80,44 @@ void SdrEditView::ImpResetPossibilityFlags()
     m_bResizeProtect          =false;
 }
 
-void SdrEditView::ImpClearVars()
+SdrEditView::SdrEditView(SdrModel& rSdrModel, OutputDevice* pOut)
+    : SdrMarkView(rSdrModel, pOut)
+    , m_bPossibilitiesDirty(true)
+    , m_bReadOnly(false)
+    , m_bGroupPossible(false)
+    , m_bUnGroupPossible(false)
+    , m_bGrpEnterPossible(false)
+    , m_bToTopPossible(false)
+    , m_bToBtmPossible(false)
+    , m_bReverseOrderPossible(false)
+    , m_bImportMtfPossible(false)
+    , m_bCombinePossible(false)
+    , m_bDismantlePossible(false)
+    , m_bCombineNoPolyPolyPossible(false)
+    , m_bDismantleMakeLinesPossible(false)
+    , m_bOrthoDesiredOnMarked(false)
+    , m_bOneOrMoreMovable(false)
+    , m_bMoreThanOneNoMovRot(false)
+    , m_bContortionPossible(false)
+    , m_bMoveAllowed(false)
+    , m_bResizeFreeAllowed(false)
+    , m_bResizePropAllowed(false)
+    , m_bRotateFreeAllowed(false)
+    , m_bRotate90Allowed(false)
+    , m_bMirrorFreeAllowed(false)
+    , m_bMirror45Allowed(false)
+    , m_bMirror90Allowed(false)
+    , m_bShearAllowed(false)
+    , m_bEdgeRadiusAllowed(false)
+    , m_bTransparenceAllowed(false)
+    , m_bCropAllowed(false)
+    , m_bGradientAllowed(false)
+    , m_bCanConvToPath(false)
+    , m_bCanConvToPoly(false)
+    , m_bCanConvToContour(false)
+    , m_bMoveProtect(false)
+    , m_bResizeProtect(false)
 {
-    ImpResetPossibilityFlags();
-    m_bPossibilitiesDirty=true;   // << Purify didn't like this
-}
-
-SdrEditView::SdrEditView(
-    SdrModel& rSdrModel,
-    OutputDevice* pOut)
-:   SdrMarkView(rSdrModel, pOut)
-{
-    ImpClearVars();
 }
 
 SdrEditView::~SdrEditView()
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 02974eaa36a0..4abcff73ca4e 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -65,29 +65,23 @@
 
 #include <memory>
 
-void SdrObjEditView::ImpClearVars()
-{
-    bQuickTextEditMode = true;
-    pTextEditOutliner.reset();
-    pTextEditOutlinerView = nullptr;
-    pTextEditPV = nullptr;
-    pTextEditWin = nullptr;
-    pTextEditCursorBuffer = nullptr;
-    bTextEditNewObj = false;
-    bMacroDown = false;
-    pMacroObj = nullptr;
-    pMacroPV = nullptr;
-    pMacroWin = nullptr;
-    nMacroTol = 0;
-    bTextEditDontDelete = false;
-    bTextEditOnlyOneView = false;
-}
-
 SdrObjEditView::SdrObjEditView(SdrModel& rSdrModel, OutputDevice* pOut)
     : SdrGlueEditView(rSdrModel, pOut)
+    , pTextEditPV(nullptr)
+    , pTextEditOutlinerView(nullptr)
+    , pTextEditWin(nullptr)
+    , pTextEditCursorBuffer(nullptr)
+    , pMacroObj(nullptr)
+    , pMacroPV(nullptr)
+    , pMacroWin(nullptr)
+    , nMacroTol(0)
+    , bTextEditDontDelete(false)
+    , bTextEditOnlyOneView(false)
+    , bTextEditNewObj(false)
+    , bQuickTextEditMode(true)
+    , bMacroDown(false)
     , mpOldTextEditUndoManager(nullptr)
 {
-    ImpClearVars();
 }
 
 SdrObjEditView::~SdrObjEditView()
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index 2c85e8be56c0..2ef9c7a3fe30 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -159,39 +159,28 @@ public:
     }
 };
 
-
-// MarkView
-
-
-void SdrMarkView::ImpClearVars()
+SdrMarkView::SdrMarkView(SdrModel& rSdrModel, OutputDevice* pOut)
+    : SdrSnapView(rSdrModel, pOut)
+    , mpMarkedObj(nullptr)
+    , mpMarkedPV(nullptr)
+    , maHdlList(this)
+    , meDragMode(SdrDragMode::Move)
+    , meEditMode(SdrViewEditMode::Edit)
+    , meEditMode0(SdrViewEditMode::Edit)
+    , mbDesignMode(false)
+    , mbForceFrameHandles(false)
+    , mbPlusHdlAlways(false)
+    , mbInsPolyPoint(false)
+    , mbMarkedObjRectDirty(false)
+    , mbMrkPntDirty(false)
+    , mbMarkedPointsRectsDirty(false)
+    , mbMarkHandlesHidden(false)
 {
-    meDragMode=SdrDragMode::Move;
-    meEditMode=SdrViewEditMode::Edit;
-    meEditMode0=SdrViewEditMode::Edit;
-    mbDesignMode=false;
-    mpMarkedObj=nullptr;
-    mpMarkedPV=nullptr;
-    mbForceFrameHandles=false;
-    mbPlusHdlAlways=false;
-    mbInsPolyPoint=false;
-    mbMarkedObjRectDirty=false;
-    mbMarkedPointsRectsDirty=false;
-    mbMarkHandlesHidden = false;
-    mbMrkPntDirty=false;
 
-    // Migrate selections
     BrkMarkObj();
     BrkMarkPoints();
     BrkMarkGluePoints();
-}
 
-SdrMarkView::SdrMarkView(
-    SdrModel& rSdrModel,
-    OutputDevice* pOut)
-:   SdrSnapView(rSdrModel, pOut),
-    maHdlList(this)
-{
-    ImpClearVars();
     StartListening(rSdrModel);
 }
 
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index f34e7c10f942..2e4f10f26696 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -124,36 +124,44 @@ BitmapEx convertMetafileToBitmapEx(
     return aBitmapEx;
 }
 
-
-void SdrPaintView::ImpClearVars()
-{
-    mbPageVisible=true;
-    mbPageShadowVisible=true;
-    mbPageBorderVisible=true;
-    mbBordVisible=true;
-    mbGridVisible=true;
-    mbGridFront  =false;
-    mbHlplVisible=true;
-    mbHlplFront  =true;
-    mbGlueVisible=false;
-    mbGlueVisible2=false;
-    mbGlueVisible3=false;
-    mbGlueVisible4=false;
-    mbSwapAsynchron=false;
-    mbPrintPreview=false;
-    mbPreviewRenderer=false;
-
-    meAnimationMode = SdrAnimationMode::Animate;
-    mbAnimationPause = false;
-
-    mnHitTolPix=2;
-    mnMinMovPix=3;
-    mnHitTolLog=0;
-    mnMinMovLog=0;
-    mpActualOutDev=nullptr;
-    mpDragWin=nullptr;
-    mpDefaultStyleSheet=nullptr;
-    mbSomeObjChgdFlag=false;
+SdrPaintView::SdrPaintView(SdrModel& rSdrModel, OutputDevice* pOut)
+    : mrSdrModelFromSdrView(rSdrModel)
+    , mpModel(&rSdrModel)
+    , mpActualOutDev(nullptr)
+    , mpDragWin(nullptr)
+    , mpDefaultStyleSheet(nullptr)
+    , maDefaultAttr(rSdrModel.GetItemPool())
+    , meAnimationMode(SdrAnimationMode::Animate)
+    , mnHitTolPix(2)
+    , mnMinMovPix(3)
+    , mnHitTolLog(0)
+    , mnMinMovLog(0)
+    , mbPageVisible(true)
+    , mbPageShadowVisible(true)
+    , mbPageBorderVisible(true)
+    , mbBordVisible(true)
+    , mbGridVisible(true)
+    , mbGridFront(false)
+    , mbHlplVisible(true)
+    , mbHlplFront(true)
+    , mbGlueVisible(false)
+    , mbGlueVisible2(false)
+    , mbGlueVisible3(false)
+    , mbGlueVisible4(false)
+    , mbSomeObjChgdFlag(false)
+    , mbSwapAsynchron(false)
+    , mbPrintPreview(false)
+    , mbAnimationPause(false)
+    , mbBufferedOutputAllowed(false)
+    , mbBufferedOverlayAllowed(false)
+    , mbPagePaintingAllowed(true)
+    , mbPreviewRenderer(false)
+    , mbHideOle(false)
+    , mbHideChart(false)
+    , mbHideDraw(false)
+    , mbHideFormControl(false)
+    , maGridColor(COL_BLACK)
+{
     maComeBackIdle.SetPriority(TaskPriority::REPAINT);
     maComeBackIdle.SetInvokeHandler(LINK(this,SdrPaintView,ImpComeBackHdl));
     maComeBackIdle.SetDebugName( "svx::SdrPaintView aComeBackIdle" );
@@ -161,29 +169,8 @@ void SdrPaintView::ImpClearVars()
     if (mpModel)
         SetDefaultStyleSheet(mpModel->GetDefaultStyleSheet(), true);
 
-    maGridColor = COL_BLACK;
-}
-
-SdrPaintView::SdrPaintView(
-    SdrModel& rSdrModel,
-    OutputDevice* pOut)
-:   mrSdrModelFromSdrView(rSdrModel),
-    maDefaultAttr(rSdrModel.GetItemPool()),
-    mbBufferedOutputAllowed(false),
-    mbBufferedOverlayAllowed(false),
-    mbPagePaintingAllowed(true),
-    mbHideOle(false),
-    mbHideChart(false),
-    mbHideDraw(false),
-    mbHideFormControl(false)
-{
-    mpModel=&rSdrModel;
-    ImpClearVars();
-
-    if(pOut)
-    {
+    if (pOut)
         AddWindowToPaintView(pOut, nullptr);
-    }
 
     maColorConfig.AddListener(this);
     onChangeColorConfig();
commit 95034de23ef5f88eaadb666a85f9caa85daa97ce
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue Aug 18 19:50:25 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:31 2020 +0200

    ImpGraphic::swapOutContent: remove chaning when writing to stream
    
    Change-Id: I6f4428e0054c4697f7a15e2f318dc114d38dade0

diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index a6650201ade0..8000bf178c9d 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1173,12 +1173,20 @@ bool ImpGraphic::swapInContent(SvStream& rStream)
         sal_Int32 nMapMode, nScaleNumX, nScaleDenomX;
         sal_Int32 nScaleNumY, nScaleDenomY, nOffsX, nOffsY;
 
-        rStream.SeekRel( -4 );
+        rStream.SeekRel(-4);
 
         sal_Int32 nLen;
-        rStream.ReadInt32( nType ).ReadInt32( nLen ).ReadInt32( nWidth ).ReadInt32( nHeight );
-        rStream.ReadInt32( nMapMode ).ReadInt32( nScaleNumX ).ReadInt32( nScaleDenomX ).ReadInt32( nScaleNumY );
-        rStream.ReadInt32( nScaleDenomY ).ReadInt32( nOffsX ).ReadInt32( nOffsY );
+        rStream.ReadInt32(nType);
+        rStream.ReadInt32(nLen);
+        rStream.ReadInt32(nWidth);
+        rStream.ReadInt32(nHeight);
+        rStream.ReadInt32(nMapMode);
+        rStream.ReadInt32(nScaleNumX);
+        rStream.ReadInt32(nScaleDenomX);
+        rStream.ReadInt32(nScaleNumY);
+        rStream.ReadInt32(nScaleDenomY);
+        rStream.ReadInt32(nOffsX);
+        rStream.ReadInt32(nOffsY);
 
         // swapped
         if( nType > 100 )
commit 651eed35309fbc24a33d3f1b3afd83bb14941ce2
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue Aug 18 16:39:41 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:30 2020 +0200

    rename stream variable in swapInContent, swapIn
    
    Change-Id: I7e055c3347682f09ffd2f6b0e287d3d12c22ec46

diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 8c608e4ec301..a6650201ade0 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1133,7 +1133,7 @@ void ImpGraphic::ImplSetContext( const std::shared_ptr<GraphicReader>& pReader )
     mbDummyContext = false;
 }
 
-bool ImpGraphic::swapInContent(SvStream& rIStm)
+bool ImpGraphic::swapInContent(SvStream& rStream)
 {
     ensureAvailable();
 
@@ -1142,28 +1142,28 @@ bool ImpGraphic::swapInContent(SvStream& rIStm)
     sal_uInt32      nId;
     sal_Int32       nType;
     sal_Int32       nPageIndex = -1;
-    const SvStreamEndian nOldFormat = rIStm.GetEndian();
+    const SvStreamEndian nOldFormat = rStream.GetEndian();
     bool            bRet = false;
 
-    rIStm.SetEndian( SvStreamEndian::LITTLE );
-    rIStm.ReadUInt32( nId );
+    rStream.SetEndian( SvStreamEndian::LITTLE );
+    rStream.ReadUInt32( nId );
 
     // check version
     if( GRAPHIC_FORMAT_50 == nId )
     {
         // read new style header
-        VersionCompat aCompat( rIStm, StreamMode::READ );
+        VersionCompat aCompat( rStream, StreamMode::READ );
 
-        rIStm.ReadInt32( nType );
+        rStream.ReadInt32( nType );
         sal_Int32 nLen;
-        rIStm.ReadInt32( nLen );
-        TypeSerializer aSerializer(rIStm);
+        rStream.ReadInt32( nLen );
+        TypeSerializer aSerializer(rStream);
         aSerializer.readSize(aSize);
-        ReadMapMode( rIStm, aMapMode );
+        ReadMapMode( rStream, aMapMode );
 
         if (aCompat.GetVersion() >= 2)
         {
-            rIStm.ReadInt32(nPageIndex);
+            rStream.ReadInt32(nPageIndex);
         }
     }
     else
@@ -1173,12 +1173,12 @@ bool ImpGraphic::swapInContent(SvStream& rIStm)
         sal_Int32 nMapMode, nScaleNumX, nScaleDenomX;
         sal_Int32 nScaleNumY, nScaleDenomY, nOffsX, nOffsY;
 
-        rIStm.SeekRel( -4 );
+        rStream.SeekRel( -4 );
 
         sal_Int32 nLen;
-        rIStm.ReadInt32( nType ).ReadInt32( nLen ).ReadInt32( nWidth ).ReadInt32( nHeight );
-        rIStm.ReadInt32( nMapMode ).ReadInt32( nScaleNumX ).ReadInt32( nScaleDenomX ).ReadInt32( nScaleNumY );
-        rIStm.ReadInt32( nScaleDenomY ).ReadInt32( nOffsX ).ReadInt32( nOffsY );
+        rStream.ReadInt32( nType ).ReadInt32( nLen ).ReadInt32( nWidth ).ReadInt32( nHeight );
+        rStream.ReadInt32( nMapMode ).ReadInt32( nScaleNumX ).ReadInt32( nScaleDenomX ).ReadInt32( nScaleNumY );
+        rStream.ReadInt32( nScaleDenomY ).ReadInt32( nOffsX ).ReadInt32( nOffsY );
 
         // swapped
         if( nType > 100 )
@@ -1229,8 +1229,8 @@ bool ImpGraphic::swapInContent(SvStream& rIStm)
 
         if( meType == GraphicType::Bitmap || meType == GraphicType::GdiMetafile )
         {
-            ReadImpGraphic( rIStm, *this );
-            bRet = rIStm.GetError() == ERRCODE_NONE;
+            ReadImpGraphic(rStream, *this);
+            bRet = rStream.GetError() == ERRCODE_NONE;
         }
         else if( sal::static_int_cast<sal_uLong>(meType) >= SYS_WINMETAFILE
                  && sal::static_int_cast<sal_uLong>(meType) <= SYS_MACMETAFILE )
@@ -1250,10 +1250,10 @@ bool ImpGraphic::swapInContent(SvStream& rIStm)
                 break;
             }
 
-            if( nType && GraphicConverter::Import( rIStm, aSysGraphic, nCvtType ) == ERRCODE_NONE )
+            if( nType && GraphicConverter::Import(rStream, aSysGraphic, nCvtType) == ERRCODE_NONE )
             {
                 *this = ImpGraphic( aSysGraphic.GetGDIMetaFile() );
-                bRet = rIStm.GetError() == ERRCODE_NONE;
+                bRet = rStream.GetError() == ERRCODE_NONE;
             }
             else
                 meType = GraphicType::Default;
@@ -1270,7 +1270,7 @@ bool ImpGraphic::swapInContent(SvStream& rIStm)
     else
         bRet = true;
 
-    rIStm.SetEndian( nOldFormat );
+    rStream.SetEndian( nOldFormat );
 
     return bRet;
 }
@@ -1459,22 +1459,22 @@ bool ImpGraphic::swapIn()
 
         if( !aSwapURL.isEmpty() )
         {
-            std::unique_ptr<SvStream> xIStm;
+            std::unique_ptr<SvStream> xStream;
             try
             {
-                xIStm = ::utl::UcbStreamHelper::CreateStream( aSwapURL, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE );
+                xStream = ::utl::UcbStreamHelper::CreateStream( aSwapURL, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE );
             }
             catch( const css::uno::Exception& )
             {
             }
 
-            if( xIStm )
+            if (xStream)
             {
-                xIStm->SetVersion( SOFFICE_FILEFORMAT_50 );
-                xIStm->SetCompressMode( SvStreamCompressFlags::NATIVE );
+                xStream->SetVersion( SOFFICE_FILEFORMAT_50 );
+                xStream->SetCompressMode( SvStreamCompressFlags::NATIVE );
 
-                bRet = swapInFromStream(*xIStm);
-                xIStm.reset();
+                bRet = swapInFromStream(*xStream);
+                xStream.reset();
                 if (mpSwapFile)
                     setOriginURL(mpSwapFile->getOriginURL());
                 mpSwapFile.reset();
commit 692489e6c17bc05f21d942dd59641c5a43163ae8
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue Aug 18 15:41:25 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:30 2020 +0200

    ImpGraphic: rename Impl{Read,Write}Embedded - used only in swapping
    
    ImplReadEmbedded and ImplWriteEmbedded are used when swapping only
    so rename it to swapInContent and swapOutContent.
    
    In addition change the swapInFromStream to accept SvStream by
    reference and not pointer.
    
    Change-Id: I2c555c436fe5eb6583d83382a2da278f4890ee08

diff --git a/vcl/inc/impgraph.hxx b/vcl/inc/impgraph.hxx
index a65462a48819..9a82caade324 100644
--- a/vcl/inc/impgraph.hxx
+++ b/vcl/inc/impgraph.hxx
@@ -168,15 +168,16 @@ private:
     sal_uInt32          ImplGetAnimationLoopCount() const;
 
 private:
+    // swapping methods
+    bool swapInFromStream(SvStream& rStream);
+
+    bool swapInContent(SvStream& rStream);
+    bool swapOutContent(SvStream& rStream);
+    // end swapping
 
     std::shared_ptr<GraphicReader>& ImplGetContext() { return mpContext;}
     void                ImplSetContext( const std::shared_ptr<GraphicReader>& pReader );
     void                ImplSetDummyContext( bool value ) { mbDummyContext = value; }
-    bool                ImplReadEmbedded( SvStream& rIStream );
-    bool                ImplWriteEmbedded( SvStream& rOStream );
-
-    bool                swapInFromStream(SvStream* pIStm);
-
     bool                ImplIsDummyContext() const { return mbDummyContext; }
     void                ImplSetLink( const std::shared_ptr<GfxLink>& );
     std::shared_ptr<GfxLink> ImplGetSharedGfxLink() const;
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 70609d0b31f8..8c608e4ec301 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -1133,7 +1133,7 @@ void ImpGraphic::ImplSetContext( const std::shared_ptr<GraphicReader>& pReader )
     mbDummyContext = false;
 }
 
-bool ImpGraphic::ImplReadEmbedded( SvStream& rIStm )
+bool ImpGraphic::swapInContent(SvStream& rIStm)
 {
     ensureAvailable();
 
@@ -1275,7 +1275,7 @@ bool ImpGraphic::ImplReadEmbedded( SvStream& rIStm )
     return bRet;
 }
 
-bool ImpGraphic::ImplWriteEmbedded( SvStream& rOStm )
+bool ImpGraphic::swapOutContent(SvStream& rOStm)
 {
     ensureAvailable();
 
@@ -1381,7 +1381,7 @@ bool ImpGraphic::swapOut()
         xOutputStream->SetCompressMode(SvStreamCompressFlags::NATIVE);
         xOutputStream->SetBufferSize(GRAPHIC_STREAMBUFSIZE);
 
-        if (!xOutputStream->GetError() && ImplWriteEmbedded(*xOutputStream))
+        if (!xOutputStream->GetError() && swapOutContent(*xOutputStream))
         {
             xOutputStream->Flush();
             bResult = !xOutputStream->GetError();
@@ -1473,7 +1473,7 @@ bool ImpGraphic::swapIn()
                 xIStm->SetVersion( SOFFICE_FILEFORMAT_50 );
                 xIStm->SetCompressMode( SvStreamCompressFlags::NATIVE );
 
-                bRet = swapInFromStream(xIStm.get());
+                bRet = swapInFromStream(*xIStm);
                 xIStm.reset();
                 if (mpSwapFile)
                     setOriginURL(mpSwapFile->getOriginURL());
@@ -1488,16 +1488,13 @@ bool ImpGraphic::swapIn()
     return bRet;
 }
 
-bool ImpGraphic::swapInFromStream(SvStream* xIStm)
+bool ImpGraphic::swapInFromStream(SvStream& rStream)
 {
     bool bRet = false;
 
-    if( !xIStm )
-        return false;
-
-    xIStm->SetBufferSize( GRAPHIC_STREAMBUFSIZE );
+    rStream.SetBufferSize(GRAPHIC_STREAMBUFSIZE);
 
-    if( xIStm->GetError() )
+    if (rStream.GetError())
         return false;
 
     //keep the swap file alive, because its quite possibly the backing storage
@@ -1511,7 +1508,7 @@ bool ImpGraphic::swapInFromStream(SvStream* xIStm)
     bool bDummyContext = mbDummyContext;
     mbDummyContext = false;
 
-    bRet = ImplReadEmbedded( *xIStm );
+    bRet = swapInContent(rStream);
 
     //restore ownership of the swap file and context
     mpSwapFile = std::move(xSwapFile);
commit 4a31ba4f586fbc0b4860f99181190793e25b664d
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri Jul 17 15:09:49 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:29 2020 +0200

    Revert "hack for gradients split into adjacent polygons (tdf#133016)"
    
    This reverts commit 777ac5456a1f24fea29931ede983b5b8ad9a063d.

diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 7c9eb8441306..9b9d258046cc 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -30,7 +30,7 @@
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <sal/log.hxx>
 #include <cmath>
-#include <vcl/skia/SkiaHelper.hxx>
+
 
 using namespace com::sun::star;
 
@@ -868,12 +868,6 @@ namespace drawinglayer::primitive2d
             // use color distance and discrete lengths to calculate step count
             const sal_uInt32 nSteps(calculateStepsForSvgGradient(getColorA(), getColorB(), fDelta, fDiscreteUnit));
 
-            // HACK: Splitting a gradient into adjacent polygons with gradually changing color is silly.
-            // If antialiasing is used to draw them, the AA-ed adjacent edges won't line up perfectly
-            // because of the AA (see SkiaSalGraphicsImpl::mergePolyPolygonToPrevious()).
-            // Make the polygons a bit wider, so they the partial overlap "fixes" this.
-            const double fixup = SkiaHelper::isVCLSkiaEnabled() ? fDiscreteUnit / 2 : 0;
-
             // tdf#117949 Use a small amount of discrete overlap at the edges. Usually this
             // should be exactly 0.0 and 1.0, but there were cases when this gets clipped
             // against the mask polygon which got numerically problematic.
@@ -887,7 +881,7 @@ namespace drawinglayer::primitive2d
                     basegfx::B2DRange(
                         getOffsetA() - fDiscreteUnit,
                         -0.0001, // TTTT -> should be 0.0, see comment above
-                        getOffsetA() + (fDelta / nSteps) + fDiscreteUnit + fixup,
+                        getOffsetA() + (fDelta / nSteps) + fDiscreteUnit,
                         1.0001))); // TTTT -> should be 1.0, see comment above
 
             // prepare loop (inside to outside, [0.0 .. 1.0[)
commit 9537a928e7efa36526bb6ad132a6dc03e48f8de8
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Mon Jun 15 19:39:35 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:29 2020 +0200

    vcl: add a Bitmap interface to basegfx, BitmapEx implementing it
    
    Change-Id: I758f421d545191883e615f5016e9fc643459556e

diff --git a/include/basegfx/bitmap/Bitmap.hxx b/include/basegfx/bitmap/Bitmap.hxx
new file mode 100644
index 000000000000..b91b702aa212
--- /dev/null
+++ b/include/basegfx/bitmap/Bitmap.hxx
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#pragma once
+
+#include <basegfx/basegfxdllapi.h>
+
+namespace basegfx
+{
+class BASEGFX_DLLPUBLIC IBitmap
+{
+};
+
+} // end of namespace basegfx
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/bitmapex.hxx b/include/vcl/bitmapex.hxx
index 4dac473bb2f5..774afe981d07 100644
--- a/include/vcl/bitmapex.hxx
+++ b/include/vcl/bitmapex.hxx
@@ -25,6 +25,8 @@
 #include <vcl/Scanline.hxx>
 #include <tools/color.hxx>
 
+#include <basegfx/bitmap/Bitmap.hxx>
+
 #include <sal/types.h>
 
 namespace com::sun::star::rendering {
@@ -40,7 +42,7 @@ enum class TransparentType
     Bitmap
 };
 
-class SAL_WARN_UNUSED VCL_DLLPUBLIC BitmapEx
+class SAL_WARN_UNUSED VCL_DLLPUBLIC BitmapEx : basegfx::IBitmap
 {
 public:
 
commit 0c9e1cf6f5f2dccb38676d703e2fa33ce6a8d0d7
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Wed May 27 12:49:05 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:28 2020 +0200

    add o3tl version of hash_combine to not depend on boost for this
    
    Change-Id: I081f8d116ef811baa8aa5de35a6cb51fa4de7d56

diff --git a/include/o3tl/hash_combine.hxx b/include/o3tl/hash_combine.hxx
new file mode 100644
index 000000000000..17419b3e2c0f
--- /dev/null
+++ b/include/o3tl/hash_combine.hxx
@@ -0,0 +1,29 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+namespace o3tl
+{
+template <typename T, typename N, std::enable_if_t<(sizeof(N) == 4), bool> = false>
+inline void hash_combine(N& nSeed, T const& nValue)
+{
+    static_assert(sizeof(nSeed) == 4);
+    nSeed ^= std::hash<T>{}(nValue) + 0x9E3779B9u + (nSeed << 6) + (nSeed >> 2);
+}
+
+template <typename T, typename N, std::enable_if_t<(sizeof(N) == 8), bool> = false>
+inline void hash_combine(N& nSeed, T const& nValue)
+{
+    static_assert(sizeof(nSeed) == 8);
+    nSeed ^= std::hash<T>{}(nValue) + 0x9E3779B97F4A7C15llu + (nSeed << 12) + (nSeed >> 4);
+}
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/o3tl/qa/test-lru_map.cxx b/o3tl/qa/test-lru_map.cxx
index a03a6bf37200..3ab285c4329a 100644
--- a/o3tl/qa/test-lru_map.cxx
+++ b/o3tl/qa/test-lru_map.cxx
@@ -15,7 +15,7 @@
 
 #include <o3tl/lru_map.hxx>
 
-#include <boost/functional/hash.hpp>
+#include <o3tl/hash_combine.hxx>
 
 using namespace ::o3tl;
 
@@ -206,8 +206,8 @@ struct TestClassKeyHashFunction
     std::size_t operator()(TestClassKey const& aKey) const
     {
         std::size_t seed = 0;
-        boost::hash_combine(seed, aKey.mA);
-        boost::hash_combine(seed, aKey.mB);
+        o3tl::hash_combine(seed, aKey.mA);
+        o3tl::hash_combine(seed, aKey.mB);
         return seed;
     }
 };
commit 9e1c42845cb47a82f41a95abeed1d07ea0a0da41
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue May 26 15:57:38 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:28 2020 +0200

    GraphicAttributes: put const. and op. '=' into the header file
    
    Change-Id: I1bc38f89457c3593673b445e7571a4fd82d5960b

diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx
index 28b23d324a1d..47aad3b723af 100644
--- a/include/vcl/GraphicAttributes.hxx
+++ b/include/vcl/GraphicAttributes.hxx
@@ -51,9 +51,37 @@ private:
     GraphicDrawMode meDrawMode;
 
 public:
-    GraphicAttr();
+    GraphicAttr()
+        : mfGamma(1.0)
+        , mnMirrFlags(basegfx::MirrorDirectionFlags::NONE)
+        , mnLeftCrop(0)
+        , mnTopCrop(0)
+        , mnRightCrop(0)
+        , mnBottomCrop(0)
+        , mnRotate10(0)
+        , mnContPercent(0)
+        , mnLumPercent(0)
+        , mnRPercent(0)
+        , mnGPercent(0)
+        , mnBPercent(0)
+        , mbInvert(false)
+        , mcTransparency(0)
+        , meDrawMode(GraphicDrawMode::Standard)
+    {
+    }
+
+    bool operator==(const GraphicAttr& rAttr) const
+    {
+        return mfGamma == rAttr.mfGamma && mnMirrFlags == rAttr.mnMirrFlags
+               && mnLeftCrop == rAttr.mnLeftCrop && mnTopCrop == rAttr.mnTopCrop
+               && mnRightCrop == rAttr.mnRightCrop && mnBottomCrop == rAttr.mnBottomCrop
+               && mnRotate10 == rAttr.mnRotate10 && mnContPercent == rAttr.mnContPercent
+               && mnLumPercent == rAttr.mnLumPercent && mnRPercent == rAttr.mnRPercent
+               && mnGPercent == rAttr.mnGPercent && mnBPercent == rAttr.mnBPercent
+               && mbInvert == rAttr.mbInvert && mcTransparency == rAttr.mcTransparency
+               && meDrawMode == rAttr.meDrawMode;
+    }
 
-    bool operator==(const GraphicAttr& rAttr) const;
     bool operator!=(const GraphicAttr& rAttr) const { return !(*this == rAttr); }
 
     void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; }
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 5d3a1b593850..4b29c2d59a9e 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -328,7 +328,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/graphic/GraphicObject \
     vcl/source/graphic/GraphicObject2 \
     vcl/source/graphic/GraphicReader \
-    vcl/source/graphic/grfattr \
     vcl/source/graphic/Manager \
     vcl/source/graphic/UnoGraphic \
     vcl/source/graphic/UnoGraphicMapper \
diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx
deleted file mode 100644
index 36e8605b77de..000000000000
--- a/vcl/source/graphic/grfattr.cxx
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- *   Licensed to the Apache Software Foundation (ASF) under one or more
- *   contributor license agreements. See the NOTICE file distributed
- *   with this work for additional information regarding copyright
- *   ownership. The ASF licenses this file to you under the Apache
- *   License, Version 2.0 (the "License"); you may not use this file
- *   except in compliance with the License. You may obtain a copy of
- *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include <vcl/GraphicAttributes.hxx>
-
-GraphicAttr::GraphicAttr() :
-    mfGamma         ( 1.0 ),
-    mnMirrFlags     ( basegfx::MirrorDirectionFlags::NONE ),
-    mnLeftCrop      ( 0 ),
-    mnTopCrop       ( 0 ),
-    mnRightCrop     ( 0 ),
-    mnBottomCrop    ( 0 ),
-    mnRotate10      ( 0 ),
-    mnContPercent   ( 0 ),
-    mnLumPercent    ( 0 ),
-    mnRPercent      ( 0 ),
-    mnGPercent      ( 0 ),
-    mnBPercent      ( 0 ),
-    mbInvert        ( false ),
-    mcTransparency  ( 0 ),
-    meDrawMode      ( GraphicDrawMode::Standard )
-{
-}
-
-bool GraphicAttr::operator==( const GraphicAttr& rAttr ) const
-{
-    return( ( mfGamma == rAttr.mfGamma ) &&
-            ( mnMirrFlags == rAttr.mnMirrFlags ) &&
-            ( mnLeftCrop == rAttr.mnLeftCrop ) &&
-            ( mnTopCrop == rAttr.mnTopCrop ) &&
-            ( mnRightCrop == rAttr.mnRightCrop ) &&
-            ( mnBottomCrop == rAttr.mnBottomCrop ) &&
-            ( mnRotate10 == rAttr.mnRotate10 ) &&
-            ( mnContPercent == rAttr.mnContPercent ) &&
-            ( mnLumPercent == rAttr.mnLumPercent ) &&
-            ( mnRPercent == rAttr.mnRPercent ) &&
-            ( mnGPercent == rAttr.mnGPercent ) &&
-            ( mnBPercent == rAttr.mnBPercent ) &&
-            ( mbInvert == rAttr.mbInvert ) &&
-            ( mcTransparency == rAttr.mcTransparency ) &&
-            ( meDrawMode == rAttr.meDrawMode ) );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit fb22013cb235cd4620676086c29b979ddfe4d3fc
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue May 26 13:39:45 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:27 2020 +0200

    basegfx::MirrorDirectionFlags as replacement for BmpMirrorFlags
    
    BmpMirrorFlags in Bitmap is an attribute for bitmap manipulation
    (mirroring). This change creates a copy of the flags in basegfx
    as MirrorDirectionFlags, which will be used in the fututre as a
    general repalcement for the BmpMirrorFlags, that will be changed
    step by step.
    
    For now we only use the flags in GraphicAttr to make it independent
    form vcl, and cast to/from BmpMirrorFLags and MirrorDirectionFlags
    where needed.
    
    Change-Id: I01a69a4d241caa22cff61bdbf87944af57684749

diff --git a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
index f86b1585b13f..2f571ed66aa3 100644
--- a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
@@ -49,8 +49,10 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer,
     if (getGraphicAttr().IsMirrored())
     {
         // content needs mirroring
-        const bool bHMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Horizontal);
-        const bool bVMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Vertical);
+        const bool bHMirr(getGraphicAttr().GetMirrorFlags()
+                          & basegfx::MirrorDirectionFlags::Horizontal);
+        const bool bVMirr(getGraphicAttr().GetMirrorFlags()
+                          & basegfx::MirrorDirectionFlags::Vertical);
 
         // mirror by applying negative scale to the unit primitive and
         // applying the object transformation on it.
@@ -69,7 +71,7 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer,
 
     aSuppressGraphicAttr.SetCrop(0, 0, 0, 0);
     aSuppressGraphicAttr.SetRotation(0);
-    aSuppressGraphicAttr.SetMirrorFlags(BmpMirrorFlags::NONE);
+    aSuppressGraphicAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags::NONE);
     aSuppressGraphicAttr.SetTransparency(0);
 
     const GraphicObject& rGraphicObject = getGraphicObject();
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 24dcabe0277e..5d4d527340a1 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1673,7 +1673,7 @@ bool EscherPropertyContainer::CreateGraphicProperties(const uno::Reference<beans
 
                 if(bMirrored)
                 {
-                    pGraphicAttr->SetMirrorFlags(BmpMirrorFlags::Horizontal);
+                    pGraphicAttr->SetMirrorFlags(basegfx::MirrorDirectionFlags::Horizontal);
                 }
 
                 if(nTransparency)
diff --git a/include/basegfx/bitmap/BitmapAttributes.hxx b/include/basegfx/bitmap/BitmapAttributes.hxx
new file mode 100644
index 000000000000..d918d55faa99
--- /dev/null
+++ b/include/basegfx/bitmap/BitmapAttributes.hxx
@@ -0,0 +1,36 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#pragma once
+
+#include <basegfx/basegfxdllapi.h>
+#include <o3tl/typed_flags_set.hxx>
+
+namespace basegfx
+{
+enum class MirrorDirectionFlags
+{
+    NONE = 0x00,
+    Horizontal = 0x01,
+    Vertical = 0x02,
+};
+
+} // end of namespace basegfx
+
+namespace o3tl
+{
+template <>
+struct typed_flags<basegfx::MirrorDirectionFlags>
+    : is_typed_flags<basegfx::MirrorDirectionFlags, 0x03>
+{
+};
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx
index 08b716b3db08..28b23d324a1d 100644
--- a/include/vcl/GraphicAttributes.hxx
+++ b/include/vcl/GraphicAttributes.hxx
@@ -21,6 +21,7 @@
 
 #include <vcl/dllapi.h>
 #include <vcl/bitmap.hxx>
+#include <basegfx/bitmap/BitmapAttributes.hxx>
 
 enum class GraphicDrawMode
 {
@@ -34,7 +35,7 @@ class VCL_DLLPUBLIC GraphicAttr
 {
 private:
     double mfGamma;
-    BmpMirrorFlags mnMirrFlags;
+    basegfx::MirrorDirectionFlags mnMirrFlags;
     long mnLeftCrop;
     long mnTopCrop;
     long mnRightCrop;
@@ -58,8 +59,8 @@ public:
     void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; }
     GraphicDrawMode GetDrawMode() const { return meDrawMode; }
 
-    void SetMirrorFlags(BmpMirrorFlags nMirrFlags) { mnMirrFlags = nMirrFlags; }
-    BmpMirrorFlags GetMirrorFlags() const { return mnMirrFlags; }
+    void SetMirrorFlags(basegfx::MirrorDirectionFlags nMirrFlags) { mnMirrFlags = nMirrFlags; }
+    basegfx::MirrorDirectionFlags GetMirrorFlags() const { return mnMirrFlags; }
 
     void SetCrop(long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM,
                  long nBottom_100TH_MM)
@@ -102,7 +103,7 @@ public:
     sal_uInt8 GetTransparency() const { return mcTransparency; }
 
     bool IsSpecialDrawMode() const { return (meDrawMode != GraphicDrawMode::Standard); }
-    bool IsMirrored() const { return mnMirrFlags != BmpMirrorFlags::NONE; }
+    bool IsMirrored() const { return mnMirrFlags != basegfx::MirrorDirectionFlags::NONE; }
     bool IsCropped() const
     {
         return (mnLeftCrop != 0 || mnTopCrop != 0 || mnRightCrop != 0 || mnBottomCrop != 0);
diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index 8fceef864ae2..db24da9a5552 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -336,7 +336,9 @@ namespace sdr::contact
 
             if(bHMirr || bVMirr)
             {
-                aLocalGrafInfo.SetMirrorFlags((bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE)|(bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE));
+                basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE;
+                basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE;
+                aLocalGrafInfo.SetMirrorFlags(eVertical | eHorizontal);
             }
 
             // fill object matrix
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index 2f2c4886f86d..ed1433256d8e 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -378,7 +378,10 @@ GraphicAttr SdrGrafObj::GetGraphicAttr( SdrGrafObjTransformsAttrs nTransformFlag
             bool bHMirr = nMirrorCase == 2 || nMirrorCase == 4;
             bool bVMirr = nMirrorCase == 3 || nMirrorCase == 4;
 
-            aActAttr.SetMirrorFlags( ( bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE ) | ( bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE ) );
+            basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE;
+            basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE;
+
+            aActAttr.SetMirrorFlags(eVertical | eHorizontal);
         }
 
         if( bRotate )
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index 55ced4c704bc..43a4e3878108 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -728,22 +728,22 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA,
     rGA.SetDrawMode( rSet.GetDrawModeGrf().GetValue() );
 
     const SwMirrorGrf & rMirror = rSet.GetMirrorGrf();
-    BmpMirrorFlags nMirror = BmpMirrorFlags::NONE;
+    basegfx::MirrorDirectionFlags nMirror = basegfx::MirrorDirectionFlags::NONE;
     if( rMirror.IsGrfToggle() && pFrame && !pFrame->FindPageFrame()->OnRightPage() )
     {
         switch( rMirror.GetValue() )
         {
         case MirrorGraph::Dont:
-            nMirror = BmpMirrorFlags::Horizontal;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal;
             break;
         case MirrorGraph::Vertical:
-            nMirror = BmpMirrorFlags::NONE;
+            nMirror = basegfx::MirrorDirectionFlags::NONE;
             break;
         case MirrorGraph::Horizontal:
-            nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical;
             break;
         default:
-            nMirror = BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Vertical;
             break;
         }
     }
@@ -751,13 +751,13 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA,
         switch( rMirror.GetValue() )
         {
         case MirrorGraph::Both:
-            nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical;
             break;
         case MirrorGraph::Vertical:
-            nMirror = BmpMirrorFlags::Horizontal;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal;
             break;
         case MirrorGraph::Horizontal:
-            nMirror = BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Vertical;
             break;
         default: break;
         }
diff --git a/vcl/source/graphic/GraphicObject.cxx b/vcl/source/graphic/GraphicObject.cxx
index 0447bddfd637..137666937eb6 100644
--- a/vcl/source/graphic/GraphicObject.cxx
+++ b/vcl/source/graphic/GraphicObject.cxx
@@ -168,7 +168,7 @@ void lclImplAdjust( BitmapEx& rBmpEx, const GraphicAttr& rAttr, GraphicAdjustmen
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rBmpEx.Mirror( aAttr.GetMirrorFlags() );
+        rBmpEx.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()) );
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -219,7 +219,7 @@ void lclImplAdjust( GDIMetaFile& rMtf, const GraphicAttr& rAttr, GraphicAdjustme
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rMtf.Mirror( aAttr.GetMirrorFlags() );
+        rMtf.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()));
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -270,7 +270,7 @@ void lclImplAdjust( Animation& rAnimation, const GraphicAttr& rAttr, GraphicAdju
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rAnimation.Mirror( aAttr.GetMirrorFlags() );
+        rAnimation.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()));
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -383,7 +383,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si
         if( !aSize100.IsEmpty() && nTotalWidth > 0 && nTotalHeight > 0 )
         {
             double fScale = static_cast<double>(aSize100.Width()) / nTotalWidth;
-            const long nNewLeft = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale );
+            const long nNewLeft = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale );
             const long nNewRight = nNewLeft + FRound( aSize100.Width() * fScale ) - 1;
 
             fScale = static_cast<double>(rSz.Width()) / aSize100.Width();
@@ -391,7 +391,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si
             rSz.setWidth( FRound( ( nNewRight - nNewLeft + 1 ) * fScale ) );
 
             fScale = static_cast<double>(aSize100.Height()) / nTotalHeight;
-            const long nNewTop = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale );
+            const long nNewTop = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale );
             const long nNewBottom = nNewTop + FRound( aSize100.Height() * fScale ) - 1;
 
             fScale = static_cast<double>(rSz.Height()) / aSize100.Height();
@@ -476,7 +476,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
     {
         aPt.AdjustX(aSz.Width() + 1 );
         aSz.setWidth( -aSz.Width() );
-        aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Horizontal );
+        BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Horizontal;
+        aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags));
     }
 
     // mirrored vertically
@@ -484,7 +485,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
     {
         aPt.AdjustY(aSz.Height() + 1 );
         aSz.setHeight( -aSz.Height() );
-        aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Vertical );
+        BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Vertical;
+        aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags));
     }
 
     if( bCropped )
diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx
index 35acaf50b841..36e8605b77de 100644
--- a/vcl/source/graphic/grfattr.cxx
+++ b/vcl/source/graphic/grfattr.cxx
@@ -21,7 +21,7 @@
 
 GraphicAttr::GraphicAttr() :
     mfGamma         ( 1.0 ),
-    mnMirrFlags     ( BmpMirrorFlags::NONE ),
+    mnMirrFlags     ( basegfx::MirrorDirectionFlags::NONE ),
     mnLeftCrop      ( 0 ),
     mnTopCrop       ( 0 ),
     mnRightCrop     ( 0 ),
commit 21d8cd7209b052646bc43f7dd3722cc09cb3a800
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri May 8 22:28:35 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:26 2020 +0200

    Move some basic primitives to drawinglayer CORE
    
    Mostly which are easy to move and used in VclProcessor2D
    
    Change-Id: Ie1559e13a2a7cdb5225421def2f9145026ff9121

diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk
index 4896c0ad0759..451a9b1e55d3 100644
--- a/drawinglayer/Library_drawinglayer.mk
+++ b/drawinglayer/Library_drawinglayer.mk
@@ -50,11 +50,6 @@ $(eval $(call gb_Library_use_libraries,drawinglayer,\
 $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/animation/animationtiming \
     drawinglayer/source/attribute/fillgraphicattribute \
-    drawinglayer/source/attribute/fillgradientattribute \
-    drawinglayer/source/attribute/fillhatchattribute \
-    drawinglayer/source/attribute/fontattribute \
-    drawinglayer/source/attribute/lineattribute \
-    drawinglayer/source/attribute/linestartendattribute \
     drawinglayer/source/attribute/materialattribute3d \
     drawinglayer/source/attribute/sdrallattribute3d \
     drawinglayer/source/attribute/sdrfillattribute \
@@ -67,11 +62,9 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/attribute/sdrobjectattribute3d \
     drawinglayer/source/attribute/sdrsceneattribute3d \
     drawinglayer/source/attribute/sdrshadowattribute \
-    drawinglayer/source/attribute/strokeattribute \
     drawinglayer/source/geometry/viewinformation3d \
     drawinglayer/source/primitive2d/animatedprimitive2d \
     drawinglayer/source/primitive2d/backgroundcolorprimitive2d \
-    drawinglayer/source/primitive2d/bitmapprimitive2d \
     drawinglayer/source/primitive2d/borderlineprimitive2d \
     drawinglayer/source/primitive2d/controlprimitive2d \
     drawinglayer/source/primitive2d/cropprimitive2d \
@@ -80,54 +73,32 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/primitive2d/embedded3dprimitive2d \
     drawinglayer/source/primitive2d/epsprimitive2d \
     drawinglayer/source/primitive2d/fillgraphicprimitive2d \
-    drawinglayer/source/primitive2d/fillgradientprimitive2d \
-    drawinglayer/source/primitive2d/fillhatchprimitive2d \
     drawinglayer/source/primitive2d/glowprimitive2d \
     drawinglayer/source/primitive2d/graphicprimitivehelper2d \
     drawinglayer/source/primitive2d/graphicprimitive2d \
     drawinglayer/source/primitive2d/gridprimitive2d \
-    drawinglayer/source/primitive2d/groupprimitive2d \
     drawinglayer/source/primitive2d/helplineprimitive2d \
     drawinglayer/source/primitive2d/hiddengeometryprimitive2d \
     drawinglayer/source/primitive2d/invertprimitive2d \
     drawinglayer/source/primitive2d/markerarrayprimitive2d \
-    drawinglayer/source/primitive2d/maskprimitive2d \
     drawinglayer/source/primitive2d/mediaprimitive2d \
     drawinglayer/source/primitive2d/metafileprimitive2d \
-    drawinglayer/source/primitive2d/modifiedcolorprimitive2d \
-    drawinglayer/source/primitive2d/objectinfoprimitive2d \
     drawinglayer/source/primitive2d/pagehierarchyprimitive2d \
-    drawinglayer/source/primitive2d/pagepreviewprimitive2d \
     drawinglayer/source/primitive2d/patternfillprimitive2d \
-    drawinglayer/source/primitive2d/pointarrayprimitive2d \
-    drawinglayer/source/primitive2d/polygonprimitive2d \
-    drawinglayer/source/primitive2d/PolyPolygonHairlinePrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonMarkerPrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonStrokePrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonColorPrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonGradientPrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonHatchPrimitive2D \
     drawinglayer/source/primitive2d/PolyPolygonGraphicPrimitive2D \
-    drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \
-    drawinglayer/source/primitive2d/primitivetools2d \
     drawinglayer/source/primitive2d/sceneprimitive2d \
     drawinglayer/source/primitive2d/sdrdecompositiontools2d \
     drawinglayer/source/primitive2d/shadowprimitive2d \
     drawinglayer/source/primitive2d/softedgeprimitive2d \
     drawinglayer/source/primitive2d/structuretagprimitive2d \
-    drawinglayer/source/primitive2d/svggradientprimitive2d \
     drawinglayer/source/primitive2d/textbreakuphelper \
     drawinglayer/source/primitive2d/textdecoratedprimitive2d \
     drawinglayer/source/primitive2d/texteffectprimitive2d \
-    drawinglayer/source/primitive2d/textenumsprimitive2d \
     drawinglayer/source/primitive2d/texthierarchyprimitive2d \
     drawinglayer/source/primitive2d/textlayoutdevice \
     drawinglayer/source/primitive2d/textlineprimitive2d \
     drawinglayer/source/primitive2d/textprimitive2d \
     drawinglayer/source/primitive2d/textstrikeoutprimitive2d \
-    drawinglayer/source/primitive2d/transformprimitive2d \
-    drawinglayer/source/primitive2d/transparenceprimitive2d \
-    drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \
     drawinglayer/source/primitive2d/wallpaperprimitive2d \
     drawinglayer/source/primitive2d/wrongspellprimitive2d \
     drawinglayer/source/primitive3d/baseprimitive3d \
@@ -185,7 +156,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/tools/wmfemfhelper \
     drawinglayer/source/tools/primitive2dxmldump \
     drawinglayer/source/drawinglayeruno/xprimitive2drenderer \
-    drawinglayer/source/texture/texture \
     drawinglayer/source/dumper/XShapeDumper \
     drawinglayer/source/dumper/EnhancedShapeDumper \
 ))
diff --git a/drawinglayer/Library_drawinglayercore.mk b/drawinglayer/Library_drawinglayercore.mk
index f1643d27014d..972ac32f5388 100644
--- a/drawinglayer/Library_drawinglayercore.mk
+++ b/drawinglayer/Library_drawinglayercore.mk
@@ -40,10 +40,47 @@ $(eval $(call gb_Library_use_libraries,drawinglayercore,\
 ))
 
 $(eval $(call gb_Library_add_exception_objects,drawinglayercore,\
+    drawinglayer/source/attribute/lineattribute \
+    drawinglayer/source/attribute/strokeattribute \
+    drawinglayer/source/attribute/linestartendattribute \
+    drawinglayer/source/attribute/fillgradientattribute \
+    drawinglayer/source/attribute/fillhatchattribute \
+    drawinglayer/source/attribute/fontattribute \
+    drawinglayer/source/geometry/viewinformation2d \
+    drawinglayer/source/texture/texture \
     drawinglayer/source/primitive2d/baseprimitive2d \
     drawinglayer/source/primitive2d/Primitive2DContainer \
     drawinglayer/source/primitive2d/Tools \
-    drawinglayer/source/geometry/viewinformation2d \
+    drawinglayer/source/primitive2d/polygonprimitive2d \
+    drawinglayer/source/primitive2d/PolyPolygonColorPrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonHairlinePrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonMarkerPrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonStrokePrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonGradientPrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonHatchPrimitive2D \
+    drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \
+    drawinglayer/source/primitive2d/fillgradientprimitive2d \
+    drawinglayer/source/primitive2d/maskprimitive2d \
+    drawinglayer/source/primitive2d/groupprimitive2d \
+    drawinglayer/source/primitive2d/fillhatchprimitive2d \
+    drawinglayer/source/primitive2d/primitivetools2d \
+    drawinglayer/source/primitive2d/pointarrayprimitive2d \
+    drawinglayer/source/primitive2d/modifiedcolorprimitive2d \
+    drawinglayer/source/primitive2d/bitmapprimitive2d \
+    drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \
+    drawinglayer/source/primitive2d/transparenceprimitive2d \
+    drawinglayer/source/primitive2d/pagepreviewprimitive2d \
+    drawinglayer/source/primitive2d/transformprimitive2d \
+    drawinglayer/source/primitive2d/svggradientprimitive2d \
+    drawinglayer/source/primitive2d/objectinfoprimitive2d \
+    drawinglayer/source/primitive2d/textenumsprimitive2d \
 ))
 
+#    drawinglayer/source/primitive2d/epsprimitive2d \
+#    drawinglayer/source/primitive2d/markerarrayprimitive2d \
+#    drawinglayer/source/primitive2d/fillgraphicprimitive2d \
+#    drawinglayer/source/primitive2d/textdecoratedprimitive2d \
+#    drawinglayer/source/primitive2d/textprimitive2d \
+
+
 # vim: set noet sw=4 ts=4:
diff --git a/filter/Library_pdffilter.mk b/filter/Library_pdffilter.mk
index a7cb47a65231..349883578482 100644
--- a/filter/Library_pdffilter.mk
+++ b/filter/Library_pdffilter.mk
@@ -49,6 +49,7 @@ $(eval $(call gb_Library_use_libraries,pdffilter,\
 	cppuhelper \
 	cppu \
 	sal \
+	drawinglayercore \
 	drawinglayer \
 ))
 
commit 459ec5d67b31f2141e9dffd8f513303ce9e57296
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Thu Aug 13 10:16:35 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:26 2020 +0200

    drawinglayer: externalize PolygonWavePrimitive2D class
    
    Change-Id: I20a702c838ec68686b9c7e407be31ae9158cbef6

diff --git a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
index ac56461e35b0..57a37b60814f 100644
--- a/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/polygonprimitive2d.hxx
@@ -39,7 +39,7 @@ namespace drawinglayer::primitive2d
     This is one of the non-decomposable primitives, so a renderer
     should process it.
  */
-class DRAWINGLAYER_DLLPUBLIC PolygonHairlinePrimitive2D final : public BasePrimitive2D
+class DRAWINGLAYERCORE_DLLPUBLIC PolygonHairlinePrimitive2D final : public BasePrimitive2D
 {
 private:
     /// the hairline geometry
@@ -76,7 +76,7 @@ public:
     It will be decomposed to the needed PolygonHairlinePrimitive2D if
     not handled directly by a renderer.
  */
-class DRAWINGLAYER_DLLPUBLIC PolygonMarkerPrimitive2D final
+class DRAWINGLAYERCORE_DLLPUBLIC PolygonMarkerPrimitive2D final
     : public BufferedDecompositionPrimitive2D
 {
 private:
@@ -131,7 +131,7 @@ public:
     and stroke attributes. It will be decomposed dependent on the definition
     to the needed primitives, e.g. filled PolyPolygons for fat lines.
  */
-class DRAWINGLAYER_DLLPUBLIC PolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D
+class DRAWINGLAYERCORE_DLLPUBLIC PolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D
 {
 private:
     /// the line geometry
@@ -180,7 +180,7 @@ public:
     This primitive defines a waveline based on a PolygonStrokePrimitive2D
     where the wave is defined by wave width and wave length.
  */
-class PolygonWavePrimitive2D final : public PolygonStrokePrimitive2D
+class DRAWINGLAYERCORE_DLLPUBLIC PolygonWavePrimitive2D final : public PolygonStrokePrimitive2D
 {
 private:
     /// wave definition
@@ -225,7 +225,8 @@ public:
     possibly extended by start and end definitions, which are
     normally used for arrows.
  */
-class DRAWINGLAYER_DLLPUBLIC PolygonStrokeArrowPrimitive2D final : public PolygonStrokePrimitive2D
+class DRAWINGLAYERCORE_DLLPUBLIC PolygonStrokeArrowPrimitive2D final
+    : public PolygonStrokePrimitive2D
 {
 private:
     /// geometric definitions for line start and end
commit cda08eed747493b73bacd88cd1ea313c244ab798
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri May 8 20:50:29 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:25 2020 +0200

    drawinglayer: externalize PointArrayPrimitive2D class
    
    Change-Id: I8ee993947bf2f4437cf3a429c43a81132fac0947

diff --git a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
index 7e516555162a..ba4be8c5dcc4 100644
--- a/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/pointarrayprimitive2d.hxx
@@ -37,7 +37,7 @@ namespace drawinglayer::primitive2d
             should process it (Currently it is only used for grid visualisation,
             but this may change).
          */
-        class PointArrayPrimitive2D final : public BasePrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC PointArrayPrimitive2D final : public BasePrimitive2D
         {
         private:
             /// the array of positions
commit 2c683a9bd9e4bb618455776194531dae7755f2c3
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri May 8 20:43:38 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:25 2020 +0200

    drawinglayer: externalize classes in texture.hxx
    
    Change-Id: I1e49a6c896733ebebf16db23f3c2f8b06161d659

diff --git a/drawinglayer/inc/texture/texture.hxx b/drawinglayer/inc/texture/texture.hxx
index 24e23a4b241c..b34bde38d1bc 100644
--- a/drawinglayer/inc/texture/texture.hxx
+++ b/drawinglayer/inc/texture/texture.hxx
@@ -30,7 +30,7 @@
 
 namespace drawinglayer::texture
 {
-        class GeoTexSvx
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvx
         {
         public:
             GeoTexSvx();
@@ -53,7 +53,7 @@ namespace drawinglayer::texture
             basegfx::BColor         maBColor;
         };
 
-        class GeoTexSvxGradient : public GeoTexSvx
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradient : public GeoTexSvx
         {
         protected:
             basegfx::ODFGradientInfo            maGradientInfo;
@@ -79,7 +79,7 @@ namespace drawinglayer::texture
                 basegfx::BColor& rOuterColor) = 0;
         };
 
-        class GeoTexSvxGradientLinear final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientLinear final : public GeoTexSvxGradient
         {
             double                  mfUnitMinX;
             double                  mfUnitWidth;
@@ -102,7 +102,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxGradientAxial final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientAxial final : public GeoTexSvxGradient
         {
             double                  mfUnitMinX;
             double                  mfUnitWidth;
@@ -124,7 +124,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxGradientRadial final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRadial final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientRadial(
@@ -143,7 +143,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxGradientElliptical final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientElliptical final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientElliptical(
@@ -163,7 +163,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxGradientSquare final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientSquare final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientSquare(
@@ -183,7 +183,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxGradientRect final : public GeoTexSvxGradient
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxGradientRect final : public GeoTexSvxGradient
         {
         public:
             GeoTexSvxGradientRect(
@@ -203,7 +203,7 @@ namespace drawinglayer::texture
             virtual void modifyBColor(const basegfx::B2DPoint& rUV, basegfx::BColor& rBColor, double& rfOpacity) const override;
         };
 
-        class GeoTexSvxHatch final : public GeoTexSvx
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxHatch final : public GeoTexSvx
         {
             basegfx::B2DRange                   maOutputRange;
             basegfx::B2DHomMatrix               maTextureTransform;
@@ -239,7 +239,7 @@ namespace drawinglayer::texture
         // given percentage value (offsetX has to be 0.0 <= offsetX <= 1.0).
         // Accordingly to offsetY. If both are given, offsetX is preferred
         // and offsetY is ignored.
-        class GeoTexSvxTiled final : public GeoTexSvx
+        class DRAWINGLAYER_DLLPUBLIC GeoTexSvxTiled final : public GeoTexSvx
         {
             basegfx::B2DRange               maRange;
             double                          mfOffsetX;
commit ade7ce3e818ba0d91bfb1296af35c4270da43134
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Fri May 8 20:40:59 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:24 2020 +0200

    drawinglayer: externalize FillHatchPrimitive2D class
    
    Change-Id: I9ad1f179a43bb6c501cb699c0f26523f47307829

diff --git a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
index 03bc12139fcb..07399ce0e759 100644
--- a/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
@@ -24,9 +24,6 @@
 #include <drawinglayer/attribute/fillhatchattribute.hxx>
 #include <basegfx/color/bcolor.hxx>
 
-
-// FillHatchPrimitive2D class
-
 namespace drawinglayer::primitive2d
 {
         /** FillHatchPrimitive2D class
@@ -43,7 +40,7 @@ namespace drawinglayer::primitive2d
 
             The decomposition will deliver the hatch lines.
          */
-        class FillHatchPrimitive2D final : public DiscreteMetricDependentPrimitive2D
+        class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D final : public DiscreteMetricDependentPrimitive2D
         {
         private:
             /// the geometrically visible area
commit de1de2e16bf2076cf8756049178519ebe31cfc0e
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Wed Apr 1 13:00:25 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:24 2020 +0200

    Add OutputDevice::drawPrimitive2D to OutputDevice
    
    Change-Id: Ifc22eca62df72bddd247ba097054f34756520614

diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 14b03507dfe3..5f8a607198cb 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -49,6 +49,8 @@
 #include <com/sun/star/drawing/LineCap.hpp>
 #include <com/sun/star/uno/Reference.h>
 
+#include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
+
 #include <memory>
 #include <vector>
 
@@ -1961,6 +1963,9 @@ public:
     ///@}
 
 
+    bool drawPrimitive2D(drawinglayer::primitive2d::Primitive2DContainer & rPrimitive2D);
+
+
     /** @name Native Widget Rendering functions
 
         These all just call through to the private mpGraphics functions of the same name.
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index ee68260fbd50..5d3a1b593850 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -80,6 +80,7 @@ $(eval $(call gb_Library_use_libraries,vcl,\
     basegfx \
     comphelper \
     cppuhelper \
+    drawinglayercore \
     i18nlangtag \
     i18nutil \
     $(if $(filter OPENCL,$(BUILD_TYPE)),opencl) \
diff --git a/vcl/source/outdev/outdev.cxx b/vcl/source/outdev/outdev.cxx
index 020a57a6a40c..e0ce70a90911 100644
--- a/vcl/source/outdev/outdev.cxx
+++ b/vcl/source/outdev/outdev.cxx
@@ -704,4 +704,9 @@ bool OutputDevice::DrawEPS( const Point& rPoint, const Size& rSize,
     return bDrawn;
 }
 
+bool OutputDevice::drawPrimitive2D(drawinglayer::primitive2d::Primitive2DContainer & rPrimitive2D)
+{
+    return false;
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 738f07316a85d355a30286b9047e35d7064ca680
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Sat Mar 7 14:33:43 2020 +0100
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Fri Sep 25 15:26:23 2020 +0200

    Separate core drawinglayer func. into drawinglayercore library
    
    This separates the drawinglayer core functionallity into a
    separate library, to keep a strict separation what is backend
    dependent and what is not. More strict separation can be done
    at a later date.
    
    This will make it possible to push part of drawinglayer
    (part of processor2d) directly into VCL.
    
    Change-Id: Ibc26580067e50bf20d7cdd37fa0e44eb10200878

diff --git a/Repository.mk b/Repository.mk
index d0aca4e0e982..fa3e845b3236 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -351,6 +351,7 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,ooo, \
 	$(call gb_Helper_optional,SCRIPTING,dlgprov) \
 	$(if $(filter WNT,$(OS)),directx9canvas) \
 	$(if $(ENABLE_OPENGL_CANVAS),oglcanvas) \
+	drawinglayercore \
 	drawinglayer \
 	editeng \
 	$(if $(filter WNT,$(OS)),emser) \
diff --git a/drawinglayer/CppunitTest_drawinglayer_border.mk b/drawinglayer/CppunitTest_drawinglayer_border.mk
index fa2f715590cd..e00006c18dba 100644
--- a/drawinglayer/CppunitTest_drawinglayer_border.mk
+++ b/drawinglayer/CppunitTest_drawinglayer_border.mk
@@ -21,6 +21,7 @@ $(eval $(call gb_CppunitTest_use_libraries,drawinglayer_border, \
 	sal \
 	salhelper \
 	drawinglayer \
+	drawinglayercore \
 	vcl \
 	test \
 	tl \
diff --git a/drawinglayer/Library_drawinglayer.mk b/drawinglayer/Library_drawinglayer.mk
index 43a42b83b42c..4896c0ad0759 100644
--- a/drawinglayer/Library_drawinglayer.mk
+++ b/drawinglayer/Library_drawinglayer.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_Library_use_externals,drawinglayer,\
 ))
 
 $(eval $(call gb_Library_use_libraries,drawinglayer,\
+    drawinglayercore \
     basegfx \
     canvastools \
     comphelper \
@@ -67,11 +68,9 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/attribute/sdrsceneattribute3d \
     drawinglayer/source/attribute/sdrshadowattribute \
     drawinglayer/source/attribute/strokeattribute \
-    drawinglayer/source/geometry/viewinformation2d \
     drawinglayer/source/geometry/viewinformation3d \
     drawinglayer/source/primitive2d/animatedprimitive2d \
     drawinglayer/source/primitive2d/backgroundcolorprimitive2d \
-    drawinglayer/source/primitive2d/baseprimitive2d \
     drawinglayer/source/primitive2d/bitmapprimitive2d \
     drawinglayer/source/primitive2d/borderlineprimitive2d \
     drawinglayer/source/primitive2d/controlprimitive2d \
@@ -111,7 +110,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/primitive2d/PolyPolygonGraphicPrimitive2D \
     drawinglayer/source/primitive2d/PolyPolygonSelectionPrimitive2D \
     drawinglayer/source/primitive2d/primitivetools2d \
-    drawinglayer/source/primitive2d/Primitive2DContainer \
     drawinglayer/source/primitive2d/sceneprimitive2d \
     drawinglayer/source/primitive2d/sdrdecompositiontools2d \
     drawinglayer/source/primitive2d/shadowprimitive2d \
@@ -127,7 +125,6 @@ $(eval $(call gb_Library_add_exception_objects,drawinglayer,\
     drawinglayer/source/primitive2d/textlineprimitive2d \
     drawinglayer/source/primitive2d/textprimitive2d \
     drawinglayer/source/primitive2d/textstrikeoutprimitive2d \
-    drawinglayer/source/primitive2d/Tools \
     drawinglayer/source/primitive2d/transformprimitive2d \
     drawinglayer/source/primitive2d/transparenceprimitive2d \
     drawinglayer/source/primitive2d/unifiedtransparenceprimitive2d \
diff --git a/drawinglayer/Library_drawinglayercore.mk b/drawinglayer/Library_drawinglayercore.mk
new file mode 100644
index 000000000000..f1643d27014d
--- /dev/null
+++ b/drawinglayer/Library_drawinglayercore.mk
@@ -0,0 +1,49 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Library_Library,drawinglayercore))
+
+$(eval $(call gb_Library_set_include,drawinglayercore,\
+    $$(INCLUDE) \
+    -I$(SRCDIR)/drawinglayer/inc \
+))
+
+$(eval $(call gb_Library_add_defs,drawinglayercore,\
+    -DDRAWINGLAYERCORE_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_set_precompiled_header,drawinglayercore,drawinglayer/inc/pch/precompiled_drawinglayercore))
+
+$(eval $(call gb_Library_use_sdk_api,drawinglayercore))
+
+$(eval $(call gb_Library_use_externals,drawinglayercore,\
+    boost_headers \
+    libxml2 \
+))
+
+$(eval $(call gb_Library_use_libraries,drawinglayercore,\
+    basegfx \
+    comphelper \
+    cppu \
+    cppuhelper \
+    i18nlangtag \
+    sal \
+    salhelper \
+    svl \
+    tl \
+))
+
+$(eval $(call gb_Library_add_exception_objects,drawinglayercore,\
+    drawinglayer/source/primitive2d/baseprimitive2d \
+    drawinglayer/source/primitive2d/Primitive2DContainer \
+    drawinglayer/source/primitive2d/Tools \
+    drawinglayer/source/geometry/viewinformation2d \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/drawinglayer/Module_drawinglayer.mk b/drawinglayer/Module_drawinglayer.mk
index 6d329e95c60a..687cd9c2671f 100644
--- a/drawinglayer/Module_drawinglayer.mk
+++ b/drawinglayer/Module_drawinglayer.mk
@@ -10,6 +10,7 @@
 $(eval $(call gb_Module_Module,drawinglayer))
 
 $(eval $(call gb_Module_add_targets,drawinglayer,\
+    Library_drawinglayercore \
     Library_drawinglayer \
 ))
 
diff --git a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
index f4a45f1757f2..47fb368aa3d8 100644
--- a/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
+++ b/drawinglayer/inc/pch/precompiled_drawinglayer.hxx
@@ -91,7 +91,6 @@
 #include <basegfx/range/basicrange.hxx>
 #include <basegfx/tuple/b2dtuple.hxx>
 #include <basegfx/tuple/b3dtuple.hxx>
-#include <basegfx/utils/canvastools.hxx>
 #include <basegfx/vector/b2dvector.hxx>
 #include <basegfx/vector/b2enums.hxx>
 #include <basegfx/vector/b2ivector.hxx>
@@ -103,7 +102,7 @@
 #include <com/sun/star/drawing/TextureMode.hpp>
 #include <com/sun/star/drawing/TextureProjectionMode.hpp>
 #include <com/sun/star/graphic/XPrimitive3D.hpp>
-#include <com/sun/star/util/XAccounting.hpp>
+#include <com/sun/star/uno/Reference.hxx>
 #include <comphelper/comphelperdllapi.h>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/sequence.hxx>
@@ -137,7 +136,6 @@
 #include <drawinglayer/drawinglayerdllapi.h>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <drawinglayer/geometry/viewinformation3d.hxx>
-#include <drawinglayer/primitive2d/CommonTypes.hxx>
 #include <drawinglayer/primitive2d/PolyPolygonColorPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/PolyPolygonGradientPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/PolyPolygonGraphicPrimitive2D.hxx>
@@ -145,9 +143,6 @@
 #include <drawinglayer/primitive2d/PolyPolygonHatchPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/PolyPolygonMarkerPrimitive2D.hxx>
 #include <drawinglayer/primitive2d/PolyPolygonStrokePrimitive2D.hxx>
-#include <drawinglayer/primitive2d/Primitive2DContainer.hxx>
-#include <drawinglayer/primitive2d/Primitive2DVisitor.hxx>
-#include <drawinglayer/primitive2d/Tools.hxx>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
 #include <drawinglayer/primitive2d/bitmapprimitive2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
diff --git a/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx b/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx
new file mode 100644
index 000000000000..4a8c23ea8e65
--- /dev/null
+++ b/drawinglayer/inc/pch/precompiled_drawinglayercore.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "precompiled_drawinglayercore.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx b/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx
new file mode 100644
index 000000000000..4cc5ca4612c9
--- /dev/null
+++ b/drawinglayer/inc/pch/precompiled_drawinglayercore.hxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/*
+ This file has been autogenerated by update_pch.sh. It is possible to edit it
+ manually (such as when an include file has been moved/renamed/removed). All such
+ manual changes will be rewritten by the next run of update_pch.sh (which presumably
+ also fixes all possible problems, so it's usually better to use it).
+
+ Generated on 2020-03-07 12:37:18 using:
+ ./bin/update_pch drawinglayer drawinglayercore --cutoff=4 --exclude:system --exclude:module --exclude:local
+
+ If after updating build fails, use the following command to locate conflicting headers:
+ ./bin/update_pch_bisect ./drawinglayer/inc/pch/precompiled_drawinglayercore.hxx "make drawinglayer.build" --find-conflicts
+*/
+
+#if PCH_LEVEL >= 1
+#include <ostream>
+#include <vector>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#include <osl/diagnose.h>
+#include <osl/interlck.h>
+#include <sal/config.h>
+#include <sal/types.h>
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <basegfx/basegfxdllapi.h>
+#include <basegfx/point/b2dpoint.hxx>
+#include <basegfx/range/b2drange.hxx>
+#include <basegfx/range/basicrange.hxx>
+#include <basegfx/tuple/b2dtuple.hxx>
+#include <basegfx/utils/canvastools.hxx>
+#include <basegfx/vector/b2dvector.hxx>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#include <drawinglayer/geometry/viewinformation2d.hxx>
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/emfio/CppunitTest_emfio_emf.mk b/emfio/CppunitTest_emfio_emf.mk
index 5b32187b7ea8..e8e90d7dddd4 100644
--- a/emfio/CppunitTest_emfio_emf.mk
+++ b/emfio/CppunitTest_emfio_emf.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_use_sdk_api,emfio_emf))
 $(eval $(call gb_CppunitTest_use_libraries,emfio_emf,\
     basegfx \
     drawinglayer \
+    drawinglayercore \
     cppu \
     cppuhelper \
     comphelper \
diff --git a/emfio/Library_emfio.mk b/emfio/Library_emfio.mk
index 281f077130f1..f923f2078e35 100644
--- a/emfio/Library_emfio.mk
+++ b/emfio/Library_emfio.mk
@@ -41,6 +41,7 @@ $(eval $(call gb_Library_use_sdk_api,emfio))
 
 $(eval $(call gb_Library_use_libraries,emfio,\
     basegfx \
+    drawinglayercore \
     drawinglayer \
     cppu \
     cppuhelper \
diff --git a/filter/Library_svgfilter.mk b/filter/Library_svgfilter.mk
index 21318aa1fd03..1f0caf11758c 100644
--- a/filter/Library_svgfilter.mk
+++ b/filter/Library_svgfilter.mk
@@ -56,6 +56,7 @@ $(eval $(call gb_Library_use_libraries,svgfilter,\
 	sax \
 	salhelper \
 	comphelper \
+	drawinglayercore \
 	drawinglayer \
 	basegfx \
 	cppuhelper \
diff --git a/include/drawinglayer/drawinglayerdllapi.h b/include/drawinglayer/drawinglayerdllapi.h
index 0b3983504919..36a0d8abfea2 100644
--- a/include/drawinglayer/drawinglayerdllapi.h
+++ b/include/drawinglayer/drawinglayerdllapi.h
@@ -19,6 +19,12 @@
 #endif
 #define DRAWINGLAYER_DLLPRIVATE SAL_DLLPRIVATE
 
+#if defined(DRAWINGLAYERCORE_DLLIMPLEMENTATION)
+#define DRAWINGLAYERCORE_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define DRAWINGLAYERCORE_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/drawinglayer/geometry/viewinformation2d.hxx b/include/drawinglayer/geometry/viewinformation2d.hxx
index 95be29a72bda..06b17248d213 100644
--- a/include/drawinglayer/geometry/viewinformation2d.hxx
+++ b/include/drawinglayer/geometry/viewinformation2d.hxx
@@ -63,7 +63,7 @@ namespace drawinglayer::geometry
     It is an implementation to support the sequence of PropertyValues used in a
     css::graphic::XPrimitive2D for C++ implementations working with those
 */
-class DRAWINGLAYER_DLLPUBLIC ViewInformation2D
+class DRAWINGLAYERCORE_DLLPUBLIC ViewInformation2D
 {
 public:
     typedef o3tl::cow_wrapper<ImpViewInformation2D, o3tl::ThreadSafeRefCountingPolicy> ImplType;
diff --git a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
index cca3a0a91485..c096e9a8cc2f 100644
--- a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
+++ b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
@@ -34,7 +34,7 @@ class ViewInformation2D;
 
 namespace drawinglayer::primitive2d
 {
-class SAL_WARN_UNUSED DRAWINGLAYER_DLLPUBLIC Primitive2DContainer
+class SAL_WARN_UNUSED DRAWINGLAYERCORE_DLLPUBLIC Primitive2DContainer
     : public std::deque<Primitive2DReference>,
       public Primitive2DDecompositionVisitor
 {
diff --git a/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx b/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx
index dfe04b32a320..e174d1e0878d 100644
--- a/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx
+++ b/include/drawinglayer/primitive2d/Primitive2DVisitor.hxx
@@ -27,7 +27,7 @@ namespace drawinglayer::primitive2d
 class Primitive2DContainer;
 
 // Visitor class for walking a tree of Primitive2DReference
-class DRAWINGLAYER_DLLPUBLIC Primitive2DDecompositionVisitor
+class DRAWINGLAYERCORE_DLLPUBLIC Primitive2DDecompositionVisitor
 {
 public:
     virtual void append(const Primitive2DReference&) = 0;
diff --git a/include/drawinglayer/primitive2d/Tools.hxx b/include/drawinglayer/primitive2d/Tools.hxx
index fbb6f5717c01..1c30565c8c1b 100644
--- a/include/drawinglayer/primitive2d/Tools.hxx
+++ b/include/drawinglayer/primitive2d/Tools.hxx
@@ -31,16 +31,16 @@ class ViewInformation2D;
 namespace drawinglayer::primitive2d
 {
 /// get B2DRange from a given Primitive2DReference
-basegfx::B2DRange DRAWINGLAYER_DLLPUBLIC getB2DRangeFromPrimitive2DReference(
+basegfx::B2DRange DRAWINGLAYERCORE_DLLPUBLIC getB2DRangeFromPrimitive2DReference(
     const Primitive2DReference& rCandidate, const geometry::ViewInformation2D& aViewInformation);
 
 /** compare two Primitive2DReferences for equality, including trying to get implementations (BasePrimitive2D)
     and using compare operator
  */
-bool DRAWINGLAYER_DLLPUBLIC arePrimitive2DReferencesEqual(const Primitive2DReference& rA,
-                                                          const Primitive2DReference& rB);
+bool DRAWINGLAYERCORE_DLLPUBLIC arePrimitive2DReferencesEqual(const Primitive2DReference& rA,
+                                                              const Primitive2DReference& rB);
 
-OUString DRAWINGLAYER_DLLPUBLIC idToString(sal_uInt32 nId);
+OUString DRAWINGLAYERCORE_DLLPUBLIC idToString(sal_uInt32 nId);
 
 } // end of namespace drawinglayer::primitive2d
 
diff --git a/include/drawinglayer/primitive2d/baseprimitive2d.hxx b/include/drawinglayer/primitive2d/baseprimitive2d.hxx
index 45d0e3519c40..5478309846cd 100644
--- a/include/drawinglayer/primitive2d/baseprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/baseprimitive2d.hxx
@@ -119,8 +119,8 @@ typedef cppu::WeakComponentImplHelper<css::graphic::XPrimitive2D, css::util::XAc
     for view-independent primitives which are defined by not using ViewInformation2D
     in their get2DDecomposition/getB2DRange implementations.
 */
-class DRAWINGLAYER_DLLPUBLIC BasePrimitive2D : protected cppu::BaseMutex,
-                                               public BasePrimitive2DImplBase
+class DRAWINGLAYERCORE_DLLPUBLIC BasePrimitive2D : protected cppu::BaseMutex,
+                                                   public BasePrimitive2DImplBase
 {
     BasePrimitive2D(const BasePrimitive2D&) = delete;
     BasePrimitive2D& operator=(const BasePrimitive2D&) = delete;
@@ -198,7 +198,7 @@ public:
         to identify if a new decomposition is needed at the next call
     (f) return maBuffered2DDecomposition
  */
-class DRAWINGLAYER_DLLPUBLIC BufferedDecompositionPrimitive2D : public BasePrimitive2D
+class DRAWINGLAYERCORE_DLLPUBLIC BufferedDecompositionPrimitive2D : public BasePrimitive2D
 {
 private:
     /// a sequence used for buffering the last create2DDecomposition() result
diff --git a/sc/CppunitTest_sc_parallelism.mk b/sc/CppunitTest_sc_parallelism.mk
index eb7aaa446954..ff2cd6e25953 100644
--- a/sc/CppunitTest_sc_parallelism.mk
+++ b/sc/CppunitTest_sc_parallelism.mk
@@ -40,6 +40,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_parallelism, \
     cppuhelper \
     dbtools \
     drawinglayer \
+    drawinglayercore \
     editeng \
     for \
     forui \
diff --git a/sc/CppunitTest_sc_ucalc.mk b/sc/CppunitTest_sc_ucalc.mk
index 8943de7ab4c3..60fb6676dab9 100644
--- a/sc/CppunitTest_sc_ucalc.mk
+++ b/sc/CppunitTest_sc_ucalc.mk
@@ -49,6 +49,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sc_ucalc, \
     cppuhelper \
     dbtools \
     drawinglayer \
+    drawinglayercore \
     editeng \
     for \
     forui \
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index 1b3cead83beb..04589a676eaa 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -70,6 +70,7 @@ $(eval $(call gb_Library_use_libraries,sc,\
     cppu \
     cppuhelper \
     dbtools \
+    drawinglayercore \
     drawinglayer \
     editeng \
     for \
diff --git a/sd/CppunitTest_sd_uimpress.mk b/sd/CppunitTest_sd_uimpress.mk
index 93426dfc3a55..63f143978231 100644
--- a/sd/CppunitTest_sd_uimpress.mk
+++ b/sd/CppunitTest_sd_uimpress.mk
@@ -27,6 +27,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sd_uimpress,\
     cppu \
     cppuhelper \
     drawinglayer \
+    drawinglayercore \
     editeng \
     i18nlangtag \
     i18nutil \
diff --git a/sd/Library_sd.mk b/sd/Library_sd.mk
index 9d399e8e3f5a..ed9decbc75cc 100644
--- a/sd/Library_sd.mk
+++ b/sd/Library_sd.mk
@@ -74,6 +74,7 @@ $(eval $(call gb_Library_use_libraries,sd,\
 	cppcanvas \
 	cppu \
 	cppuhelper \
+	drawinglayercore \
 	drawinglayer \
 	editeng \
 	i18nlangtag \
diff --git a/sfx2/Library_sfx.mk b/sfx2/Library_sfx.mk
index cb0b099eb37d..95d1eb704273 100644
--- a/sfx2/Library_sfx.mk
+++ b/sfx2/Library_sfx.mk
@@ -49,6 +49,7 @@ $(eval $(call gb_Library_use_libraries,sfx,\
     comphelper \
     cppu \
     cppuhelper \
+    drawinglayercore \
     drawinglayer \
     fwk \
     i18nlangtag \
diff --git a/svgio/CppunitTest_svgio.mk b/svgio/CppunitTest_svgio.mk
index d690f2383116..e6708c916f34 100644
--- a/svgio/CppunitTest_svgio.mk
+++ b/svgio/CppunitTest_svgio.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_CppunitTest_use_library_objects,svgio,\
 $(eval $(call gb_CppunitTest_use_libraries,svgio,\
     basegfx \
     drawinglayer \
+    drawinglayercore \
     cppu \
     cppuhelper \
     comphelper \
diff --git a/svgio/Library_svgio.mk b/svgio/Library_svgio.mk
index 83a8546bdc1a..d75508e0537e 100644
--- a/svgio/Library_svgio.mk
+++ b/svgio/Library_svgio.mk
@@ -33,6 +33,7 @@ $(eval $(call gb_Library_use_sdk_api,svgio))
 
 $(eval $(call gb_Library_use_libraries,svgio,\
     basegfx \
+    drawinglayercore \
     drawinglayer \
     comphelper \
     cppu \
diff --git a/svx/CppunitTest_svx_unit.mk b/svx/CppunitTest_svx_unit.mk
index ac9f3e4531ad..4a51867ec189 100644
--- a/svx/CppunitTest_svx_unit.mk
+++ b/svx/CppunitTest_svx_unit.mk
@@ -36,6 +36,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,svx_unit, \
 $(eval $(call gb_CppunitTest_use_libraries,svx_unit, \
 	basegfx \
 	drawinglayer \
+	drawinglayercore \
 	sal \
 	sfx \
 	svxcore \
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 424361233542..77d4541f892e 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -50,6 +50,7 @@ $(eval $(call gb_Library_use_libraries,svx,\
 		crashreport) \
     $(call gb_Helper_optional,DBCONNECTIVITY, \
         dbtools) \
+    drawinglayercore \
     drawinglayer \
     editeng \
     fwk \

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list