diff options
-rw-r--r-- | include/core/SkBitmap.h | 3 | ||||
-rw-r--r-- | src/core/SkBitmap_scroll.cpp | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h index eba3e0b087..c2ef7b53d5 100644 --- a/include/core/SkBitmap.h +++ b/include/core/SkBitmap.h @@ -395,7 +395,8 @@ public: /** Scroll (a subset of) the contents of this bitmap by dx/dy. If there are no pixels allocated (i.e. getPixels() returns null) the method will - still update the inval region (if present). + still update the inval region (if present). If the bitmap is immutable, + do nothing and return false. @param subset The subset of the bitmap to scroll/move. To scroll the entire contents, specify [0, 0, width, height] or just diff --git a/src/core/SkBitmap_scroll.cpp b/src/core/SkBitmap_scroll.cpp index 54110e87cf..de4725b3f9 100644 --- a/src/core/SkBitmap_scroll.cpp +++ b/src/core/SkBitmap_scroll.cpp @@ -11,6 +11,10 @@ bool SkBitmap::scrollRect(const SkIRect* subset, int dx, int dy, SkRegion* inval) const { + if (this->isImmutable()) { + return false; + } + if (NULL != subset) { SkBitmap tmp; @@ -113,5 +117,7 @@ bool SkBitmap::scrollRect(const SkIRect* subset, int dx, int dy, dst += rowBytes; src += rowBytes; } + + this->notifyPixelsChanged(); return true; } |