diff options
author | Vasily Melenchuk <Vasily.Melenchuk@cib.de> | 2018-03-06 16:23:40 +0300 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-14 11:13:52 +0100 |
commit | ae11dec72099fafc807d13b7169bd3177e9d539f (patch) | |
tree | 7932676b0e627e7a7045985aeb2259187c4b738a /vcl/headless | |
parent | 1008cd6b0aa96cfbb2a681a055380b54c3d53bf5 (diff) |
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 <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'vcl/headless')
-rw-r--r-- | vcl/headless/svpgdi.cxx | 31 |
1 files changed, 0 insertions, 31 deletions
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); |