drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx | 6 +- vcl/headless/svpgdi.cxx | 31 ----------- 2 files changed, 4 insertions(+), 33 deletions(-)
New commits: commit ae11dec72099fafc807d13b7169bd3177e9d539f Author: Vasily Melenchuk <vasily.melenc...@cib.de> Date: Tue Mar 6 16:23:40 2018 +0300 tdf#115297: 1bit images displaying fixed (again) Previous fix 25cd843664919974f0d21ca7a0b02cc43e9eeabb like any other before it have some regressions, so reverted. The root of most problems: fix for tdf#104141 d148340babf6c973f7d463909d7a51e16c953248, where mask drawing was implemented in bitmap drawing code. So instead of guessing for type of bitmap, mask is drawn with DrawBitmapEx resolving all known problems (tdf#114726, tdf#115297, tdf#113918 and tdf#104141). Change-Id: Ie00f7552d667e237b3c0f9505ee09cb51e85c43c Reviewed-on: https://gerrit.libreoffice.org/50828 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx index 2d9f1612b1f0..ba5cc8441122 100644 --- a/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx +++ b/drawinglayer/source/primitive2d/graphicprimitivehelper2d.cxx @@ -271,7 +271,8 @@ namespace drawinglayer } else { - maVirtualDeviceMask->DrawBitmap(rAnimBitmap.aPosPix, aMask); + BitmapEx aExpandVisibilityMask = BitmapEx(aMask, aMask); + maVirtualDeviceMask->DrawBitmapEx(rAnimBitmap.aPosPix, aExpandVisibilityMask); } break; @@ -279,7 +280,8 @@ namespace drawinglayer case Disposal::Previous: { maVirtualDevice->DrawBitmapEx(rAnimBitmap.aPosPix, rAnimBitmap.aBmpEx); - maVirtualDeviceMask->DrawBitmap(rAnimBitmap.aPosPix, rAnimBitmap.aBmpEx.GetMask()); + BitmapEx aExpandVisibilityMask = BitmapEx(rAnimBitmap.aBmpEx.GetMask(), rAnimBitmap.aBmpEx.GetMask()); + maVirtualDeviceMask->DrawBitmapEx(rAnimBitmap.aPosPix, aExpandVisibilityMask); break; } } diff --git a/vcl/headless/svpgdi.cxx b/vcl/headless/svpgdi.cxx index 3618a185ce12..2d9694cc7a88 100644 --- a/vcl/headless/svpgdi.cxx +++ b/vcl/headless/svpgdi.cxx @@ -1200,39 +1200,8 @@ void SvpSalGraphics::copyBits( const SalTwoRect& rTR, cairo_surface_destroy(pCopy); } -namespace -{ - bool isBlackWhite(const SalBitmap& rBitmap) - { - const SvpSalBitmap& rSrcBmp = static_cast<const SvpSalBitmap&>(rBitmap); - const BitmapBuffer * pSourceBuffer = rSrcBmp.GetBuffer(); - const BitmapPalette & rPalette = pSourceBuffer->maPalette; - - return ( - rPalette.GetEntryCount() < 2 || - - (rPalette.GetEntryCount() == 2 && - rPalette[0] == COL_BLACK && - rPalette[1] == COL_WHITE ) || - - (rPalette.GetEntryCount() == 2 && - rPalette[1] == COL_BLACK && - rPalette[0] == COL_WHITE ) - ); - } -} - void SvpSalGraphics::drawBitmap(const SalTwoRect& rTR, const SalBitmap& rSourceBitmap) { - if (rSourceBitmap.GetBitCount() == 1 && isBlackWhite(rSourceBitmap)) - { - // This way we draw only monochrome b/w bitmaps - MaskHelper aMask(rSourceBitmap); - cairo_surface_t* source = aMask.getMask(); - copySource(rTR, source); - return; - } - SourceHelper aSurface(rSourceBitmap); cairo_surface_t* source = aSurface.getSurface(); copySource(rTR, source); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits