[Libreoffice-commits] core.git: Branch 'libreoffice-6-0' - drawinglayer/source

Bartosz Kosiorek gang65 at poczta.onet.pl
Fri Dec 8 12:02:17 UTC 2017


 drawinglayer/source/tools/emfphelperdata.cxx |    6 +++---
 drawinglayer/source/tools/emfphelperdata.hxx |    4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 6f609433730ecdbc23096b9362df596a0b703d37
Author: Bartosz Kosiorek <gang65 at poczta.onet.pl>
Date:   Fri Dec 1 23:11:45 2017 +0100

    tdf#109340 Improve performance by reducing matrix multiplication
    
    Multiplication of two B2DHomMatrix with operator* is very CPU expensive,
    because 24 of double-precision floating point multiplication
    needs to be performed.
    
    With this patch I have reduced Multiplication of matrix,
    by creating combined Scale and Transform matrix at once.
    It allows to reduce matrix multiplication by one,
    and improve import time.
    
    Change-Id: I85fde6354e458659a0214514c6e05b8e2ee04185
    Reviewed-on: https://gerrit.libreoffice.org/45828
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Patrick Jaap <patrick.jaap at tu-dresden.de>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/drawinglayer/source/tools/emfphelperdata.cxx b/drawinglayer/source/tools/emfphelperdata.cxx
index bd1f9e9b071a..a5dda5d2ad96 100644
--- a/drawinglayer/source/tools/emfphelperdata.cxx
+++ b/drawinglayer/source/tools/emfphelperdata.cxx
@@ -283,8 +283,8 @@ namespace emfplushelper
         // To evtl. correct and see where this came from, please compare with the implementations
         // of EmfPlusHelperData::MapToDevice and EmfPlusHelperData::Map* in prev versions
         maMapTransform = maWorldTransform;
-        maMapTransform *= basegfx::utils::createScaleB2DHomMatrix(100.0 * mnMmX / mnPixX, 100.0 * mnMmY / mnPixY);
-        maMapTransform *= basegfx::utils::createTranslateB2DHomMatrix(double(-mnFrameLeft), double(-mnFrameTop));
+        maMapTransform *= basegfx::utils::createScaleTranslateB2DHomMatrix(100.0 * mnMmX / mnPixX, 100.0 * mnMmY / mnPixY,
+                                                                           double(-mnFrameLeft), double(-mnFrameTop));
         maMapTransform *= maBaseTransform;
     }
 
@@ -812,7 +812,7 @@ namespace emfplushelper
                     {
                         sal_uInt32 header, version;
 
-                        rMS.ReadUInt32(header).ReadUInt32(version).ReadInt32(mnHDPI).ReadInt32(mnVDPI);
+                        rMS.ReadUInt32(header).ReadUInt32(version).ReadUInt32(mnHDPI).ReadUInt32(mnVDPI);
                         SAL_INFO("drawinglayer", "EMF+ Header");
                         SAL_INFO("drawinglayer", "EMF+\theader: 0x" << std::hex << header << " version: " << std::dec << version << " horizontal DPI: " << mnHDPI << " vertical DPI: " << mnVDPI << " dual: " << (flags & 1));
                         break;
diff --git a/drawinglayer/source/tools/emfphelperdata.hxx b/drawinglayer/source/tools/emfphelperdata.hxx
index 431e9b0a5c72..729835307633 100644
--- a/drawinglayer/source/tools/emfphelperdata.hxx
+++ b/drawinglayer/source/tools/emfphelperdata.hxx
@@ -198,8 +198,8 @@ namespace emfplushelper
         float                       mfPageScale;
         sal_Int32                   mnOriginX;
         sal_Int32                   mnOriginY;
-        sal_Int32                   mnHDPI;
-        sal_Int32                   mnVDPI;
+        sal_uInt32                  mnHDPI;
+        sal_uInt32                  mnVDPI;
 
         /* EMF+ emf header info */
         sal_Int32                   mnFrameLeft;


More information about the Libreoffice-commits mailing list