canvas/source/vcl/spritehelper.cxx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)
New commits: commit c530c1b3e01015f551dd6737ef2dc0e661458310 Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Mon Feb 17 16:07:15 2020 +0100 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Wed Feb 19 14:24:27 2020 +0100 avoid pointless alpha->mask conversion The code is from 2008, so I'm rather sure at least Skia is modern enough to handle alpha at least as well as a mask (if not better). Change-Id: Ic53d5740978bce106506a182100eba927a419257 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89010 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/canvas/source/vcl/spritehelper.cxx b/canvas/source/vcl/spritehelper.cxx index 29ec50b63ccf..5bad0ae9697d 100644 --- a/canvas/source/vcl/spritehelper.cxx +++ b/canvas/source/vcl/spritehelper.cxx @@ -148,8 +148,14 @@ namespace vclcanvas // bitmasks are much faster than alphamasks on some platforms // so convert to bitmask if useful -#ifndef MACOSX - if( aMask.GetBitCount() != 1 ) + bool convertTo1Bpp = aMask.GetBitCount() != 1; +#ifdef MACOSX + convertTo1Bpp = false; +#endif + if( SkiaHelper::isVCLSkiaEnabled()) + convertTo1Bpp = false; + + if( convertTo1Bpp ) { OSL_FAIL("CanvasCustomSprite::redraw(): Mask bitmap is not " "monochrome (performance!)"); @@ -157,12 +163,14 @@ namespace vclcanvas BitmapFilter::Filter(aMaskEx, BitmapMonochromeFilter(255)); aMask = aMaskEx.GetBitmap(); } -#endif // Note: since we retrieved aBmp and aMask // directly from an OutDev, it's already a // 'display bitmap' on windows. - maContent = BitmapEx( aBmp.GetBitmap(), aMask.GetBitmap() ); + if( aMask.GetBitCount() == 1 ) + maContent = BitmapEx( aBmp.GetBitmap(), aMask.GetBitmap() ); + else + maContent = BitmapEx( aBmp.GetBitmap(), AlphaMask( aMask.GetBitmap()) ); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits