include/vcl/filter/SvmReader.hxx | 1 + include/vcl/metaact.hxx | 2 ++ vcl/source/filter/svm/SvmReader.cxx | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-)
New commits: commit 7c85ebbc1aa81f54351f82566d25a11125eaeaa1 Author: panoskorovesis <[email protected]> AuthorDate: Fri Jul 9 14:01:01 2021 +0300 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Sat Jul 10 00:40:53 2021 +0200 Add Handler for BmpEx Read The handler separates MetaBmpExAction::Read from metaact.hxx Read implementation is now in SvmReader.hxx Change-Id: Ia5175e824716e08df2ac42e354b337b9e15050e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118673 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/include/vcl/filter/SvmReader.hxx b/include/vcl/filter/SvmReader.hxx index fedaf58b9692..fc82e47268bc 100644 --- a/include/vcl/filter/SvmReader.hxx +++ b/include/vcl/filter/SvmReader.hxx @@ -59,6 +59,7 @@ public: rtl::Reference<MetaAction> BmpHandler(); rtl::Reference<MetaAction> BmpScaleHandler(); rtl::Reference<MetaAction> BmpScalePartHandler(); + rtl::Reference<MetaAction> BmpExHandler(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx index 4c531977100f..b3cd5e0b5e87 100644 --- a/include/vcl/metaact.hxx +++ b/include/vcl/metaact.hxx @@ -831,6 +831,8 @@ public: const BitmapEx& GetBitmapEx() const { return maBmpEx; } const Point& GetPoint() const { return maPt; } + void SetBitmapEx(BitmapEx rBmpEx) { maBmpEx = rBmpEx; } + void SetPoint(Point& rPt) { maPt = rPt; } bool IsTransparent() const override { return GetBitmapEx().IsAlpha(); } }; diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx index ed75eb27893e..e53dbefeb45e 100644 --- a/vcl/source/filter/svm/SvmReader.cxx +++ b/vcl/source/filter/svm/SvmReader.cxx @@ -220,7 +220,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData) return BmpScalePartHandler(); break; case MetaActionType::BMPEX: - pAction = new MetaBmpExAction; + return BmpExHandler(); break; case MetaActionType::BMPEXSCALE: pAction = new MetaBmpExScaleAction; @@ -898,4 +898,21 @@ rtl::Reference<MetaAction> SvmReader::BmpScalePartHandler() return pAction; } + +rtl::Reference<MetaAction> SvmReader::BmpExHandler() +{ + auto pAction = new MetaBmpExAction(); + + VersionCompatRead aCompat(mrStream); + BitmapEx aBmpEx; + ReadDIBBitmapEx(aBmpEx, mrStream); + TypeSerializer aSerializer(mrStream); + Point aPoint; + aSerializer.readPoint(aPoint); + + pAction->SetPoint(aPoint); + pAction->SetBitmapEx(aBmpEx); + + return pAction; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
