diff options
author | Luboš Luňák <l.lunak@collabora.com> | 2020-01-20 15:45:20 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@collabora.com> | 2020-01-21 11:24:19 +0100 |
commit | e7b8ed940ecc5397212ae25f48e58618fa8ac6fd (patch) | |
tree | b61dd0530af5017636a923daab93046744bdfed7 /vcl | |
parent | 24b0ef899e10e03743cf01f737f1c07167f391ec (diff) |
implement bit depth data conversion for SkiaSalBitmap, just in case
Change-Id: I456d7bf8ca8c906c384372e00a4e57e4e6e726d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87077
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/skia/salbmp.cxx | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/vcl/skia/salbmp.cxx b/vcl/skia/salbmp.cxx index 925e27f6d9a8..b321f4c3f6f7 100644 --- a/vcl/skia/salbmp.cxx +++ b/vcl/skia/salbmp.cxx @@ -177,29 +177,31 @@ bool SkiaSalBitmap::Create(const SalBitmap& rSalBmp, SalGraphics* pGraphics) bool SkiaSalBitmap::Create(const SalBitmap& rSalBmp, sal_uInt16 nNewBitCount) { const SkiaSalBitmap& src = static_cast<const SkiaSalBitmap&>(rSalBmp); - if (nNewBitCount == src.GetBitCount()) - { - mBitmap = src.mBitmap; - // SkBitmap shares pixels on copy. - assert(mBitmap.getPixels() == src.mBitmap.getPixels()); - mImage = src.mImage; - mAlphaImage = src.mAlphaImage; - mBuffer = src.mBuffer; - mPalette = src.mPalette; - mBitCount = src.mBitCount; - mSize = src.mSize; - mScanlineSize = src.mScanlineSize; + mBitmap = src.mBitmap; + // SkBitmap shares pixels on copy. + assert(mBitmap.getPixels() == src.mBitmap.getPixels()); + mImage = src.mImage; + mAlphaImage = src.mAlphaImage; + mBuffer = src.mBuffer; + mPalette = src.mPalette; + mBitCount = src.mBitCount; + mSize = src.mSize; + mScanlineSize = src.mScanlineSize; #ifdef DBG_UTIL - mWriteAccessCount = 0; + mWriteAccessCount = 0; #endif - SAL_INFO("vcl.skia", "create(" << this << "): (" << &src << ")"); - return true; + if (nNewBitCount != src.GetBitCount()) + { + // This appears to be unused(?). Implement this just in case, but be lazy + // about it and rely on EnsureBitmapData() doing the conversion from mImage + // if needed, even if that may need unnecessary to- and from- SkImage + // conversion. + GetSkImage(); // create mImage + mBitmap.reset(); + mBuffer.reset(); } - if (!Create(src.mSize, src.mBitCount, src.mPalette)) - return false; - // TODO copy data - SAL_INFO("vcl.skia", "copy(" << this << "): (" << &src << ")"); - abort(); + SAL_INFO("vcl.skia", "create(" << this << "): (" << &src << ")"); + return true; } bool SkiaSalBitmap::Create(const css::uno::Reference<css::rendering::XBitmapCanvas>&, Size&, bool) |