SkBitmap::scrollRect changes pixels, but only if not immutable.

scrollRect will now return false if the bitmap is immutable, and
call notifyPixelsChanged when changing the pixels. This will give
the bitmap a new generation ID.

Review URL: https://codereview.appspot.com/6480046

git-svn-id: http://skia.googlecode.com/svn/trunk@5230 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
scroggo@google.com 2012-08-22 16:19:52 +00:00
parent 825bb95d6a
commit 6a9368d411
2 changed files with 8 additions and 1 deletions

View File

@ -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

View File

@ -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;
}