filter/source/graphicfilter/ieps/ieps.cxx | 22 +++++++--------------- filter/source/graphicfilter/itga/itga.cxx | 2 +- include/vcl/BitmapTools.hxx | 4 +++- 3 files changed, 11 insertions(+), 17 deletions(-)
New commits: commit f9e611478f7b5d07a6d623ee04ed3a5ea6b1156e Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Mon Feb 12 15:16:02 2018 +0200 use RawBitmap in ipsGraphicImport part of making Bitmap an internal detail of vcl Change-Id: Idbc44c29292e7136e6bb09b8472a396e15e5bc68 Reviewed-on: https://gerrit.libreoffice.org/49663 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/filter/source/graphicfilter/ieps/ieps.cxx b/filter/source/graphicfilter/ieps/ieps.cxx index 2808975ff5e1..a2d94c45faac 100644 --- a/filter/source/graphicfilter/ieps/ieps.cxx +++ b/filter/source/graphicfilter/ieps/ieps.cxx @@ -29,7 +29,7 @@ #include <vcl/metaact.hxx> #include <vcl/virdev.hxx> #include <vcl/cvtgrf.hxx> -#include <vcl/bitmapaccess.hxx> +#include <vcl/BitmapTools.hxx> #include <unotools/configmgr.hxx> #include <unotools/tempfile.hxx> #include <osl/process.h> @@ -656,16 +656,13 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) { rStream.Seek( nBufStartPos + ( pDest - pBuf.get() ) ); - Bitmap aBitmap( Size( nWidth, nHeight ), 1 ); - BitmapWriteAccess* pAcc = aBitmap.AcquireWriteAccess(); - if ( pAcc ) + vcl::bitmap::RawBitmap aBitmap( Size( nWidth, nHeight ) ); { bool bIsValid = true; sal_uInt8 nDat = 0; char nByte; for (long y = 0; bIsValid && y < nHeight; ++y) { - Scanline pScanline = pAcc->GetScanline( y ); int nBitsLeft = 0; for (long x = 0; x < nWidth; ++x) { @@ -715,10 +712,10 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) if (!bIsValid) break; if ( nBitDepth == 1 ) - pAcc->SetPixelOnData( pScanline, x, BitmapColor(static_cast<sal_uInt8>(nDat >> nBitsLeft) & 1) ); + aBitmap.SetPixel( y, x, Color(static_cast<sal_uInt8>(nDat >> nBitsLeft) & 1) ); else { - pAcc->SetPixelOnData( pScanline, x, BitmapColor(nDat ? 1 : 0) ); // nBitDepth == 8 + aBitmap.SetPixel( y, x, nDat ? COL_WHITE : COL_BLACK ); // nBitDepth == 8 nBitsLeft = 0; } } @@ -727,15 +724,11 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) { ScopedVclPtrInstance<VirtualDevice> pVDev; GDIMetaFile aMtf; - Size aSize; + Size aSize( nWidth, nHeight ); pVDev->EnableOutput( false ); aMtf.Record( pVDev ); - aSize = aBitmap.GetPrefSize(); - if( !aSize.Width() || !aSize.Height() ) - aSize = Application::GetDefaultDevice()->PixelToLogic(aBitmap.GetSizePixel(), MapMode(MapUnit::Map100thMM)); - else - aSize = OutputDevice::LogicToLogic(aSize, aBitmap.GetPrefMapMode(), MapMode(MapUnit::Map100thMM)); - pVDev->DrawBitmap( Point(), aSize, aBitmap ); + aSize = OutputDevice::LogicToLogic(aSize, MapMode(), MapMode(MapUnit::Map100thMM)); + pVDev->DrawBitmapEx( Point(), aSize, vcl::bitmap::CreateFromData(std::move(aBitmap)) ); aMtf.Stop(); aMtf.WindStart(); aMtf.SetPrefMapMode(MapMode(MapUnit::Map100thMM)); @@ -743,7 +736,6 @@ ipsGraphicImport( SvStream & rStream, Graphic & rGraphic, FilterConfigItem* ) aGraphic = aMtf; bHasPreview = bRetValue = true; } - Bitmap::ReleaseAccess( pAcc ); } } } commit 83330a608d0e0be9735d00ae5d60ba262bd235c3 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Mon Feb 12 14:07:24 2018 +0200 use Color, not BitmapColor in RawBitmap because we don't want palette images Change-Id: If087e51503714bf8474ae320381f80196092ceb0 Reviewed-on: https://gerrit.libreoffice.org/49662 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/filter/source/graphicfilter/itga/itga.cxx b/filter/source/graphicfilter/itga/itga.cxx index 3a37f27b10bb..e980e3c20925 100644 --- a/filter/source/graphicfilter/itga/itga.cxx +++ b/filter/source/graphicfilter/itga/itga.cxx @@ -660,7 +660,7 @@ bool TGAReader::ImplReadBody() m_rTGA.ReadUChar( nBlue ).ReadUChar( nGreen ).ReadUChar( nRed ); if ( !m_rTGA.good()) return false; - mpBitmap->SetPixel( nY, nX, BitmapColor( nRed, nGreen, nBlue ) ); + mpBitmap->SetPixel( nY, nX, Color( nRed, nGreen, nBlue ) ); } break; diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx index 3f9629a51905..d5c3056e8738 100644 --- a/include/vcl/BitmapTools.hxx +++ b/include/vcl/BitmapTools.hxx @@ -32,13 +32,15 @@ public: maSize(rSize) { } - void SetPixel(long nY, long nX, BitmapColor nColor) + void SetPixel(long nY, long nX, Color nColor) { long p = (nY * maSize.getWidth() + nX) * 3; mpData[ p++ ] = nColor.GetRed(); mpData[ p++ ] = nColor.GetGreen(); mpData[ p ] = nColor.GetBlue(); } + // so we don't accidentally leave any code in that uses palette color indexes + void SetPixel(long nY, long nX, BitmapColor nColor) = delete; long Height() { return maSize.Height(); } long Width() { return maSize.Width(); } }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits