diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkBitmap.cpp | 6 | ||||
-rw-r--r-- | src/core/SkPictureImageGenerator.cpp | 3 | ||||
-rw-r--r-- | src/core/SkPixmap.cpp | 4 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp index 1691c9d0af..e8a235597d 100644 --- a/src/core/SkBitmap.cpp +++ b/src/core/SkBitmap.cpp @@ -372,6 +372,12 @@ bool SkBitmap::installPixels(const SkImageInfo& requestedInfo, void* pixels, siz return true; } +bool SkBitmap::installPixels(const SkPixmap& pixmap) { + return this->installPixels(pixmap.info(), pixmap.writable_addr(), + pixmap.rowBytes(), pixmap.ctable(), + nullptr, nullptr); +} + bool SkBitmap::installMaskPixels(const SkMask& mask) { if (SkMask::kA8_Format != mask.fFormat) { this->reset(); diff --git a/src/core/SkPictureImageGenerator.cpp b/src/core/SkPictureImageGenerator.cpp index 39caa55d0c..398c6eb5df 100644 --- a/src/core/SkPictureImageGenerator.cpp +++ b/src/core/SkPictureImageGenerator.cpp @@ -108,8 +108,7 @@ bool SkPictureImageGenerator::onGenerateScaledPixels(const SkISize& scaledSize, matrix.postTranslate(-SkIntToScalar(scaledOrigin.x()), -SkIntToScalar(scaledOrigin.y())); SkBitmap bitmap; - if (!bitmap.installPixels(scaledPixels.info(), scaledPixels.writable_addr(), - scaledPixels.rowBytes())) { + if (!bitmap.installPixels(scaledPixels)) { return false; } diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp index 718be88c57..0098b1b282 100644 --- a/src/core/SkPixmap.cpp +++ b/src/core/SkPixmap.cpp @@ -222,9 +222,7 @@ bool SkPixmap::scalePixels(const SkPixmap& dst, SkFilterQuality quality) const { } SkBitmap bitmap; - // we will only ready from this pixmap, but the bitmap setting takes void*, hence the cast - void* readOnlyAddr = const_cast<void*>(this->addr()); - if (!bitmap.installPixels(this->info(), readOnlyAddr, this->rowBytes())) { + if (!bitmap.installPixels(*this)) { return false; } bitmap.setIsVolatile(true); // so we don't try to cache it |