diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-02 22:32:54 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-02 22:32:54 +0000 |
commit | dd59799cf8eeb8e4263689e993a020b370d77991 (patch) | |
tree | 3c8a8a1600a122c81d754a0a5e6af70f0529df47 /src/lazy | |
parent | c25d2219cb34ffd06a24609b9013c514b58d58ff (diff) |
SkDiscardablePixelRef objects are now marked immutable.
I also specifically mentioned in the SkImageGenerator documentation
that it should always return the same information on subsequent calls
to getInfo() and getPixels().
Motivation: When a bitmap is recorded into a SkPicture, it will choose
whether to shallow- or deep-copy itself into the SkBitmapHeap based on
the immutable flag. Failing to set it would make picture recording slow.
BUG=
R=fmalita@google.com, reed@google.com, scroggo@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/99303003
git-svn-id: http://skia.googlecode.com/svn/trunk@12445 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/lazy')
-rw-r--r-- | src/lazy/SkDiscardablePixelRef.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lazy/SkDiscardablePixelRef.cpp b/src/lazy/SkDiscardablePixelRef.cpp index b6e1b1004e..4e19c7f65b 100644 --- a/src/lazy/SkDiscardablePixelRef.cpp +++ b/src/lazy/SkDiscardablePixelRef.cpp @@ -20,6 +20,9 @@ SkDiscardablePixelRef::SkDiscardablePixelRef(SkImageGenerator* generator, SkASSERT(fGenerator != NULL); SkASSERT(fSize > 0); SkASSERT(fRowBytes > 0); + // The SkImageGenerator contract requires fGenerator to always + // decode the same image on each call to getPixels(). + this->setImmutable(); } SkDiscardablePixelRef::~SkDiscardablePixelRef() { |