vcl/Library_vcl.mk               |    1 
 vcl/inc/graphic/GraphicID.hxx    |   47 ++++++++++++++++
 vcl/inc/impgraph.hxx             |   21 -------
 vcl/source/gdi/impgraph.cxx      |   83 ----------------------------
 vcl/source/graphic/GraphicID.cxx |  112 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 161 insertions(+), 103 deletions(-)

New commits:
commit b6bc43f354bcbe6a98db9fb372fd47bc5b23f4d8
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon Feb 24 23:02:20 2020 +0100
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue Feb 25 19:30:53 2020 +0100

    vcl: move GraphicID out of impgraph.{cxx,hxx}
    
    Change-Id: I0b3b17736a76be290f6e5b77ee547b7e650d4489
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89449
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index a38c84874ff9..79f2002c8c9d 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -318,6 +318,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/gdi/TypeSerializer \
     vcl/source/pdf/ResourceDict \
     vcl/source/pdf/Matrix3 \
+    vcl/source/graphic/GraphicID \
     vcl/source/graphic/GraphicLoader \
     vcl/source/graphic/GraphicObject \
     vcl/source/graphic/GraphicObject2 \
diff --git a/vcl/inc/graphic/GraphicID.hxx b/vcl/inc/graphic/GraphicID.hxx
new file mode 100644
index 000000000000..87ac6a50f37a
--- /dev/null
+++ b/vcl/inc/graphic/GraphicID.hxx
@@ -0,0 +1,47 @@
+/* -*- 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/dllapi.h>
+#include <rtl/string.hxx>
+#include <vcl/checksum.hxx>
+
+class ImpGraphic;
+
+class GraphicID
+{
+private:
+    sal_uInt32 mnID1;
+    sal_uInt32 mnID2;
+    sal_uInt32 mnID3;
+    BitmapChecksum mnID4;
+
+public:
+    GraphicID(ImpGraphic const& rGraphic);
+
+    bool operator==(const GraphicID& rID) const
+    {
+        return rID.mnID1 == mnID1 && rID.mnID2 == mnID2 && rID.mnID3 == mnID3 
&& rID.mnID4 == mnID4;
+    }
+
+    OString getIDString() const;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/impgraph.hxx b/vcl/inc/impgraph.hxx
index 90e658c67308..56c663d2d687 100644
--- a/vcl/inc/impgraph.hxx
+++ b/vcl/inc/impgraph.hxx
@@ -24,6 +24,7 @@
 #include <vcl/gdimtf.hxx>
 #include <vcl/graph.hxx>
 #include "graphic/Manager.hxx"
+#include "graphic/GraphicID.hxx"
 
 struct ImpSwapInfo
 {
@@ -45,26 +46,6 @@ struct ImpSwapFile;
 class GraphicConversionParameters;
 class ImpGraphic;
 
-class GraphicID
-{
-private:
-    sal_uInt32  mnID1;
-    sal_uInt32  mnID2;
-    sal_uInt32  mnID3;
-    BitmapChecksum  mnID4;
-
-public:
-    GraphicID(ImpGraphic const & rGraphic);
-
-    bool operator==(const GraphicID& rID) const
-    {
-        return rID.mnID1 == mnID1 && rID.mnID2 == mnID2 &&
-               rID.mnID3 == mnID3 && rID.mnID4 == mnID4;
-    }
-
-    OString getIDString() const;
-};
-
 class ImpGraphic final
 {
     friend class Graphic;
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 7e9c96feddf2..df736a274d87 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -69,89 +69,6 @@ struct ImpSwapFile
     ~ImpSwapFile();
 };
 
-GraphicID::GraphicID(ImpGraphic const & rGraphic)
-{
-    rGraphic.ensureAvailable();
-
-    mnID1 = static_cast<sal_uLong>(rGraphic.ImplGetType()) << 28;
-    mnID2 = mnID3 = mnID4 = 0;
-
-    if (rGraphic.ImplGetType() == GraphicType::Bitmap)
-    {
-        if (rGraphic.getVectorGraphicData().get())
-        {
-            const VectorGraphicDataPtr& rVectorGraphicDataPtr = 
rGraphic.getVectorGraphicData();
-            const basegfx::B2DRange& rRange = 
rVectorGraphicDataPtr->getRange();
-
-            mnID1 |= rVectorGraphicDataPtr->getVectorGraphicDataArrayLength();
-            mnID2 = basegfx::fround(rRange.getWidth());
-            mnID3 = basegfx::fround(rRange.getHeight());
-            mnID4 = vcl_get_checksum(0, 
rVectorGraphicDataPtr->getVectorGraphicDataArray().getConstArray(), 
rVectorGraphicDataPtr->getVectorGraphicDataArrayLength());
-        }
-        else if (rGraphic.hasPdfData())
-        {
-            std::shared_ptr<std::vector<sal_Int8>> pPdfData = 
rGraphic.getPdfData();
-            const BitmapEx& rBmpEx = rGraphic.ImplGetBitmapExRef();
-
-            mnID1 |= (rGraphic.mnPageNumber & 0x0fffffff);
-            mnID2 = rBmpEx.GetSizePixel().Width();
-            mnID3 = rBmpEx.GetSizePixel().Height();
-            mnID4 = vcl_get_checksum(0, pPdfData->data(), pPdfData->size());
-        }
-        else if (rGraphic.ImplIsAnimated())
-        {
-            const Animation aAnimation(rGraphic.ImplGetAnimation());
-
-            mnID1 |= ( aAnimation.Count() & 0x0fffffff );
-            mnID2 = aAnimation.GetDisplaySizePixel().Width();
-            mnID3 = aAnimation.GetDisplaySizePixel().Height();
-            mnID4 = rGraphic.ImplGetChecksum();
-        }
-        else
-        {
-            const BitmapEx 
aBmpEx(rGraphic.ImplGetBitmapEx(GraphicConversionParameters()));
-
-            mnID1 |= ( ( ( static_cast<sal_uLong>(aBmpEx.GetTransparentType()) 
<< 8 ) | ( aBmpEx.IsAlpha() ? 1 : 0 ) ) & 0x0fffffff );
-            mnID2 = aBmpEx.GetSizePixel().Width();
-            mnID3 = aBmpEx.GetSizePixel().Height();
-            mnID4 = rGraphic.ImplGetChecksum();
-        }
-    }
-    else if (rGraphic.ImplGetType() == GraphicType::GdiMetafile)
-    {
-        const GDIMetaFile& rMtf = rGraphic.ImplGetGDIMetaFile();
-
-        mnID1 |= ( rMtf.GetActionSize() & 0x0fffffff );
-        mnID2 = rMtf.GetPrefSize().Width();
-        mnID3 = rMtf.GetPrefSize().Height();
-        mnID4 = rGraphic.ImplGetChecksum();
-    }
-}
-
-OString GraphicID::getIDString() const
-{
-    static const char aHexData[] = { '0', '1', '2', '3', '4', '5', '6', '7', 
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
-
-    sal_Int32 nShift, nIndex = 0;
-    sal_Int32 nLen = 24 + (2 * BITMAP_CHECKSUM_SIZE);
-    OStringBuffer aHexStr(nLen);
-    aHexStr.setLength(nLen);
-
-    for( nShift = 28; nShift >= 0; nShift -= 4 )
-        aHexStr[nIndex++] = aHexData[ ( mnID1 >> 
static_cast<sal_uInt32>(nShift) ) & 0xf ];
-
-    for( nShift = 28; nShift >= 0; nShift -= 4 )
-        aHexStr[nIndex++] = aHexData[ ( mnID2 >> 
static_cast<sal_uInt32>(nShift) ) & 0xf ];
-
-    for( nShift = 28; nShift >= 0; nShift -= 4 )
-        aHexStr[nIndex++] = aHexData[ ( mnID3 >> 
static_cast<sal_uInt32>(nShift) ) & 0xf ];
-
-    for( nShift = ( 8 * BITMAP_CHECKSUM_SIZE ) - 4; nShift >= 0; nShift -= 4 )
-        aHexStr[nIndex++] = aHexData[ ( mnID4 >> 
static_cast<sal_uInt32>(nShift) ) & 0xf ];
-
-    return aHexStr.makeStringAndClear();
-}
-
 ImpGraphic::ImpGraphic() :
         meType          ( GraphicType::NONE ),
         mnSizeBytes     ( 0 ),
diff --git a/vcl/source/graphic/GraphicID.cxx b/vcl/source/graphic/GraphicID.cxx
new file mode 100644
index 000000000000..7220853b998b
--- /dev/null
+++ b/vcl/source/graphic/GraphicID.cxx
@@ -0,0 +1,112 @@
+/* -*- 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 <graphic/GraphicID.hxx>
+
+#include <impgraph.hxx>
+
+GraphicID::GraphicID(ImpGraphic const& rGraphic)
+{
+    rGraphic.ensureAvailable();
+
+    mnID1 = static_cast<sal_uLong>(rGraphic.ImplGetType()) << 28;
+    mnID2 = mnID3 = mnID4 = 0;
+
+    if (rGraphic.ImplGetType() == GraphicType::Bitmap)
+    {
+        if (rGraphic.getVectorGraphicData().get())
+        {
+            const VectorGraphicDataPtr& rVectorGraphicDataPtr = 
rGraphic.getVectorGraphicData();
+            const basegfx::B2DRange& rRange = 
rVectorGraphicDataPtr->getRange();
+
+            mnID1 |= rVectorGraphicDataPtr->getVectorGraphicDataArrayLength();
+            mnID2 = basegfx::fround(rRange.getWidth());
+            mnID3 = basegfx::fround(rRange.getHeight());
+            mnID4 = vcl_get_checksum(
+                0, 
rVectorGraphicDataPtr->getVectorGraphicDataArray().getConstArray(),
+                rVectorGraphicDataPtr->getVectorGraphicDataArrayLength());
+        }
+        else if (rGraphic.hasPdfData())
+        {
+            std::shared_ptr<std::vector<sal_Int8>> pPdfData = 
rGraphic.getPdfData();
+            const BitmapEx& rBmpEx = rGraphic.ImplGetBitmapExRef();
+
+            mnID1 |= (rGraphic.mnPageNumber & 0x0fffffff);
+            mnID2 = rBmpEx.GetSizePixel().Width();
+            mnID3 = rBmpEx.GetSizePixel().Height();
+            mnID4 = vcl_get_checksum(0, pPdfData->data(), pPdfData->size());
+        }
+        else if (rGraphic.ImplIsAnimated())
+        {
+            const Animation aAnimation(rGraphic.ImplGetAnimation());
+
+            mnID1 |= (aAnimation.Count() & 0x0fffffff);
+            mnID2 = aAnimation.GetDisplaySizePixel().Width();
+            mnID3 = aAnimation.GetDisplaySizePixel().Height();
+            mnID4 = rGraphic.ImplGetChecksum();
+        }
+        else
+        {
+            const BitmapEx 
aBmpEx(rGraphic.ImplGetBitmapEx(GraphicConversionParameters()));
+
+            mnID1 |= (((static_cast<sal_uLong>(aBmpEx.GetTransparentType()) << 
8)
+                       | (aBmpEx.IsAlpha() ? 1 : 0))
+                      & 0x0fffffff);
+            mnID2 = aBmpEx.GetSizePixel().Width();
+            mnID3 = aBmpEx.GetSizePixel().Height();
+            mnID4 = rGraphic.ImplGetChecksum();
+        }
+    }
+    else if (rGraphic.ImplGetType() == GraphicType::GdiMetafile)
+    {
+        const GDIMetaFile& rMtf = rGraphic.ImplGetGDIMetaFile();
+
+        mnID1 |= (rMtf.GetActionSize() & 0x0fffffff);
+        mnID2 = rMtf.GetPrefSize().Width();
+        mnID3 = rMtf.GetPrefSize().Height();
+        mnID4 = rGraphic.ImplGetChecksum();
+    }
+}
+
+OString GraphicID::getIDString() const
+{
+    static const char aHexData[]
+        = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 
'D', 'E', 'F' };
+
+    sal_Int32 nShift, nIndex = 0;
+    sal_Int32 nLen = 24 + (2 * BITMAP_CHECKSUM_SIZE);
+    OStringBuffer aHexStr(nLen);
+    aHexStr.setLength(nLen);
+
+    for (nShift = 28; nShift >= 0; nShift -= 4)
+        aHexStr[nIndex++] = aHexData[(mnID1 >> 
static_cast<sal_uInt32>(nShift)) & 0xf];
+
+    for (nShift = 28; nShift >= 0; nShift -= 4)
+        aHexStr[nIndex++] = aHexData[(mnID2 >> 
static_cast<sal_uInt32>(nShift)) & 0xf];
+
+    for (nShift = 28; nShift >= 0; nShift -= 4)
+        aHexStr[nIndex++] = aHexData[(mnID3 >> 
static_cast<sal_uInt32>(nShift)) & 0xf];
+
+    for (nShift = (8 * BITMAP_CHECKSUM_SIZE) - 4; nShift >= 0; nShift -= 4)
+        aHexStr[nIndex++] = aHexData[(mnID4 >> 
static_cast<sal_uInt32>(nShift)) & 0xf];
+
+    return aHexStr.makeStringAndClear();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to