[Libreoffice-commits] core.git: drawinglayer/source
Bartosz Kosiorek
gang65 at poczta.onet.pl
Wed Dec 6 13:26:09 UTC 2017
drawinglayer/source/tools/emfphelperdata.cxx | 6 +++---
drawinglayer/source/tools/emfphelperdata.hxx | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
New commits:
commit 7b0f064dc4e7d33fe9bd927dae35ab0a4ef97b5f
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/45704
Reviewed-by: Patrick Jaap <patrick.jaap at tu-dresden.de>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Tested-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