diff options
Diffstat (limited to 'src/core/SkBitmapController.cpp')
-rw-r--r-- | src/core/SkBitmapController.cpp | 11 |
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); |