aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkBitmapController.cpp')
-rw-r--r--src/core/SkBitmapController.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/core/SkBitmapController.cpp b/src/core/SkBitmapController.cpp
index c72693fe88..ba287b584a 100644
--- a/src/core/SkBitmapController.cpp
+++ b/src/core/SkBitmapController.cpp
@@ -116,7 +116,6 @@ bool SkDefaultBitmapControllerState::processHQRequest(const SkBitmapProvider& pr
if (fCanShadeHQ) {
fQuality = kHigh_SkFilterQuality;
SkAssertResult(provider.asBitmap(&fResultBitmap));
- fResultBitmap.lockPixels();
return true;
}
@@ -129,15 +128,15 @@ bool SkDefaultBitmapControllerState::processHQRequest(const SkBitmapProvider& pr
if (!provider.asBitmap(&orig)) {
return false;
}
- SkAutoPixmapUnlock src;
- if (!orig.requestLock(&src)) {
+ SkPixmap src;
+ if (!orig.peekPixels(&src)) {
return false;
}
SkPixmap dst;
SkBitmapCache::RecPtr rec;
const SkImageInfo info = SkImageInfo::MakeN32(desc.fScaledWidth, desc.fScaledHeight,
- src.pixmap().alphaType());
+ src.alphaType());
if (provider.isVolatile()) {
if (!fResultBitmap.tryAllocPixels(info)) {
return false;
@@ -151,7 +150,7 @@ bool SkDefaultBitmapControllerState::processHQRequest(const SkBitmapProvider& pr
return false;
}
}
- if (!SkBitmapScaler::Resize(dst, src.pixmap(), kHQ_RESIZE_METHOD)) {
+ if (!SkBitmapScaler::Resize(dst, src, kHQ_RESIZE_METHOD)) {
return false; // we failed to create fScaledBitmap
}
if (rec) {
@@ -241,8 +240,6 @@ SkDefaultBitmapControllerState::SkDefaultBitmapControllerState(const SkBitmapPro
SkASSERT(fResultBitmap.getPixels());
} else {
(void)provider.asBitmap(&fResultBitmap);
- fResultBitmap.lockPixels();
- // lock may fail to give us pixels
}
SkASSERT(fCanShadeHQ || fQuality <= kLow_SkFilterQuality);