Avoid caching resources for volatile bitmap shaders
authorfmalita <fmalita@chromium.org>
Mon, 8 Aug 2016 14:08:37 +0000 (07:08 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 8 Aug 2016 14:08:37 +0000 (07:08 -0700)
SkBitmapProvider::isVolatile() treats all SkImages as non-volatile,
which is not what we want for temp SkImage wrappers of volatile bitmaps.

R=reed@google.com
BUG=chromium:633941
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222783002

Review-Url: https://codereview.chromium.org/2222783002

src/core/SkBitmapProvider.cpp

index dd34fb0..37f8dc9 100644 (file)
@@ -49,7 +49,9 @@ SkImageInfo SkBitmapProvider::info() const {
 
 bool SkBitmapProvider::isVolatile() const {
     if (fImage) {
-        return false;   // add flag to images?
+        // add flag to images?
+        const SkBitmap* bm = as_IB(fImage)->onPeekBitmap();
+        return bm ? bm->isVolatile() : false;
     } else {
         return fBitmap.isVolatile();
     }