framework/source/fwe/classes/imagewrapper.cxx | 19 +++---------------- include/vcl/BitmapTools.hxx | 2 ++ toolkit/source/awt/vclxbitmap.cxx | 5 ++--- vcl/source/bitmap/BitmapTools.cxx | 20 ++++++++++++++++++++ 4 files changed, 27 insertions(+), 19 deletions(-)
New commits: commit e568d233a3f9cbc926bfa12dac3fbc6d29a4b6c7 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Mar 16 09:51:44 2018 +0200 move framework/toolkit use of BitmapEx::GetMask inside vcl Change-Id: I2a942377d6e9b8b09673e5ad2804e0e7fb2bb943 Reviewed-on: https://gerrit.libreoffice.org/51387 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/framework/source/fwe/classes/imagewrapper.cxx b/framework/source/fwe/classes/imagewrapper.cxx index f916d7a4e607..bb7b65a622fa 100644 --- a/framework/source/fwe/classes/imagewrapper.cxx +++ b/framework/source/fwe/classes/imagewrapper.cxx @@ -21,6 +21,7 @@ #include <vcl/svapp.hxx> #include <vcl/bitmap.hxx> #include <vcl/bitmapex.hxx> +#include <vcl/BitmapTools.hxx> #include <tools/stream.hxx> #include <cppuhelper/typeprovider.hxx> #include <vcl/dibtools.hxx> @@ -74,22 +75,8 @@ Sequence< sal_Int8 > SAL_CALL ImageWrapper::getDIB() Sequence< sal_Int8 > SAL_CALL ImageWrapper::getMaskDIB() { SolarMutexGuard aGuard; - BitmapEx aBmpEx( m_aImage.GetBitmapEx() ); - - if ( aBmpEx.IsAlpha() ) - { - SvMemoryStream aMem; - WriteDIB(aBmpEx.GetAlpha().GetBitmap(), aMem, false, true); - return Sequence< sal_Int8 >( static_cast<sal_Int8 const *>(aMem.GetData()), aMem.Tell() ); - } - else if ( aBmpEx.IsTransparent() ) - { - SvMemoryStream aMem; - WriteDIB(aBmpEx.GetMask(), aMem, false, true); - return Sequence< sal_Int8 >( static_cast<sal_Int8 const *>(aMem.GetData()), aMem.Tell() ); - } - - return Sequence< sal_Int8 >(); + + return vcl::bitmap::GetMaskDIB(m_aImage.GetBitmapEx()); } // XUnoTunnel diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx index 6ff484a82d9c..3a1692730393 100644 --- a/include/vcl/BitmapTools.hxx +++ b/include/vcl/BitmapTools.hxx @@ -96,6 +96,8 @@ VCL_DLLPUBLIC void DrawAlphaBitmapAndAlphaGradient(BitmapEx & rBitmapEx, bool bF VCL_DLLPUBLIC void DrawAndClipBitmap(const Point& rPos, const Size& rSize, const BitmapEx& rBitmap, BitmapEx & aBmpEx, basegfx::B2DPolyPolygon const & rClipPath); +VCL_DLLPUBLIC css::uno::Sequence< sal_Int8 > GetMaskDIB(BitmapEx const & aBmpEx); + }} // end vcl::bitmap #endif // INCLUDED_VCL_BITMAP_TOOLS_HXX diff --git a/toolkit/source/awt/vclxbitmap.cxx b/toolkit/source/awt/vclxbitmap.cxx index da0f08382a36..c8f531df3951 100644 --- a/toolkit/source/awt/vclxbitmap.cxx +++ b/toolkit/source/awt/vclxbitmap.cxx @@ -24,6 +24,7 @@ #include <tools/stream.hxx> #include <rtl/uuid.h> #include <vcl/dibtools.hxx> +#include <vcl/BitmapTools.hxx> // class VCLXBitmap @@ -72,9 +73,7 @@ css::uno::Sequence< sal_Int8 > VCLXBitmap::getMaskDIB() { ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() ); - SvMemoryStream aMem; - WriteDIB(maBitmap.GetMask(), aMem, false, true); - return css::uno::Sequence<sal_Int8>( static_cast<sal_Int8 const *>(aMem.GetData()), aMem.Tell() ); + return vcl::bitmap::GetMaskDIB(maBitmap); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/bitmap/BitmapTools.cxx b/vcl/source/bitmap/BitmapTools.cxx index 366c6be37af0..3abd1ca537b9 100644 --- a/vcl/source/bitmap/BitmapTools.cxx +++ b/vcl/source/bitmap/BitmapTools.cxx @@ -22,6 +22,7 @@ #include <com/sun/star/rendering/XIntegerReadOnlyBitmap.hpp> #include <unotools/resmgr.hxx> +#include <vcl/dibtools.hxx> #include <vcl/settings.hxx> #include <vcl/svapp.hxx> #include <vcl/salbtype.hxx> @@ -628,6 +629,25 @@ void DrawAndClipBitmap(const Point& rPos, const Size& rSize, const BitmapEx& rBi } } + +css::uno::Sequence< sal_Int8 > GetMaskDIB(BitmapEx const & aBmpEx) +{ + if ( aBmpEx.IsAlpha() ) + { + SvMemoryStream aMem; + WriteDIB(aBmpEx.GetAlpha().GetBitmap(), aMem, false, true); + return css::uno::Sequence< sal_Int8 >( static_cast<sal_Int8 const *>(aMem.GetData()), aMem.Tell() ); + } + else if ( aBmpEx.IsTransparent() ) + { + SvMemoryStream aMem; + WriteDIB(aBmpEx.GetMask(), aMem, false, true); + return css::uno::Sequence< sal_Int8 >( static_cast<sal_Int8 const *>(aMem.GetData()), aMem.Tell() ); + } + + return css::uno::Sequence< sal_Int8 >(); +} + }} // end vcl::bitmap /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits