summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@collabora.com>2020-01-20 15:45:20 +0100
committerLuboš Luňák <l.lunak@collabora.com>2020-01-21 11:24:19 +0100
commite7b8ed940ecc5397212ae25f48e58618fa8ac6fd (patch)
treeb61dd0530af5017636a923daab93046744bdfed7 /vcl
parent24b0ef899e10e03743cf01f737f1c07167f391ec (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.cxx42
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)