aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkBitmap.cpp6
-rw-r--r--src/core/SkPictureImageGenerator.cpp3
-rw-r--r--src/core/SkPixmap.cpp4
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